sql数据完整性
exec sp_helpconstraint 'test2'? --查看表約束
alter table test2 drop constraint FK__test2__id__3C69FB99?? --刪除表約束
SQL Server 提供了一些工具來(lái)幫助用戶實(shí)現(xiàn)數(shù)據(jù)完整性,其中最主要的是:規(guī)則(Rule)、缺省值(Default)、約束(Constraint) 和觸發(fā)器(Trigger)。
on delete cascade約束
create table dept(
[ID] nchar(4) not null primary key,
[ENAME] nvarchar(4) not null
)
create table emp(
[ID] nchar(4) not null primary key,
[DID] nchar(4),
constraint FK_dept foreign key([DID]) references dept([ID])
on delete cascade
)
foreign key
create table dept(
[ID] nchar(4) not null primary key,
[ENAME] nvarchar(4) not null
)
create table emp(
[ID] nchar(4) not null primary key,
[DID] nchar(4) unique,
constraint FK_dept foreign key([DID]) references dept([ID])
?
check約束:
就是給一列的數(shù)據(jù)進(jìn)行了限制。比方說(shuō),年齡列的數(shù)據(jù)都要大于20的。表名(emp) 列名(age)
格式:
alter table 表名稱(chēng) add constraint 約束名稱(chēng) 增加的約束類(lèi)型 (列名)
例子:
alter table emp add constraint xxx check(age>20)
unique約束:
這樣的約束就是給列的數(shù)據(jù)追加的不重復(fù)的約束類(lèi)型
格式:
alter table 表名 add constraint 約束名稱(chēng) 約束類(lèi)型(列名)。比方說(shuō)可以給ename列加個(gè)unique,讓ename列的數(shù)據(jù)不重復(fù)
例子:
alter table emp add constraint qwe unique(ename)
默認(rèn)約束:
意思很簡(jiǎn)單就是讓此列的數(shù)據(jù)默認(rèn)為一定的數(shù)據(jù)
格式:
alter table 表名稱(chēng) add constraint 約束名稱(chēng) 約束類(lèi)型 默認(rèn)值) for 列名
比方說(shuō):emp表中的gongzi列默認(rèn)為10000
alter table emp add constraint jfsd default 10000 for gongzi
外鍵約束:
這個(gè)有點(diǎn)難理解了,外鍵其實(shí)就是引用。因?yàn)橹麈I實(shí)現(xiàn)了實(shí)體的完整性,
外鍵實(shí)現(xiàn)了引用的完整性,應(yīng)用完整性規(guī)定,所引用的數(shù)據(jù)必須存在!
其實(shí)就是個(gè)引用,比方說(shuō)一個(gè)表名稱(chēng)叫dept 里面有2列數(shù)據(jù) 一列是ID一列是ENAME
id:表示產(chǎn)品的編號(hào)
ename:表示產(chǎn)品的名稱(chēng)
另外一個(gè)表格名稱(chēng)是emp 里面有2列數(shù)據(jù),一列是ID 一列是DID
id:表示用戶號(hào)
did:表示購(gòu)買(mǎi)的產(chǎn)品號(hào)
要讓emp表中的did列去引用dept表中的id。可以用下面的方法
格式:
alter table 表名 add constraint 約束名稱(chēng) 約束類(lèi)型 (列名) references 被引用的表名稱(chēng) (列名)
例子:
alter table emp add constraint jfkdsj foreign key (did) references dept (id)
?
?
sql 約束
2009-11-06 09:07
| 1.主鍵約束: 要對(duì)一個(gè)列加主鍵約束的話,這列就必須要滿足的條件就是分空因?yàn)橹麈I約束:就是對(duì)一個(gè)列進(jìn)行了約束,約束為(非空、不重復(fù))以下是代碼??要對(duì)一個(gè)列加主鍵,列名為id,表名為emp 格式為: alter table 表格名稱(chēng) add constraint 約束名稱(chēng) 增加的約束類(lèi)型 (列名) 例子: alter table emp add constraint ppp primary key (id) |
| ? |
轉(zhuǎn)載于:https://www.cnblogs.com/mrray/archive/2010/12/23/1915140.html
總結(jié)
- 上一篇: 邮件发送打印机更改打印机连接的通知
- 下一篇: 软件开发经验总结(五)读源代码的艺术