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