5.3.1 检查约束
1.在创建表示创建检查约束
语法格式:СНЕСK( ехрr) ,expr 为约束条件表达式。
【例5.14】在数据库study中创建选课3表,在成绩列以列级完整性约束方式定义检查约束。
create table 选课3(
学号 char (6) not null,
课程号 char(4) not null,
成绩 tinyint null check(成绩 >= 0 and 成绩 <= 100),
primary key(学号, 课程号));
在成绩列定义的后面加上check关键字,约束表达式为成绩>=0 and 成绩<= 100,列级定义唯一性约束,未指定约束名字,MySQL自动创建约束名字。
【例5.15】在数据库stusys中创建score4表,在grade列以表级完整性约束方式定义检查约束。
CREATE TABLE 选课4(
学号 CHAR(6) NOT NULL,
课程号 CHAR(4) NOT NULL,
成绩 TINYINT NULL,
CONSTRAINT CK_选课4 CHECK (成绩 >= 0 AND 成绩 <= 100),
PRIMARY KEY (学号,课程号)
);
这两个例题中我均用的大写字母,原因是在使用小写字母是总是出现错误,但经过仔细检查未发现任何语法问题,改用大写后成功执行。
2.删除检查约束
语法格式:alter table < 表名 > drop check < 约束名 >
【例5.16】删除例8.15在score4表上定义的检查约束。
alter table 选课4
drop check CK_选课4;
3.在修改表时创建检查约束
语法格式:
alter table < 表名 >
add [ constraint < 约束名 > ] check ( 约束条件表达式 )
【例5.17】重新在选课4表上定义检查约束。
alter table 选课4
add constraint CK_选课4 check(成绩 >= 0 and 成绩 <= 100);
5.3.2 非空约束
非空约束指字段值不能为空值,空值指“不知道”不存在”或“无意义”的值。 在MySQL中,可以使用create table语句或alter table语句来定义非空约束,在某个列定义后面,加上关键字not null作为限定词,以约束该列的取值不能为空。
标签:5.3,定义,选课,alter,约束,完整性,table,成绩,check From: https://blog.csdn.net/2302_79947880/article/details/139639252