第2次报告数据库上的基本操作实验课案Word文档格式.docx
《第2次报告数据库上的基本操作实验课案Word文档格式.docx》由会员分享,可在线阅读,更多相关《第2次报告数据库上的基本操作实验课案Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
实验目的
1、掌握使用T-SQL语句和企业管理器对数据表进行插入,修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性约束的理解。
2、熟练掌握INSERT、UPDATE、DELETE语句的语法和使用。
3、掌握SQL的查询语句(SELECT语句)的使用方法,掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。
4、进一步掌握SELECT语句的使用的方法,通过实验能够熟练的使用SELECT语句。
5、掌握嵌套查询和统计查询的方法。
6、理解索引和视图的概念。
7、掌握索引的使用方法。
8、掌握视图的定义和使用方法。
二、实验内容
1、分别使用T-SQL语句和企业管理器,向数据库JWGL,数据库Market,数据库SPJ,数据库TSGL中的各张表中输入一些记录。
2、使用T-SQL语句进行插入,修改和删除记录的操作。
3、简单查询操作。
包括投影,选择条件表达,数据排序等。
4、连接查询操作。
包括等值连接,自然连接,一般连接(内连接),外连接,左连接,右连接和自然连接等。
5、在数据库JWGL的学生表Student,课程表Course,学生选课表SC中完成第三章3.40-3.47中的查询操作。
6、在数据库Market的客户表Customers,货品表Goods,订单表Orders中完成习题6中(6)-(9)的查询。
7、在数据库SPJ中的供应商表S,零件表P,工程项目表J,供应情况表SPJ中,用SELECT查询语句完成第2章习题10中(4)-(5)的查询。
8、在数据库TSGL的图书,读者和借阅3个表中,用SELECT语句完成一些查询。
9、建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE
JWGL
IF
EXISTS(SELECT
name
FROM
sysindexes
WHERE
=
'
SC_ind'
)
DROP
INDEX
SC.SC_ind;
GO
CREATE
SC_ind
ON
SC
(Cno,Grade
DESC);
10、视图的定义和操作,
(1)
在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)
在Market数据库中,完成第三章习题11中
(1)中建立视图的操作,然后在视图上完成第三章习题11
(2)的查询操作。
三、实验环境
MSSQLServer2016
四、实验前准备
1、明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。
2、创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初大小、最大大小、是否允许增长及增长的方式)和存储数据的文件。
3、确定数据库包含哪些表以及包含的各表的结构,还要了解SQLServer的常用数据类型,以创建数据库的表。
4、知道如何创建数据库及完成相应操作,了解常用创建数据库和表的方法。
五、实验步骤
(1)分别使用T-SQL语句和企业管理器,向数据库JWGL、数据库Market中各输入一些记录。
(2)使用T-SQL语句进行插入、修改和删除记录的操作。
①插入数据时既要插入一些不违背数据完整性约束的记录,也要插入一些违背数据完整性约束的记录,观察插入后的结果,并利用相关知识解释此现象。
在涉及参照完整性约束的参照表中插入数据时,理解系统是如何保证完整性的。
②修改数据时除使用正确数据外,也可以对修改后的新值使用一些违背数据完整性约束的数据,观察系统执行后的结果。
另外进一步观察在涉及参照完整性
约束的参照表和被参照表中修改数据时系统的执行情况,如果违背参照完整性那么观察结果。
③删除记录时一般不会出现问题,但要是在有参照完整性约束的被参照表中删除数据时也存在破坏完整性的情况。
观察删除记录系统的执行结果。
(4)简单查询操作。
该试验包括投影、选择表达、数据排序等。
①在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第3章例题3.10-例题3.28的查询操作。
②在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中
(1)-(4)的查询。
③在数据库TSGL的图书、读者和借阅3个表中,用SELECT语句完成以下查询:
查询类分别为“计算机”的所有的图书信息;
查询数据库方面的图书信息;
查询2008-05-10到2008-07-10之间的借阅资料。
(5)连接查询操作。
该实验包括等值连接、自然连接、一般连接(内连接)、外连接、左外连接、右外连接和自然连接等。
①在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第3章例题3.35-例题3.39中的查询操作。
②在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(5)的查询。
③在数据库TSGL的图书、读者和借阅3个表中,用SELECT语句完成以下查询:
查询借书者的借书证号、姓名、单位、所借书号、书名和借阅日期。
(6)在数据库JWGL的学生表Student、课程表Course、学生选课表SC中完成第3章例题3.40-例题3.47中的查询操作。
(9)在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(6)-(9)的查询。
(10)在数据库SPJ的供应商表S、零件表P、工程项目表J、供应情况表SPJ中,用SELECT查询语句完成第二章习题10中(4)~(5)的查询。
(11)在数据库TSGL的图书、读者和借阅3个表中,用SELECT语句完成以下查询。
①查询人民邮电出版社出版的各类图书的平均价格。
SELECT类别,AVG平均价
FROM图书
WHERE出版社='
人民邮电出版社'
GROUPBY类别
ORDERBY类别ASC
②使用嵌套查询完成查询了借了书的读者信息。
③统计目前借了书的读者人数。
④统计过期未还书的图书册数。
六、实验结果
1.插入数据
修改数据
执行UPDATEStudentSETAge=Age+1语句后可以看到所有学生的年龄增加了1岁。
执行
UPDATEStudent
SETAge=Age+1
UPDATESC
SETGrade=0
WHERESnoIn(SELECTSno
FROMStudent
WHERESdept='
CS'
);
语句后可以看到所有计算机系学生的成绩变成了0。
执行下面语句后会报错
SETAge='
twenty'
删除数据
执行DELETEFROMSCWHERECno='
2'
语句后可看到所有选秀了2号课程学生选课记录被删除。
查询全体学生的学号姓名和所在系上的值组成的新元祖的集合
SELECTSno,Sname,Sdept
FromStudent
查询全体学生的所有信息SELECT*FromStudent
查询全体学生的姓名和出生年份
SELECTSname,2016-Age出生年份
查询考试成绩低于80的学生的学号和成绩
SELECTSno,Grade
FromSC
WHEREGrade<
=80;
查询每个学生及其选修课的情况
SELECTStudent.*,SC.*
FROMStudent,SC
WHEREStudent.Sno=SC.Sno;
查询选修了Java且成绩在90分以上的学生的学号和姓名
SELECTStudent.Sno,Sname
FROMStudent,Course,SC
WHEREStudent.Sno=SC.SnoANDSC.Cno=Course.Cno
ANDCname='
Java'
ANDGrade>
90
求没有使用天津供应商生产的红色的零件的工程号Jno
SELECTJno
FROMJ
WHEREJnoNOTIN(SELECTJno
FROMSPJ,S,P
WHERESPJ.Sno=S.Sno
ANDSPJ.Pno=P.Pno
ANDS.City='
天津'
ANDP.Color='
红'
求至少使用了供应商S1所供应的全部零件的工程号Jno
FROMSPJX
WHERENOTEXISTS(
SELECT*
FROMSPJY
WHEREY.Sno='
S1'
ANDNOTEXISTS(
SELECT*
FROMSPJZ
WHEREZ.Pno=Y.Pno
ANDZ.Jno=X.Jno)
由输出结果知没有这样的工程存在。
例3.54
例3.55
例3.56
例3.57
例3.58
例3.59
例3.60
例3.61
七、评价分析及心得体会
通过这次实验熟悉了T-SQL语句对数据进行插入、修改删除等操作的方法,体会了数据完整性约束的作用,加深了对数据完整性约束的理解。
熟练掌握了INSERT、UPDATE、DELETE语句的语法和使用方法。
掌握了SELECT语句的使用方法,可以进行简单查询和连接查询以及复杂查询中的嵌套查询和统计查询。
理解了索引和视图的概念,掌握了索引的使用方法和视图的定义和使用方法。