在SQL的建表命令Create Table中可以定义主键约束、外键约束和属性约束。对完整性约束命名能够灵活地增加和删除一个完整性约束条件。
SQL中完整性约束命名子句的用法。
![数据库中的constraint是什么意思?如何正确应用?](https://www.zun.com/zx/wp-content/themes/justnews/themer/assets/images/lazy.png)
一、完整性约束命名子句
语法:
CONSTRAINT<完整性约束条件名><完整性约束条件>
在SQL中完整性约束命名用CONSTRAINT来表示,后面给出的是完整性约束命名的名字以及代表的完整性约束条件。
完整性约束条件:PRIMARY KEY短语(主键约束)、FOREIGN KEY短语(外键约束)、CHECK短语(属性约束)等等。
例1:建立学生表S,要求学号在90000-99999之间,姓名不能取空值,年龄小于30,性别只能是“男”或“女”。
Create Table S
( sno NUMERIC (6)
CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999),
sname CHAR (20) CONSTRAINT C2 NOT NULL,
age NUMERIC (3) CONSTRAINT C3 CHECK (age < 30),
sex CHAR (2) CONSTRAINT C4 CHECK (sex IN (‘男 ”女’)),
CONSTRAINT SKey PRIMARY KEY (sno));
在建立表S后给出所有的属性列,其中学号是是6位数字组成的一个定点数,它的取值是在90000-99999之间,该约束条件被命名为C1;姓名不能为空,把这个约束条件命名为C2;年龄小于30,使用CHECK短语实现,该约束被命名为C3;性别只能取“男”或“女”两个值,把该约束命名为C4;同时学号是主键,在最后给出学号是主键的约束的命名SKey。
在S表上建立了5个约束条件,包括一个主码约束(命名为SKey)以及C1、C2、C3、C4四个列级约束。
利用完整性命名可以方便地修改表中的完整性约束条件。
二、修改完整性约束
修改表中的完整性限制(完整性约束)用ALTER TABLE来实现。
例2:为表S增加主键约束。
Alter Table S ADD CONSTRAINT a1 primary key (sno);
修改表S,加上一个约束-学号是主键同时给该约束起名为a1。
例3:为表SC增加成绩在0到100之间的限制。
Alter Table SC ADD CONSTRAINT c1
check (grade between 0 and 100);
修改表SC,增加一个约束并命名为c1,约束的内容是成绩在0到100之间。
![数据库中的constraint是什么意思?如何正确应用?](https://www.zun.com/zx/wp-content/themes/justnews/themer/assets/images/lazy.png)
例3的SQL SERVER命名执行结果图
在SQL SERVER中,将例3的命名执行之后,可以看到在表SC下方的约束中出现了新的约束c1。如果不对约束命名,系统会对约束进行自动命名,如键列表中的“PK_SC”是系统命名的主键,如果是“FK”开头的即为表的外键。
例4:取消表S对年龄小于30的限制。
Alter Table S DROP CONSTRAINT C3;
前面定义的“年龄小于30”的限制所起的名字是C3,这样就可以方便地利用该命名把这个约束删除、取消。即修改表S,使用DROP命令删掉约束C3。
例5:修改表S中的约束条件,要求年龄由小于30改为小于40。
这种修改的实现一般是由两种语句来合作完成:先删除原来的约束条件,再增加新的约束条件。
Alter Table S DROP CONSTRAINT C3;
Alter Table S ADD CONSTRAINT C3 CHECK (age < 40));
在S表中做修改,删除约束C3, “年龄小于30”的约束被命名为C3,所以要先将它删掉;再在表S中增加一个约束C3,新的约束的条件的内容是“年龄小于40” 。
三、总结
给完整性约束命名的好处是方便约束的维护、管理、记忆、使用。
在建表的时候如果没有指定情况下用户可以通过Alter Table命令随时施加约束和修改表中原有的完整性限制,非常灵活方便。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处: