目录
一、数据库约束
数据库约束是对数据库里的记录做出更详细的检查
数据库约束类型
NOT NULL | 指某列不能存储null值 |
UNIQUE | 指保证每列的值在数据中是唯一的 |
DEFAULT | 规定给没有赋值的列赋默认值 |
PRIMARY KEY | 主键约束,也就是NOT NULL与UNIQUE的结合 |
FOREIGN KEY | 外键约束 |
CHECK | 保证列中的值符合条件 |
二、NOT NULL约束
语法:create table 表名(列 数据类型 not null);
创建好表后,有not null约束的列不可以赋值为null
三、UNIQUE约束
语法:create table 表名(列 数据类型 unique);
值唯一,每次插入时会检测是不是唯一值,每次都是先检测再插入,使用unique约束时,数据库会自动给对应列创建索引
四、DEFAULT约束
语法:create table 表名(列 数据类型 default 默认值);
插入数据时如果未插入,就会赋值为默认值
五、PRIMARY KEY主键约束
create table 表名(列 数据类型 primary key);
主键是不可空且唯一的,比如名字不能作为主键,身份证则可以作为主键,一个表里只能有一个主键
自增主键:对于整数类型的主键常常搭配auto_increment时使用,插入字段不给值时,会使用最大值+1
六、FOREIGN KEY外键约束
语法:create table 表名(foreign key(当前表的列) references 另一个表(另一个表里的列));
首先创建一个班级表,用来记录班级号跟老师
然后创建一个学生表
插入数据
当学生表里插入数据时,class列插入的记录,必须在班级表对应列的记录里存在,这个时候班级表就对学生表产生了约束,此时学生表叫子表,班级表叫父表,父表中与子表构成外键的列必须由primary key或者unique约束
在父表约束子表的同时,子表也对父表有影响。如果使用drop删除父表时会出错
删除父表某条记录时,要看子表的记录是否引用了该记录里的列
修改父表与子表形成的列数据时,如果该记录也被子表引用,也会出错