Tuesday, April 10, 2007

SQL Server 笔记:Constraint

Create table S (sno char(4) primary key) /*--主键:实体完整性*/

select * from s
insert into s values('s001')
insert into s values('s002') /*插入相同值会出错*/

drop table s

Create table S (
sno char(4) constraint pk_s primary key /*--主键约束:约束名:pk_s*/
)

Create table S (sno char(4) not null) /*非空属性*/

alter table s add constraint pk_s primary key(sno) /*增加一个主键约束*/

create table test
(
a int identity(2,10) /*实体完整性:设置一个标识列进行*/
)

drop table s
-- ===========================
Create table S (
sno char(4) primary key,
age smallint default 20 /*--域完整性:默认值定义*/
)

select * from s
insert into s(sno) values('s001')
insert into s(sno) values('s002') /*插入相同值会出错*/

-- ============================
Create table S (
sno char(4) primary key,
age smallint not null check(age>=18 and age<=35) /*--检查约束*/
)

insert into s(sno,age) values('s001',18)

-- ============================
drop table s

Create table S (
sno char(4) primary key,
sname char(30) constraint uq_sname unique /*--唯一约束*/
)

insert into s values('s001','张三')
insert into s values('s002','李四')
insert into s values('s003','张三')

alter table s drop constraint uq_sname /*删除约束*/

-- ============================
create table K(
kno char(3) primary key,
kname char(50) /*--检查约束*/
)

insert into k(kno,kname) values('k01','SQL Server 数据库设计')
insert into k(kno,kname) values('k02','Windows2000系统管理和安全')

select * from k

create table X(
sno char(4),
kno char(3) foreign key references K(kno) /*--外键约束, foreigh key 可以不用声明*/
)

select * from X
insert into X values('s001','k01')
insert into X values('s002','k02')

delete from k where kno='k01' /*引用完整性*/

-- ============================
select * from s

alter table s add sname varchar(20) /*增加字段*/

alter table s alter column sname char(20) /*修改字段类型*/

alter table s drop column sname /*删除字段*/

No comments: