创建、删除和修改约束 :

 

主键约束(primary key constraint

唯一性约束(unique constraint

检查约束(check constraint

缺省约束(default constraint

外部键约束(foreign key constraint

 

主键约束 :

主键的添加、删除和修改操作方法有两种:

(一)企业管理器操作法,在企业管理器中,用右键单击要操作的数据库表,从弹出的快捷菜单中选择设

 

计表选项 ,然后根据提示操作。

(二)Transact-SQL语句操作法。

其语法形式如下:

CONSTRAINT constraint_name

 PRIMARY KEY [CLUSTERED|NONCLUSTERED]

 column_name[,n]

 

主键约束各参数的说明如下

 

constraint_name:用于指定约束的名称,约束的名称在数据库中应该是唯一的。如果不指定,则系统会

 

自动生成一个约束名。

LUSTERED|NONCLUSTERED:用于指定索引的类型,即聚簇索引或者非聚簇索引,CLUSTERED为默认值。

column_name:用于指定主键的列名。主键最多由16个列组成。

 

例子5-5

 

在执行创建产品信息表的操作时,指定产品编号为主键值,并且创建一个聚簇索引。

create table products(

id char(10) not null,

name char(20) not null

price money default 0.01

quantity smallint null

constraint pk_id primary key clustered (id)

)

 

唯一性约束

唯一性约束用于指定一个或者多个列的组合的值具有唯一性,以防止在列中输入重复的值。当使用唯一性

 

约束时,需要考虑以下几个因素:

①使用唯一性约束的字段允许为空值。

②一个表中可以允许有多个唯一性约束。

③可以把唯一性约束定义在多个字段上。

④唯一性约束用于强制在指定字段上创建一个唯一性索引。

 ⑤缺省情况下,创建的索引类型为非聚簇索引。

 

创建和修改唯一性约束的操作方法有两种:

(一)企业管理器操作法,通过企业管理器可以完成创建和修改唯一性约束的操作。

(二)Transact-SQL语句操作法。

CONSTRAINT constraint_name

 UNIQUE [CLUSTERED|NONCLUSTERED]

column_name[,n]

 

检查约束

 

一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关。

一个表中可以定义多个检查约束。

每个CREATE TABLE语句中每个字段只能定义一个检查约束。

在多个字段上定义检查约束,则必须将检查约束定义为表级约束。

当执行INSERT语句或者UPDATE语句时,检查约束将验证数据。

检查约束中不能包含子查询。

 

创建检查约束常用的操作方法有两种:

 

1.企业管理器操作法。使用企业管理器创建检查约束,与创建唯一性约束类似

2.Transact-SQL语句操作法。检查约束的Transact-SQL语句操作法,其语法形式如下:

CONSTRAINT constraint_name

 CHECK [NOT FOR REPLICATION]

 (logical_expression)

 

例子:

 

创建了一个学生信息表,其中输入性别字段值时,只能接受“F”或者“M”,并且为phonenum字段创建检

 

查约束,限制只能输入类似01080798654之类的数据,而不能随意输入其他数据。

create table student(

Id char(8)

name char(8)

sex char(2)

phonenum int

constraint chk_sex checksex in (’F,M’))

Constraint chk_phonenum check

phonenum like (010)[0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]’)
posted on 2007-04-11 15:50  .NET初学者俱乐部  阅读(368)  评论(0)    收藏  举报


 
Asp.net 初学者零起点从入门到精通