注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

子木的博客

简单才能专一!

 
 
 

日志

 
 

SQL SERVER约束相关语句  

2009-05-12 17:05:07|  分类: 计算机综合应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

alter table sc drop constraint sc_fk1
alter table sc drop constraint sc_fk2
alter table s drop constraint s_pk
alter table c drop constraint c_pk
alter table sc drop constraint sc_pk
alter table s drop constraint check_sgender
go

drop table s
drop table c
drop table sc
go

create table s (
 sno char(6) not null,
 sname nvarchar(50),
 sgender nchar(1),
 sbirthday datetime
)

create table c (
 cno char(3) not null,
 cname nvarchar(50),
 ccredit float(3)
)

create table sc (
 sno char(6) not null,
 cno char(3) not null,
 grade float(3)
)

--主键约束
alter table s add constraint s_pk primary key (sno)
alter table c add constraint c_pk primary key (cno)
alter table sc add constraint sc_pk primary key (sno,cno)
go

--外键约束
alter table sc add constraint sc_fk1 foreign key (sno) references s
         on delete cascade on update cascade
alter table sc add constraint sc_fk2 foreign key (cno) references c
         on update cascade
go

--check约束
alter table s add constraint check_sgender check(sgender in('男','女'))
go


insert into s values ('063201','s1','男','1984-12-03')
insert into s values ('063105','s2','女','1986-06-28')
insert into s values ('073102','s3','女','1989-04-18')
insert into s values ('083101','s4','男','1990-09-28')
go

insert into c values ('001','c1',3)
insert into c values ('002','c2',1)
insert into c values ('011','c3',4)
insert into c values ('008','c5',3)
go

insert into sc values ('063201','001',85)
insert into sc values ('063201','002',75)
insert into sc values ('063201','008',77)
insert into sc values ('063105','008',92)
insert into sc values ('063105','011',81)
insert into sc values ('063105','002',86)
insert into sc values ('073102','001',79)
insert into sc values ('073102','002',75)
insert into sc values ('083101','008',62)
insert into sc values ('083101','011',56)
insert into sc values ('083101','001',70)
go

 


select * from s
select * from c
select * from sc
go

--违反主键约束,主键字段值唯一
insert into c values ('001','c1',3)
--违反check约束
insert into s values ('083102','s4','0','1990-09-28')

--级联删除
delete s
where sno='063105'

--级联修改
update s
set sno='01'
where sno='063201'

select * from s
select * from sc

  评论这张
 
阅读(148)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018