思维导图:
笔记:5.4 完整性约束命名子句
定义:
- 完整性约束是在
CREATE TABLE
语句中定义的。 - SQL为
CREATE TABLE
语句提供了CONSTRAINT
子句,用于对完整性约束进行命名。 - 命名的目的是方便增加或删除约束。
基本结构:
CONSTRAINT <完整性约束名称> <完整性约束条件>
其中,完整性约束条件可以是NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK等。
示例:
- 学生登记表 Student: 要求:
- 学号在 90000~99999 之间
- 姓名不为空
- 年龄小于 30
- 性别只能是 “男” 或 “女”
CREATE TABLE Student(
Sno NUMERIC(6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999),
Sname CHAR(20) CONSTRAINT C2 NOT NULL,
Sage NUMERIC(3) CONSTRAINT C3 CHECK(Sage<30),
Ssex CHAR(2) CONSTRAINT C4 CHECK(Ssex IN('男', '女')),
CONSTRAINT StudentKey PRIMARY KEY(Sno)
);
- 教师表 TEACHER: 要求:
- 每位教师的应发工资 (工资 Sal + 扣除项 Deduct) 不低于 3000 元。
CREATE TABLE TEACHER(
Eno NUMERIC(4) PRIMARY KEY,
Ename CHAR(10),
Job CHAR(8),
Sal NUMERIC(7,2),
Deduct NUMERIC(7,2),
Deptno NUMERIC(2),
CONSTRAINT TEACHERFKey FOREIGN KEY (Deptno) REFERENCES DEPT(Deptno),
CONSTRAINT C1 CHECK(Sal + Deduct >= 3000)
);
修改表中的完整性约束:
可以使用ALTER TABLE
语句修改表中的完整性约束。
示例:
- 移除学生表 Student 对性别的约束:
ALTER TABLE Student DROP CONSTRAINT C4;
- 修改学生表 Student 的约束条件: 要求将学号的范围从 90000~99999 改为 900000~999999,并将年龄从小于30改为小于40。
ALTER TABLE Student DROP CONSTRAINT C1;
ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEEN 900000 AND 999999);
ALTER TABLE Student DROP CONSTRAINT C3;
ALTER TABLE Student ADD CONSTRAINT C3 CHECK (Sage < 40);
完整性约束命名子句 - 重点、难点与易错点总结
重点:
-
定义与用途:
- 完整性约束命名子句用于为
CREATE TABLE
语句中的完整性约束赋予名称,以便于后续操作(如增加、删除)。
- 完整性约束命名子句用于为
-
基本结构:
CONSTRAINT <完整性约束名称> <完整性约束条件>
-
完整性约束条件类型:
-
NOT NULL
: 字段值不可为空 -
UNIQUE
: 字段值必须唯一 -
PRIMARY KEY
: 定义表的主键 -
FOREIGN KEY
: 外键约束,确保字段的值在另一个表中存在 -
CHECK
: 对字段值施加特定条件
-
难点:
-
外键约束的理解与应用:
- 外键是连接两张表的一种手段,它确保一张表中的字段值在另一张表的特定列中存在。正确实现外键约束需要对两张表都有深入了解。
-
复杂的CHECK约束:
- 创建复杂的条件(如,工资与扣除之和的限制)需要对逻辑表达式有很好的理解。
易错点:
-
命名重复:
- 为完整性约束命名时,要确保名称在整个数据库中是唯一的。重复的命名会导致错误。
-
错误的数据类型匹配:
- 在应用完整性约束时,要确保约束条件与字段的数据类型相匹配。例如,不应该在字符型字段上设置数值范围。
-
遗漏或误用单引号:
- 在CHECK约束中,特定的值(如
'男'
或'女'
)需要使用单引号。遗漏或误用会导致语法错误。
- 在CHECK约束中,特定的值(如
-
不恰当地删除约束:
- 在修改表结构时,可能需要删除并重新添加某些约束。如果不小心删除了错误的约束,可能会导致数据完整性问题。
-
外键参照的表和字段存在性:文章来源:https://www.toymoban.com/news/detail-737277.html
- 在设置外键约束时,必须确保引用的表和字段真实存在,否则会导致错误。
文章来源地址https://www.toymoban.com/news/detail-737277.html
到了这里,关于5.4 完整性约束命名子句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!