赞
踩
SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 create table 语句),或者在表创建之后规定(通过 alter table 语句)。
create
在 SQL 中,我们有如下约束: - not null - 指示某列不能存储 NULL 值。 - unique - 保证某列的每行必须有唯一的值。 - primary key - not null 和 unique 的结合。确保某列(或两个列多个列的结合)有唯>一标识,有助于更容易更快速地找到表中的一个特定的记录。 - foreign key - 保证一个表中的数据匹配另一个表中的值的参照完整性。 - check - 保证列中的值符合指定的条件。 - default - 规定没有给列赋值时的默认值
接下来,我们依次给大家分享每一种约束。
在默认的情况下,表的列接受 NULL 值。not null 约束强制列不接受 NULL 值。not null 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
下面的 SQL 强制 "PersonID" 列、 "Name" 列以及 "Address" 列不接受 NULL 值:
create
在一个已创建的表的 "City" 字段中添加 not null 约束如下所示: 实例
alter
在一个已创建的表的 "Age" 字段中删除 NOT NULL 约束如下所示: 实例
alter
注意:在添加和删除not null约束,我用change和modify命令始终报错,这是因为我用的是sql server数据库,而change和modify命令是在my sql 和oracle下才能用的语法。
unique 约束唯一标识数据库表中的每条记录。unique 和primary key约束均为列或列集合提供了唯一性的保证。primary key 约束拥有自动定义的 unique 约束。请注意,每个表可以有多个 unique约束,但是每个表只能有一个 primary key 约束。
下面的 SQL 在 "Persons" 表创建时在 "PersonId" 列上创建unique 约束:
create
create
如需命名 unique 约束,并定义多个列的 unique 约束,请使用下面的 SQL 语法:
create
当表已被创建时,如需在 "PersonID" 列创建unique 约束,请使用下面的 SQL:
alter
如需命名 unique 约束,并定义多个列的 unique 约束,请使用下面的 SQL 语法:
alter
如需撤销 unique 约束,请使用下面的 SQL:
alter
alter
primary key 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。
下面的 SQL 在 "Persons" 表创建时在 "PersonID" 列上创建 primary key 约束:
create
create
如需命名 primary key 约束,并定义多个列的 primary key 约束,请使用下面的 SQL 语法:
create
注释:在上面的实例中,只有一个主键 primary key(pk_PersonID)。然而,pk_PersonID 的值是由两个列(PersonID和 Name)组成的。
当表已被创建时,如需在 "PersonId" 列创建 primary key 约束,请使用下面的 SQL:
alter
如需命名 primary key 约束,并定义多个列的 primary key 约束,请使用下面的 SQL 语法:
alter
注释:如果您使用 alter table 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。
如需撤销 primary key 约束,请使用下面的 SQL:
alter
alter
一个表中的 foreign key 指向另一个表中的 unique key(唯一约束的键)。 让我们通过一个实例来解释外键。请看下面两个表:
Persons 表:
Orders表:
请注意: - Orders"表中的 "PersonId" 列指向 "Persons" 表中的 "PersonId" 列。 - "Persons" 表中的 "PersonId" 列是 "Persons" 表中的 primary key。 - "Orders" 表中的 "PersonId" 列是 "Orders" 表中的 foreign key。 - foreign key约束用于预防破坏表之间连接的行为。 - foreign key约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
下面的 SQL 在 "Orders" 表创建时在 "PersonId" 列上创建 foreign key 约束:
create
create
如需命名foreign key 约束,并定义多个列的foreign key约束,请使用下面的 SQL 语法:
create
当 "Orders" 表已被创建时,如需在 "P_Id" 列创建 foreign key约束,请使用下面的 SQL:
alter
如需命名 foreign key约束,并定义多个列的 foreign key约束,请使用下面的 SQL 语法:
alter
如需撤销 foreign key约束,请使用下面的 SQL:
alter
alter
check 约束用于限制列中的值的范围。如果对单个列定义 check 约束,那么该列只允许特定的值。如果对一个表定义 check 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
下面的 SQL 在 "Persons" 表创建时在 "PersonId" 列上创建 check 约束。check 约束规定 "PersonId" 列必须只包含大于 0 的整数。
create
create
如需命名 check 约束,并定义多个列的 check 约束,请使用下面的 SQL 语法:
create
当表已被创建时,如需在 "P_Id" 列创建 check 约束,请使用下面的 SQL:
alter
如需命名 check 约束,并定义多个列的 check 约束,请使用下面的 SQL 语法:
alter
如需撤销 check 约束,请使用下面的 SQL:
alter
alter
default 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。
下面的 SQL 在 "Persons" 表创建时在 "City" 列上创建 default 约束:
create
通过使用类似getdata()这样的函数,default 约束也可以用于插入系统值:
create
当表已被创建时,如需在 "City" 列创建 default 约束,请使用下面的 SQL:
alter
alter
alter
如需撤销 default 约束,请使用下面的 SQL:
alter
alter
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。