总结之约束

1. 约束

1) primary key

主键可以保证每行记录唯一性,还可以使用主键连接其它表,这样这两张表会形成一种关系。所谓的“关系”型数据管理系统的关系就是由此来的。下面创建一个PKAblumAblumId主键。

ALTER TABLE Album 

add constraint PKAlbumAlbumId PRIMARY KEY(AlbumId)	

通常我们使用IDENTITY关键字设置主键自增长,有些时候我们要将另外一张表的数据导入另一张表中。可以使用下面的方法暂时关闭或打开自增长。

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON 

2) FOREIGN KEY 

限制引用表某一字段为被引用表某字段,这样两张表形成了关联关系。主键是保证数据完整性的方法之一。注意只能连接创建了主键(primary key)或唯一一性(UNIQUE )约束的字段。下面创建了一个FKAlbumCreatesArtist主键,Album ArtistId字段参照ArtistArtistId字段:

ALTER TABLE Album 

ADD CONSTRAINT FKAlbumCreatesArtist FOREIGN KEY(ArtistId)

    REFERENCES Artist(ArtistId)

3) CHECK

检查列值是否满足某种标准,下面列举了一些常用用法。下面创建了一个CKAlbumIsEnabled检查约束,限制Enabled字段的值只能是0,或1

ALTER TABLE Album  

ADD CONSTRAINT CKAlbumIsEnabled CHECK(Enabled IN(0,1))

序号

表达式

说明

例子

1

between 

限制取值范围。

Month between 1 and 12

2

LIKE 

使用匹配模式限制取值范围。

LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]'

3

IN

限制取值范围为一个指定列表。

IN(0,1) 

4

数学表达式

限制取值范围不能<.>=某一值或列

UnitPrice>=0  ShipDate>=OrderDate

4) UNIQUE 

UNIQUE也叫替换键,和主键功能一样可以约束字段值不能重复,可以被外键引用。不同的是它允许为NULL。下面创建了一个AKGenreID唯一约束:

Alter table  Genre

Add constraint  AKGenreID

Unique(ID)

5) DEFAULT

设置字段的默认值。下面创建了一个CNAlbumDefaultAlbumArtUrl默认约束:

ALTER TABLE Album

ADD CONSTRAINT CNAlbumDefaultAlbumArtUrl

DEFAULT N'/Content/Images/placeholder.gif' FOR AlbumArtUr

6) 禁止、启动和删除约束

禁止约束

alter table Album nocheck constraint CKAlbumIsEnabled

启用约束

alter table Album check constraint CKAlbumIsEnabled

删除约束

alter table album drop CKAlbumIsEnabled

可看表约束详细信息

exec sp_helpconstraint Album

2. 说明

使用sp_addextendedproperty 存储过程为表或字段添加“说明”。

7) 

下面为Album表添加了说明:

declare @CurrentUser sysname

select @CurrentUser = user_name()

execute sp_addextendedproperty 'MS_Description', 

   ' 音乐专辑信息表',

   'user',@CurrentUser , 'table', 'Album'

8) 字段

下面为AlbumAlbumId字段添加了

execute sp_addextendedproperty 'MS_Description', 

   '主键',

   'user', @CurrentUser, 'table', 'Album', 'column', 'AlbumId'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值