数据库实验第三次.docx

上传人:b****7 文档编号:25643017 上传时间:2023-06-11 格式:DOCX 页数:16 大小:148.24KB
下载 相关 举报
数据库实验第三次.docx_第1页
第1页 / 共16页
数据库实验第三次.docx_第2页
第2页 / 共16页
数据库实验第三次.docx_第3页
第3页 / 共16页
数据库实验第三次.docx_第4页
第4页 / 共16页
数据库实验第三次.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据库实验第三次.docx

《数据库实验第三次.docx》由会员分享,可在线阅读,更多相关《数据库实验第三次.docx(16页珍藏版)》请在冰豆网上搜索。

数据库实验第三次.docx

数据库实验第三次

南昌航空大学实验报告

2016年月日

课程名称:

数据库原理及应用实验名称:

SQL-更新操作

学号:

姓名:

同组人:

指导教师评定:

签名:

实验目的:

利用INSERT、UPDATE和DELETE命令(或语句)实现对表(或试图)数据的添加、修改与删除等更新操作,这里主要介绍对表的操作。

实验内如与要求:

建表和数据库的代码:

Createdatabasejxgl

USEjxgl

GO

CreateTableStudent

(SnoCHAR(5)notnullprimarykey(Sno),

Snamevarchar(20),

Sagesmallintcheck(Sage>=15ANDSage<=45),

Ssexchar

(2)default'男'check(Ssex='男'ORSsex='女'),

Sdeptchar

(2));

CreateTableCourse

(Cnochar

(2)NOTNULLprimarykey(Cno),

CnameVARCHAR(20),

Cpnochar

(2),

CcreditSMALLINT);

CreateTableSC

(Snochar(5)NOTNULLCONSTRAINTS_FFOREIGNKEYREFERENCESStudent(Sno),

CnoCHAR

(2)NOTNULL,

Gradesmallintcheck((GradeISNULL)OR(Gradebetween0and100)),

Primarykey(Sno,Cno),

foreignkey(Cno)referencesCourse(Cno));

insertintoStudentvalues('98001','钱横',18,'男','CS');

insertintoStudentvalues('98002','王林',19,'女','CS');

insertintoStudentvalues('98003','李民',20,'男','IS');

insertintoStudentvalues('98004','赵三',16,'女','MA');

insertintoCoursevalues('1','数据库系统','5',4);

insertintoCoursevalues('2','数学分析',null,2);

insertintoCoursevalues('3','信息系统导论','1',3);

insertintoCoursevalues('4','操作系统_原理','6',3);

insertintoCoursevalues('5','数据结构','7',4);

insertintoCoursevalues('6','数据处理基础',null,4);

insertintoCoursevalues('7','C语言','6',3);

insertintoSCvalues('98001','1',87);

insertintoSCvalues('98001','2',67);

insertintoSCvalues('98001','3',90);

insertintoSCvalues('98002','2',95);

insertintoSCvalues('98002','3',88);

图:

Student表:

Course表:

SC表:

请实践以下命令式更新操作

1、在学生表Student和学生选课表SC中分别添加表5-1和表5-2中的记录

表5-1:

表5-2:

代码:

InsertIntoStudentValues('99010','赵青江','18','男','CS');

InsertIntoStudentValues('99011','张丽萍','19','女','CH');

InsertIntoStudentValues('99012','陈景欢','20','男','IS');

InsertIntoStudentValues('99013','陈婷婷','16','女','PH');

InsertIntoStudentValues('99014','李军','16','女','EH');

InsertIntoSCValues('99010','1','87');

InsertIntoSCValues('99010','2',null);

InsertIntoSCValues('99010','3','80');

InsertIntoSCValues('99010','4','87');

InsertIntoSCValues('99010','6','85');

InsertIntoSCValues('99011','1','52');

InsertIntoSCValues('99011','2','47');

InsertIntoSCValues('99011','3','53');

InsertIntoSCValues('99011','5','45');

InsertIntoSCValues('99012','1','84');

InsertIntoSCValues('99012','3',null);

InsertIntoSCValues('99012','4','67');

