关系型数据库(oracle)、非关系型数据库
关系型的数据的关系是什么意思?
关系是指的关系运算。虽然看起来是一张表,但是表之间是有关系运算的,所以是关系型。
1.理论基础:关系代数 - 关系运算 - 集合运算/关系运算/谓词逻辑()
交集、并集、差集、笛卡尔积
投影。选择、别名、连接、或与非
2.具体表象:用二维表(行列)保存数据
~行:记录 - 元组
-列:属性
3.编程语言:SQL(structured query language) - 结构化查询语言
~DDL:数据定义语言 ~ create/drop(删除)/alter(修改)
~DML:数据操作语言:insert/delete/update
☆~DQL:数据查询语言: select
~数据控制语言:grant/revoke
4.MySQL命令行工具
~显示所有数据库:show databases;
~创建数据库:create database school
default charset utf8mb4;创建名为school的数据库
~删除数据库:drop database if exists school
;删除school数据库如果它存在的话
~修改数据库:alter database ``
~使用数据库:use 数据库名;
~x修改二维表:
~添加列:alter table tb_student add column stu_tel varchar(20) not null;
alter table tb_student add column stu_addr varchar(200) defacult ’ ';
~删除列:
alter table tb_student drop column stu_addr;
~修改列:
alter table tb_student modify column stu_sex char(1) default ‘M’; 改变列的值类型
alter table tb_student change column stu_sex stu_gender char(1) not null default ‘M’; 改变列的名字
~添加约束条件:
alter table tb_student add constraint uk_student_tel unique (stu_tel); 要求stu_tel为不重复
alter table tb_student add constraint ck_student_birth check (stu_birth >= ‘1990-1-1’);
~删除约束条件:alter table tb_student drop constraint uk_student_tel; 去掉stu_tel 要求为不重复的约束条件
5.MySQL数据类型:
~查看数据类型: ? data types;
~整数: int/integer ±2的31次方范围 bigint ±2的63次方范围 smallint 2的7次方 /tinyint ----修饰:unsigned 无符号整数,取消了前面的符号位
int:-231 到 231 -1
int unsigned: 0-2**32 -1 只表示0和大于0的整数
~小数:float/double 但是不好用 ----> decimal用这个 decimal(6,2) 一共六位,小数点后两位
~日期和时间: data/time/datetime
~字符串: varchar
~json(重要): 保存json数据或对象
~二进制:blob —>binary large object 不推荐使用
6.图形化(GUI)的客户端工具
~MySQL workbench 官方的,免费
~Navicat for MySQL
作业:
创建学院(编号、名称、介绍)
创建老师表(工号、姓名、性别、职称、生日)
创建课程表(名称、学分)
思考与预习:
学生、老师属于学院,如何实现这个关系?
老师和课程、学生和课程的关系,如何实现? 提示:外键
如何向表中插入数据?然后给学院表添加3个学院,学生表添加5个学生