--資料的完整性
六種約束:
notnull
、check
、unique
、primary
key、
foreign
key、
default
--建立唯一約束
--這是刪除唯一約束
alter
table
xibu
drop
constraint
weiyi
--這是建立唯一約束
alter
table
xibu
addconstraint
weiyi
unique
nonclustered
(xbname
)alter
table
xibu
alter
column
asd
char(8
)--這是
check
約束insert
xs values
('010101000017'
,'克群',
'a','1989-2-9'
,'2010-9-1'
,'0101011'
,'04'
,'0402'
)select
*from
xsif
exists(
ck_xs
)alter
table
xs drop
constraint
ck_xs
alter
table
xs add
constraint
aaacheck
(*** ='男
')--withnocheck對你以前插入的資料不進行檢查
alter
table
xs with
nocheck
addconstraint
ck_***
check
(*** ='男
'or***='女'
)exec
sp_help
xs--
這是檢視表結構
--這是
default
約束alter
table
bj drop
constraint
df_bj_bz
alter
table
bj add
constraint
df_bj_bz
default
'我愛你
'forbz;
create
table
test
(id
intnot
null
primary
key,
name
varchar(10
)not
null
)drop
table
test
alter
table
test
drop
constraint
aaaalter
table
test
with
nocheck
addconstraint
aaa
default
'我真的
'for
name
exec
sp_help
test
insert
into test values
(2,default
);select
*from test 規則
/*資料的完整性*/
--規則的建立
create rule check_rule
as@a = '男' or @a = '女'
--將規則繫結到資料庫表的字段上
exec sp_bindrule 'check_rule', 'test.name'
insert into test values(1, '男');
select * from test
--注意:規則可以用到多個表上
select * into new_table from test
select * from new_table
exec sp_bindrule 'check_rule', 'new_table.name'
insert into new_table values(1, 'asd');
--刪除繫結到表中某個欄位上的規則
exec sp_unbindrule 'new_table.name'
exec sp_unbindrule 'test.name'
--刪除規則
drop rule check_rule
--default規則的一些應用
--建立預設值
create default ch_default
as '曹歡'
--將預設值繫結到資料庫表的某個字段
exec sp_bindefault ch_default,'test.name'
insert into test values(13,default);
select * from test
--刪除繫結到表字段上的default約束
exec sp_unbindefault 'test.name'
--刪除default的預設值
drop default ch_default
--這是對這節的練習
create table test1 (
id int identity(1,1) primary key ,
*** varchar(4) not null,
name varchar(12)
)select * from test1
exec sp_help test1
--建立規則
create rule check_rule
as @*** = '男' or @*** = '女'
--把規則應運到
exec sp_bindrule 'check_rule','test1.***'
exec sp_unbindrule 'test1.***'
drop rule check_rule
insert into test1 values('男','asd')
select * from test1
create default default_rule
as '曹歡'
exec sp_bindefault 'default_rule','test1.name'
exec sp_unbindefault 'test1.name'
drop default default_rule
insert into test1 values('男',default)
select * from test1
SQL完整性約束
完整性約束保證授權使用者對資料庫所做的修改不會破壞資料的一致性。not null宣告禁止在該屬性上插入空值。任何可能導致向乙個宣告為not null的屬性插入空值的資料都會產生錯誤診斷資訊。unique aj 1 aj 2 aj m unique宣告指出aj 1 aj 2 aj m 形成了乙個候選碼...
SQL完整性約束
1.資料定義語句 ddl create alter drop truncate 表結構 2.資料操縱語句 dml insert delete update select 3.資料控制語句 dcl 授權 grant 收回許可權 revoke 4.失誤控制語句 tcl 開啟事務 begin transa...
資料完整性約束
實體完整性 實體就是指一條記錄。這種完整性就是為了保證每一條記錄不是重覆記錄。是有意義的 主鍵 非空和唯一.乙個表只有乙個主鍵,但是乙個主鍵可以是由多個字段組成的 組合鍵 標識列 系統自動生成,永遠不重複 唯一鍵 唯一,但是可以為null,只能null一次 域完整性 域就是指字段,它是為了保證欄位的...