InsertIntoSCValues('99012','5','81');

 

插入后:

Student表:

 

插入后:

SC表:

 

2、备份Student表到TS中并清空TS表。

代码:

未清空前TS表:

select*

intoTS

fromStudent;

 

清空后TS表:

3、给IS系的学生开设7号课程,建立所相应的选课记录,成绩暂定为60分。

代码:

表:

insertintoSC

selectSno,Cno,60

fromStudent,Course

whereSdept='IS'andCno='7';

4、把年龄小于等于16岁的女生计录保存到表TS中。

代码:

图:

insertintoTS

select*

fromStudent

whereSage<=16andSsex='女';

5、在表Student中检索每门课均不及格的学生学号、年龄、性别及所在系等信息。

代码:

图:

selectsno,sname,sage,sdept

fromstudent

wheresnoin

selectSno

fromSC

whereGrade<60

groupbySno

havingcount(sno)=count(cno));

6、将学号“99011”的学生姓名改为刘华,年龄增加一岁。

代码:

修改前:

updateStudent

setSname='李华',Sage=Sage+1

whereSno='99011';修改后:

7、把选修了“数据库系统”课程而成绩不及格的学生成绩全改为空值。

代码:

图:

updateSC

setGrade=NULL

whereSnoin

selectSno

fromSC

whereGrade<60andCno=

selectCno

fromCourse

whereCname='数据库系统'

))

8、将Student的前四位学生的年龄均增加1岁。

代码:

更改前:

更改后:

updateStudent

setSage=Sage+1

whereSnoin

selecttop4Sno

fromstudent)

9、学生王林在3课程中作弊,该课程成绩改为空值。

代码:

更改前:

更改后:

updateSC

setGrade=NULL

whereSno=

(selectSno

fromStudent

whereSname='王林')

andCno=3;

10、把成绩低于总平均成绩的女同学的成绩提高5%。

 

代码:

更改前:

更改后:

updateSC

setGrade=Grade+Grade*

whereSnoin

(selectSno

fromSC

whereGrade<(

selectAvg(Grade)

fromSC)andSnoin

selectSno

fromStudent

whereSsex='女'

))

11、在基本表中SC中修改课程号为“2”号课程的成绩,若成绩小于等于80分时降低2%若成绩大于80分时降低1%(用两个UPDATE语句实现)。

代码:

更改前:

更改后:

updateSC

setGrade=Grade-Grade*

whereGrade<80andCno='2'

updateSC

setGrade=Grade-Grade*

whereGrade>80andCno='2'

12、利用“selectinto…”命令来备份Student、SC、Course三表,备份表名自定。

代码:

更改前:

更改后:

select*intoTStudentfromStudent

select*intoTSCfromSC

select*intoTCoursefromCourse;

13、在基本表SC中删除尚无成绩的选课元组。

代码:

更改前:

(selectSno,GradefromSCwhereGradeisNULL)

delete

fromSC

whereGradeisNULL;

14、把‘钱横‘同学的选课情况全部删除、

代码:

更改前:

更改后:

delete

fromSC

whereSno=

selectSno

fromStudent

whereSname='钱横')

15、能删除学号为“98003”的学记录吗如果一定要删除该记录,该如何操作给出操作命令。

不能,图:

先删除SC表中有关98003学生的信息:

deletefromSCwhereSno='98003'

再删除Student表中的记录:

图:

代码:

deletefromStudentwhereSno='98003'

16、删除姓‘张‘的学生的记录。

代码:

更改前:

(查询姓张同学信息)更改后:

select*

fromStudent

whereSnamelike'张%'

17、清空Student与Course两表。

代码:

更改后两表:

 

具体操作:

先删除sc表消除外键约束

再删除sc表

将TSC表中的数据插入到sc表中

deleteSC

deleteStudent

deleteCourse

droptableSC

select

intoSC

fromTSC;

14、如何又从备份表中恢复所有的三张表。

代码:

droptableStudent

droptableCourse

select*

intoStudent

fromTStudent

select*

intoCourse

fromTCourse

更改后SC表:

更改后Student表:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1