资源描述
0720林攀 07419043 copyright
实验二 数据库的更新
姓名:林攀 学号;07419043
一、实验目的
1.进一步熟悉查询分析器和企业管理器的使用方法。
2.掌握向数据库输人数据、修改数据和删除数据的方法。
二、实验内容
⑴ 在已经存在的学生表中增加一个邮件地址“SEMAIL”的新属性,允许为空。
ALTER TABLE 学生 ADD SEMAIL CHAR(30) NULL
select *
from 学生
s001
王明
男
19
86824571
D2
NULL
s002
李勇
男
23
89454321
D3
NULL
s003
刘燕
女
21
NULL
D1
NULL
s004
王萍
女
23
NULL
D1
NULL
s005
王佳
男
24
13098765892
D3
NULL
s006
赵婷
女
20
null
D1
NULL
2)在学生表中限定年龄Sage 小于80岁大于16岁。
ALTER TABLE 学生ADD CONSTRAINT CKS1 CHECK(年龄>16 AND 年龄<80)
3)将新生(学号:5020;姓名:伍俊;性别:男;年龄:22;电话:49542784;系编号:D4)的记录插人学生表中,并增加相应的选课记录(“s020”,“C1”,80)。
insert into 学生(学号,姓名,性别,年龄,电话,系编号)
VALUES('1020','TOM','男',22,'13812312312','D4')
INSERT
into选课
VALUES('1020','C1',80)
1020
TOM
男
22
13812312312
D4
NULL
4)假设过了一个学年,将所有学生的年龄增加1岁。
UPDATE 学生
SET 年龄=年龄+1
s001
王明
男
20
86824571
D2
NULL
s002
李勇
男
24
89454321
D3
NULL
s003
刘燕
女
22
NULL
D1
NULL
s004
王萍
女
24
NULL
D1
NULL
s005
王佳
男
25
13098765892
D3
NULL
s006
赵婷
女
21
null
D1
NULL
1020
TOM
男
23
13812312312
D4
NULL
⑸ 事后发现学生王明考试作弊,将其所有成绩改为0分。
UPDATE 选课
SET GRADE=0
WHERE 学号=
(SELECT 学号
FROM 学生
WHERE 姓名='王明')
s001
c1
0
s001
c2
0
s001
c3
0
s001
c4
0
s001
c5
0
s002
c3
78
s002
c4
75
s004
c1
85
s005
c1
95
s005
c2
92
s005
c3
76
⑹ 学号为“s002”的学生平时表现优异,将其数据库原理成绩增加10分。
UPDATE 选课
SET 成绩=成绩+10
WHERE 学号='s002' AND 课程号=
(SELECT 课程号
FROM 课程
WHERE 课程名称='数据库原理')
10
0
0
0
75
95
92
⑺由于选修C3课程的人数太少,学校决定暂不开课,删除所有“C3”的选课记录。
DELETE
FROM SC
WHERE CNO='C3'
课程号
c1
c2
c4
c5
c4
c1
c1
c2
⑻学号为“s004”的学生由于退学,删除该学生及其选课记录。
DELETE
FROM 选课
WHERE 学号='s004'
DELETE
FROM 学生
WHERE 学号='s004'
select 学号
from 选课
学号
s001
s001
s001
s001
s002
s005
s005
三、思考题
1.SQL Server 2000提供了哪些基本数据类型?
答;数值型,字符型,文本型,日期型,逻辑型,浮点型
2.SQL Server 2000有哪些方法可用来保证数据的完整性约束?
答:主要包括:约束(CONSTRAINT)、规则(RULE)、默认值、允许空属性、标识和触发器(TRIGGER)等。
3.数据库中一般不允许更改主码数据。如果需要更改主码数据时,怎样处理?
只要在每次修改的时候检查一下改过之后的数据在数据库存中是否存在。SQL: SELECT * FROM 表名 WHERE 主键 = 更改过后的值。
4.试着删除被参照表中的主码,看看会出现什么样的情况?分析一下系统这么做的原
因。
答;导致各基本表的连接出错,破坏了数据的完整性
3
展开阅读全文