加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数据库的完整性约束

(2012-03-23 21:19:39)
标签:

杂谈

分类: 锋叔子动真格系列之数据库

以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实

现以下操作;
1. 请用至少2种方法定义stu数据库中student表的主键sno;
1)sno char(9)  primary key
2)primary key(sno)


2. 将数据库stu的表course的cno字段定义为主键,约束名称

为cno_pk;

constraint  cno_pk primary key


3. 为表course中的字段cname添加唯一值约束;
constraint  course_uk unique


4. 将数据库stu的表sc的sno及cno字段组合定义为主键,约

束名称为sc_pk;
create table sc(
sno char(9) ,
cno char(4),
grade int check(grade<=100 and grade>=0)
constraint sc_pk primary key(sno,cno)
)


5. 对于数据表sc的sno、cno字段定义为外码,使之与表

student的主码sno及表course的主码cno对应,
实现如下参照完整性:
1) 删除student表中记录的同时删除sc表中与该记录sno字段

值相同的记录;
2) 修改student表某记录的sno时,若sc表中与该字段值对应

的有若干条记录,则拒绝修改;
3) 修改course表cno字段值时,该字段在sc表中的对应值也

应修改;
4) 删除course表一条记录时,若该字段在在sc表中存在,则

删除该字段对应的记录;
5) 向sc表添加记录时,如果该记录的sno字段的值在student

中不存在,则拒绝插入;
create table sc(
sno char(9) ,
cno char(4),
grade int check(grade<=100 and grade>=0),
constraint c3 primary key(sno,cno),
constraint c4 FOREIGN key(sno) references student(sno),
constraint c5 FOREIGN key(cno) references course(cno)
);
6.  定义check约束,要求学生学号sno必须为9位数字字符,且不

能以0开头,第二三位皆为0;(不用做)
sno char(9) constraint c1 CHECK (SNO LIKE'*00?'  AND SNO

NOT LIKE '0?'),

7.  定义stu数据库中student表中学生年龄值在16-25范围内;
sage int   constraint c7 check(ssage>15 and ssage <25),

8.  定义stu数据库中student表中学生姓名长度在2-8之间;
sname char(8) check(len(sname)>2 and len(sname)<8),

9.  定义stu数据库中student表中学生性别列中只能输入“男”或

“女”;
ssex char(2 ) constraint c3 check(ssex in('男','女')),

10.  定义stu数据库student表中学生年龄值默认值为20;
sage int   default 20,

11.  修改student表学生的年龄值约束可以为15-30范围内;(不用

做)

12.  删除上述唯一值约束、外键约束及check约束;

alter table student 
drop constraint c1,c2,c3
alter table sc 
drop constraint c8,c4,c5

    13.向下列三个表中分别插入如下数据:
Student表
学号
Sno 姓名
Sname 性别
SSex 年龄
Sage 系编号
sdept
S001 王明 男 19 D2
S002 李勇 男 23 D3
S003 刘燕 女 21 D1
S004 沈笑萍 女 23 D1
S005 王佳 男 24 D3
S006 赵婷 女 20 D1
SC表
学号
Sno 课程号
Cno 成绩
grade
S001 C1 83
S001 C2 89
S001 C3 65
S001 C4 85
S001 C5 69
S002 C3 78
S002 C4 75
S005 C1 95
S004 C1 85
S005 C1 92
S005 C3 76

 

Course 表
课程号
Cno 课程名称
Cname 学分
Credit
C1 数据库系统原理 4
C2 C程序设计 4
C3 计算机体系结构 3
C4 自动控制原理 2
C5 数据结构 4
insert into  student(sno ,sname ,ssex ,sage ,sdept )

values
('S002','王明','男',19,'D2')
insert into  student(sno ,sname ,ssex ,sage ,sdept )

values('S002','李勇','男',23,'D3')
insert into  student(sno ,sname ,ssex ,sage ,sdept )

values
('S003','刘燕','女',21,'D1')
insert into  student(sno ,sname ,ssex ,sage ,sdept )

values
('S004','沈笑萍','女',23,'D1')
insert into  student(sno ,sname ,ssex ,sage ,sdept )

values
('S005','王佳','男',24,'D3')
insert into  student(sno ,sname ,ssex ,sage ,sdept )

values
('S006','赵婷','女',20,'D1')
insert into  sc(sno ,cno,grade  ) values
('S001','c1',83)
insert into  sc(sno ,cno,grade  ) values
('S001','c2',89)
insert into  sc(sno ,cno,grade  ) values
('S001','c3',65)
insert into  sc(sno ,cno,grade  ) values
('S001','c4',85)
insert into  sc(sno ,cno,grade  ) values
('S001','c5',69)
insert into  sc(sno ,cno,grade  ) values
('S002','c3',78)
insert into  course(cno ,cname,credit) values
('c1','数据库系统原理',4)
insert into  course(cno ,cname,credit) values
('c2','c程序设计',4)

insert into  course(cno ,cname,credit) values
('c3','计算机体系结构',3)

insert into  course(cno ,cname,credit) values
('c4','自动控制原理',2)

insert into  course(cno ,cname,credit) values
('c5','数据结构',4)

 

 

完整程序如下:

create table student(
sno char(9) constraint c1 CHECK (SNO LIKE'*00?'  AND SNO

NOT LIKE '0?'),
sname char(8)  constraint c2 check(len(sname)>2 and len

(sname)<8),
ssex char(2 ) constraint c3 check(ssex in('男','女')),
sage int   constraint c7 check(sage>15 and sage <25),
sdept char(2),
primary key(sno)
)
create table course(
cno char(4),
cname char(16),
Credit int,
primary key(cno)
)
create table sc(
sno char(9) ,
cno char(4),
grade int check(grade<=100 and grade>=0),
constraint c8 primary key(sno,cno),
constraint c4 FOREIGN key(sno) references student(sno),
constraint c5 FOREIGN key(cno) references course(cno)
);

 

 

http://s7/middle/753e6cc9gbbe8ea0f6356&690

http://s7/middle/753e6cc9gbbe8ea7de9b6&690

http://s5/middle/753e6cc9gbbe8eaab9564&690



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有