跳到内容
[广告]欧美亚马逊SSN账号、炮灰号开售 ×

数据库中的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命令随时施加约束和修改表中原有的完整性限制,非常灵活方便。

评论链接
在其他网站上分享

创建账户或登录以发表评论

您需要成为会员才能发表评论

创建一个帐户

在我们的社区注册一个新账户。很简单!

注册新账户

登入

已有账户?在此登录

立即登录
  • 告诉你朋友

    喜欢 西塞网络科技?告诉朋友!
×
×
  • 创建新的...

重要信息

我们在您的设备上放置了 cookies,以帮助改善本网站。您可以调整您的 cookie 设置,否则我们会假定您可以继续

版权所有 © 2018-2025 西塞网络科技
粤公网安备44200002444913号