数据库的完整性约束


标签:
杂谈 |
分类: 锋叔子动真格系列之数据库 |
以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实
现以下操作;
1.
1)sno char(9)
2)primary key(sno)
2.
为cno_pk;
constraint
3.
constraint
4.
束名称为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.
student的主码sno及表course的主码cno对应,
实现如下参照完整性:
1)
值相同的记录;
2)
的有若干条记录,则拒绝修改;
3)
应修改;
4)
删除该字段对应的记录;
5)
中不存在,则拒绝插入;
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.
能以0开头,第二三位皆为0;(不用做)
sno char(9) constraint c1 CHECK (SNO LIKE'*00?'
NOT LIKE '0?'),
7.
sage int
8.
sname char(8) check(len(sname)>2 and
len(sname)<8),
9.
“女”;
ssex char(2 ) constraint c3 check(ssex in('男','女')),
10.
sage int
11.
做)
12.
alter table student
drop constraint c1,c2,c3
alter table sc
drop constraint c8,c4,c5
Student表
学号
Sno
Sname
SSex
Sage
sdept
S001
S002
S003
S004
S005
S006
SC表
学号
Sno
Cno
grade
S001
S001
S001
S001
S001
S002
S002
S005
S004
S005
S005
Course 表
课程号
Cno
Cname
Credit
C1
C2
C3
C4
C5
insert into
values
('S002','王明','男',19,'D2')
insert into
values('S002','李勇','男',23,'D3')
insert into
values
('S003','刘燕','女',21,'D1')
insert into
values
('S004','沈笑萍','女',23,'D1')
insert into
values
('S005','王佳','男',24,'D3')
insert into
values
('S006','赵婷','女',20,'D1')
insert into
('S001','c1',83)
insert into
('S001','c2',89)
insert into
('S001','c3',65)
insert into
('S001','c4',85)
insert into
('S001','c5',69)
insert into
('S002','c3',78)
insert into
('c1','数据库系统原理',4)
insert into
('c2','c程序设计',4)
insert into
('c3','计算机体系结构',3)
insert into
('c4','自动控制原理',2)
insert into
('c5','数据结构',4)
完整程序如下:
create table student(
sno char(9) constraint c1 CHECK (SNO LIKE'*00?'
NOT LIKE '0?'),
sname char(8)
(sname)<8),
ssex char(2 ) constraint c3 check(ssex in('男','女')),
sage int
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