数据库中的constraint是什么意思?如何正确应用?

在SQL的建表命令Create Table中可以定义主键约束、外键约束和属性约束。对完整性约束命名能够灵活地增加和删除一个完整性约束条件。

SQL中完整性约束命名子句的用法。

数据库中的constraint是什么意思?如何正确应用?

一、完整性约束命名子句

语法:

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是什么意思?如何正确应用?

例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 举报,一经查实,本站将立刻删除。原文转载: 原文出处:

(0)
云计算的头像云计算
上一篇 2024 年 9 月 26 日
下一篇 2024 年 9 月 26 日

相关推荐

发表回复

登录后才能评论

联系我们

400-900-3935

在线咨询: QQ交谈

邮件:cong@zun.com

工作时间:365天无休服务 24小时在线

添加微信