数据库实践教学笔记
- 表的创建
关系数据库通过表来维护数据
列:字段名称
行:
创建ER图
- E entity实体
- R relation关系
- 实体与关系的属性
- 一对一,一对多(外键),多对多(关系表)
ER图说明:
学生(学号,姓名,年龄,性别)学号是学生的主码
班级(班级编号,班级名字,专业)
课程(课程编号,课程名称)
对于多对多的关系,放在同一个表里,显现不出来,所以创建一个新表。
创建表时,并不是一个管理员对应多个员工,而是所有管理员都可以对员工进行操作。
第一范式:字段不可分割
第二范式:每一个字段都有主键
第三范式:依赖要唯一,不能传递。(唯一)
在MySQL中创建表
Create table 表名()
字段名称 数据类型(长度)
字段名称 数据类型(长度)
~~~~~~~
字段名称 数据类型(长度)
Varchar 可变字符 zs 2个长度
Char zs 10个长度 (后面补充空格)
修改表
Alter table 表名
Modify 字段名字 varchar (20)
删除表
Drop table 表名
DDL(data definitio language 数据库定义语言 )的三个命令:creat alter drop
表的约束
约束:主键约束;非空约束;唯一约束;外界约束;默认值约束;
检查约束;
注意:检查约束在mysql中不支持。
- 主键约束:每一个表都有唯一标识一行数据的字段,这个字段就是主键约束
如何创建主键约束:
- (列级约束) Creat table 表名(字段名 数据类型(长度) primary key
字段名 数据类型(长度),
~~~~~~~~~)
- (表级约束) Creat table 表名(字段名 数据类型(长度) ,
字段名 数据类型(长度),
~~~~~~~~~
Constraint 约束的名字 约束类型 (字段))
Pk_classid primary key (classid)
- 通过修改表来添加约束
Alter table 表名
Modify column 字段名 数据类型(长度) primary key
Alter table 表名
Add Constraint 约束的名字 约束类型 (字段)
联合主键:
一个表只能有一个主键,但是一个主键可以创建在多个字段上。
- 非空约束:字段必须填写值
- Create table 表名
字段名 数据类型(长度) not null,
字段名 数据类型(长度),
~~~~~~~
- 修改表
- Constraint Pk_classid not null (classid) 无效
- Modify column 字段名 数据类型(长度) primary key 可行
注意:通过修改表来添加非空约束的时候,表里不能有已经违反非空约束的数据。
- 唯一约束:
要求字段的名字是唯一的。和主键约束区别于唯一约束的字段是可以为空的,而主键不允许为空。两个为空的数据不违反唯一约束。
- 字段名 字段类型 (长度)unique
- Constraint 修改名 unique (要修改的字段名)
- Add Constraint 修改名 unique (要修改的字段名) (修改表的方式alter)
注意:通过修改表来创建唯一约束,要求表中不能存在违反唯一约束的数据
(四) 外键约束:
- Add constraint fk_klassid foreign ke