第09章数据库完整性与安全性1-3节例析.ppt

9.2.4 用户自定义完整性 [例9.19] 元组级约束。 CREATE TABLE Student ( sNo char(5) NOT NULL, --学号 --元组级约束 CONSTRAINT sNoCK CHECK ( sNo LIKE [0-9][0-9][0-9][0-9][0-9] ), sName char(10) NULL UNIQUE, --姓名 sSex char(2) NULL, --性别 sDate datetime NULL, --出生日期 sAge tinyint DEFAULT 17 NOT NULL, --年龄 sMZ char(10) NULL, --民族 sDept char(2) NOT NULL, --所在系 sTotal decimal(8, 2) DEFAULT 0.00 NOT NULL, --总分 CONSTRAINT ageCK CHECK ( sAge0 AND sAge60 ), --元组级约束 PRIMARY KEY (sNo) --元组级约束 ) * 9.2.5 完整性约束的修改 用户可以为完整性约束命名,命名格式如下: [ CONSTRAINT constraintName ] PRIMARY KEY (constraintExpr) [ CONSTRAINT constraintName ] ???????????? FOREIGN KEY (constraintExpr) REFERENCE refTable(constraintExpr) [ CONSTRAINT constraintName ] ???????????? CHECK (constraintExpr) 用户命名有两点好处: 一是便于理解约束的含义; 二是修改约束方便,不必查询数据字典。 使用ALTER TABLE语句修改表中的完整性约束。 要修改约束,首先必须删除约束,然后加入新的约束。 * 9.2.5 完整性约束的修改 删除约束: ALTER TABLE tableName DROP CONSTRAINT constraintName 添加约束: ALTER TABLE tableName ADD CONSTRAINT constraintName CHECK | UNIQUE | PRIMARY KEY | FOREIGN KEY (constraintExpr) 其中 tableName为欲修改约束所在的表名; constraintName为欲修改的约束名称。 * 9.2.5 完整性约束的修改 [例9.20] 在例9.19的基础上,修改表Student中的约束条件,要求学号改为在06000~99999之间,年龄由(0, 60)之间修改为[15, 50]之间。 首先删除已经存在的约束: ALTER TABLE Student DROP CONSTRAINT sNoCK ALTER TABLE Student DROP CONSTRAINT ageCK 添加修改后的约束: ALTER TABLE Student ADD CONSTRAINT sNoCK CHECK ( sNo BETWEEN 06000 AND 99999 ) ALTER TABLE Student ADD CONSTRAINT ageCK CHECK ( sAge=15 AND sAge=50 ) * 目 录 9.4 数据库

文档评论(0)

1亿VIP精品文档

相关文档