约束类型
- 主键约束(Primary key)
- 唯一约束(unique)
- 非空约束(not null)
- 默认约束(default)
- 外键约束
主键约束(Primary key)
- 主键约束 唯一非空 后面可以加自增 auto_increment
- 主键: 表示数据唯一性的字段称为主键
- 测试:创建学生表,学号为主键
create table student (stuno char(11) primary key);
唯一约束(unique)
- 创建学生表,身份证号唯一
create table student (stuno char(11) primary key stuname char(10) stuid char(20) unique);
- 测试
向学生表中插入数据
insert into student values('2018001','张三','110123456781234567');
insert into student values('2018002','张三','110123456781234567');//报错,唯一约束字段的值不能重复
insert into student values('2018003','李四',null);//允许为null,可以有多个
非空约束(not null)
- 创建学生表,设置姓名为非空
create table student(stuno char(11) primary key,stuname char(10) not null);
- 测试
insert into student values(‘2018001’,null);
会报错,非空字段的值不允许为null
- 一个字段可以设置多种约束,顺序任意
默认约束(default)
- 创建学生表,设置班级名称默认为csd1911
create table student(stuno char(11) primary key,stuname char(10) not null,classname char(20) default ‘csd1911’);
- 使用默认值的方式
- 在默认值字段直接写default
- 不管默认值字段,写出列名,对应相应的列值
- 测试
- insert into student values (‘2018001’,‘张三’,‘csd1910’);
- insert into student values (‘2018002’,‘李四’,default);
- insert into student (stuno,stuname) values (‘2018003’,'王五);
- insert into student values(‘2018004’,‘马六’,null);
外键约束(default)
- 用于定义表与表之间的关系
- 主表(父表):被参照的表(提供数据的表)
- 从表(子表):外键所在的表
- 外键字段的值必须来自于主表中的对应字段或者为null
- 外键字段参考的主表中的字段必须是唯一的,一般为主键
- 语法
- constraint 约束名 foreign key(外键字段名) reference 主表(字段)