数据更新、视图的创建与修改
一、实验目的 1、学会使用INSERT、UPDATE、DELETE等SQL语句进行数据更新; 2、学会使用CREATE、DROP等SQL语句创建和删除视图。 二、实验内容 1、在SQL Server Management Studio中使用INSERT、UPDATE、DELETE语句进行数据更新。 2、在SQL Server Management
一、实验目的
1、学会使用INSERT、UPDATE、DELETE等SQL语句进行数据更新;
2、学会使用CREATE、DROP等SQL语句创建和删除视图。
二、实验内容
1、在SQL Server Management Studio中使用INSERT、UPDATE、DELETE语句进行数据更新。
2、在SQL Server Management Studio中使用CREATE、DROP语句创建和删除视图。
三、实验步骤
1、利用SQL Server Management Studio在数据库S_C的三个表中分别插入以下数据:学生表S:
sno |
sname |
birthday |
sdeptartment |
tel |
sex |
J0401 |
李军 |
1985-2-12 |
计算机系 |
0576-85123464 |
男 |
J0402 |
刘晨 |
1986-5-22 |
数学系 |
0576-85123466 |
女 |
J0403 |
王敏 |
1986-4-28 |
计算机系 |
0576-85123464 |
女 |
J0404 |
张立 |
1984-9-8 |
计算机系 |
0576-85123464 |
男 |
课程表C:
cno |
cname |
teacher |
pcno |
C01 |
数据库 |
GUO |
C03 |
C02 |
VB |
LIU |
C03 |
C03 |
计算机基础 |
LI |
|
C04 |
数学 |
WANG |
|
C05 |
数据结构 |
ZHANG |
C03 |
C06 |
C语言 |
CHEN |
C03 |
成绩表SC:
sno |
cno |
grade |
J0401 |
C05 |
92 |
J0401 |
C06 |
85 |
J0401 |
C02 |
88 |
J0401 |
C01 |
90 |
J0402 |
C04 |
80 |
J0403 |
C02 |
76 |
J0404 |
C03 |
88 |
2、在查询窗口中:
1)选择数据库S_C,用INSERT语句向学生表S中插入一个新生记录(sno:J0405;sname:陈东;birthday:1987-5-3;sdeptartment:中文系;tel:0576-85123466;sex:女)。
Sql语句:
INSERT INTO S
VALUES('J0405', '陈东', '1987-5-3', '中文系', '0576-85123466', '女')
2)把课程名为VB的成绩从基本表SC中删除。
Sql语句:
DELETE FROM SC WHERE cno =
(SELECT cno FROM C WHERE cname = 'VB')
3)把女生的成绩提高10%。
Sql语句:
UPDATE SC
SET SC.grade = SC.grade*1.1 FROM SC, S
WHERE SC.sno = S.sno AND S.sex = '女'
4)如果学号为J0404的学生成绩少于90分,则加上10分。
Sql语句:
UPDATE SC
SET SC.grade = SC.grade+10
WHERE SC.sno = 'J0404' AND SC.grade
5)将成绩最低的学生成绩加上10分。
UPDATE SC
SET SC.grade = SC.grade+10
WHERE SC.grade = (SELECT TOP 1 SC.grade FROM SC ORDER BY SC.grade)
6)将成绩最高前3名的学生成绩减去20分。
Sql语句:
UPDATE SC
SET SC.grade = SC.grade-20
WHERE SC.grade IN (SELECT TOP 3 SC.grade FROM SC ORDER BY SC.grade DESC)
7)将成绩最低前10%的学生成绩减去5分。
Sql语句:
UPDATE SC
SET SC.grade = SC.grade-5
WHERE SC.grade IN (SELECT TOP 10 PERCENT SC.grade FROM SC ORDER BY SC.grade)
8)把王敏同学的学习选课和成绩全部删去。
Sql语句:
DELETE FROM SC
WHERE SC.sno = (SELECT S.sno FROM S WHERE S.sname = '王敏')
9)从学生表中删除成绩出现过 0 分的所有学生信息。
Sql语句:
DELETE FROM S
WHERE S.sno = (SELECT SC.sno FROM SC WHERE SC.grade = 0)
3、在查询分析器中用CREATE语句建立视图。
1)建立计算机系学生的视图IS_student。
Sql语句:
CREATE VIEW IS_student
AS
SELECT * FROM S
WHERE S.sdeptartment = '计算机系'
WITH CHECK OPTION
2)建立计算机系选修了C02课程的学生的视图IS_C02。
Sql语句:
CREATE VIEW IS_C02
AS
SELECT * FROM S
WHERE S.sdeptartment = '计算机系' AND S.sno =
(SELECT SC.sno FROM SC WHERE SC.cno = 'C02')
WITH CHECK OPTION
3)建立计算机系选修了C02课程且成绩在90分以上的学生的视图IS_C0290。
Sql语句:
CREATE VIEW IS_C0290
AS
SELECT * FROM S
WHERE S.sdeptartment = '计算机系' AND S.sno =
(SELECT SC.sno FROM SC WHERE SC.cno = 'C02' AND SC.grade >= 90)
WITH CHECK OPTION
4、在查询分析器中用DROP语句删除视图IS_student。
Sql语句:
DROP VIEW IS_student
四、实验总结
新手自学 有错勿喷