列级约束和标记约束

发布时间 2023-05-30 15:37:32作者: XieLumeng

1.列级约束在定义列语句中,例

sno int primary key auto_increment ,        --(学生表学号,int型,约束:主键(非空且唯一)+自增)

sex char(1) default '男' check(sex='男' or sex='女'),   --(性别默认为男,性别只能为男或女)

score double(3,1) not null,       --(得分为浮点数,总共三位,小数点后一位,不能为空)

2.表级约束与定义列语句同级,用逗号与列定义语句分隔开,要用constraint,且表级别约束可以同时约束多个列,但不能像列级约束一样约束默认值和非空,

create table student(

某列级约束1,

某列级约束2,

constraint pk_stu_sno primary key(sno) ,  --(constraint 约束名(自己定义的)约束(列名))

constraint ck_stu_sex check(sex='男' or sex=‘女’) ,

constraint uk_stu_email unique(email) 

3.表建立完成后的约束

手动添加约束

alter table student add constraint pk_stu_son primary key(sno);

删除唯一约束(主键):

在这之前要先删除自增约束,否则报错:alter table student modify sno int (删除自增相当于改变定义语句,使其没有自增)

alter table stuednt drop primary key

手动设置自动增加

alter table student modify sno int auto_increment; --modify:修改,调整

删除唯一约束

alter table student drop index uk_stu_email