1.一般数据库都支持下面五类约束:
(1)NOT NULL:非空约束,指定某列不能为空
(2)UNIQUE:唯一约束,指定某列或某几列的组合不能重复
(3)PRIMARY KEY:主键,指定该列的值可以唯一标识该条记录
(4)FOREIGN KEY:外键,指定该行记录从属于主表中的一条记录,用于保证参照完整性
(5)CHECK:检查,指定一个布尔表达式,用于指定对应列的值必须满足该表达式
2.NOT NULL非空约束较为简单,只需在定义变量时,在后面加上NOT NULL即可。例如:student_id int not null
3.UNIQUE唯一约束,可以使用列级约束(student_id int unique),也可以使用表级约束。其中表级约束一般是用于多列组合的唯一性约束
表级约束:constraint test_uk unique(student_id,student_name)其中的test_uk是约束名,该约束要求student_id和student_name不能同时为空。
4.PRIMARY KEY主键约束:主键约束的形式和UNIQUE唯一约束的形式是一样的
注意:如果给主键列添加了自增长(increment),则向该表插入记录时不能给该列指定值
5.FOREIGN KEY外键约束外键是构建于一个表的两个字段或者是两个表的两个字段之间的参照关系。从表外键参照的只能是主表的主键列或是唯一键列。
在MYSQL中外键约束只能使用表级约束
--为了保证从表参照的主表存在,应该先建立主表
create table teacher_table
(
teacher_id int auto_increment,
teacher_name varcharr(255),
--添加主键约束
primary key(teacher_id)
);
create table student_table
(
--自增长。主键约束
student_id int auto_increment primary key,
student_name varchar(255),
java_teacher int,
--使用表级约束语法建立外键约束,
foreign key(java_teacher) references teacher_table(teacher_id)
);