第2次报告_数据库上的基本操作实验课案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据库第二次实验报告”。
西 安 邮 电 大 学
实
验:课程 班
级 学号 学生姓名 任课教师(计算机学院)
课内实验报告
数据库上的基本操作实验
数据库原理及应用A
计科1405
04141152 高宏伟
孟彩霞
:::::
一、实验目的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 name = 'SC_ind')DROP INDEX SC.SC_ind;GO USE JWGL CREATE INDEX SC_ind ON SC(Cno,Grade DESC);
10、视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
三、实验环境
MS SQL Server 2016
四、实验前准备
1、明确能够创建数据库的用户必须是系统管理员,或是被授权使用 CREATE DATABASE语句的用户。
2、创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数
据库大小(最初大小、最大大小、是否允许增长及增长的方式)和存储数据的文件。
3、确定数据库包含哪些表以及包含的各表的结构,还要了解 SQL Server 的常用数据类型,以创建数据库的表。
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 出版社 ='人民邮电出版社' GROUP BY 类别
ORDER BY 类别 ASC
② 使用嵌套查询完成查询了借了书的读者信息。
③ 统计目前借了书的读者人数。
④ 统计过期未还书的图书册数。
六、实验结果
1.插入数据
修改数据
执行UPDATE Student SET Age=Age+1语句后可以看到所有学生的年龄增加了1岁。
执行
UPDATE Student SET Age=Age+1 UPDATE SC SET Grade=0 WHERE Sno In(SELECT Sno FROM Student WHERE Sdept='CS');
语句后可以看到所有计算机系学生的成绩变成了0。
执行下面语句后会报错
UPDATE Student SET
Age='twenty'
删除数据
执行DELETE FROM SC WHERE Cno='2'语句后可看到所有选秀了2号课程学生选课记录被删除。
查询全体学生的学号姓名和所在系上的值组成的新元祖的集合SELECT Sno,Sname,Sdept From Student
查询全体学生的所有信息 SELECT *From Student
查询全体学生的姓名和出生年份
SELECT Sname,2016-Age 出生年份 From Student
查询考试成绩低于80的学生的学号和成绩
SELECT Sno,Grade From SC WHERE Grade
查询每个学生及其选修课的情况
SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno=SC.Sno;
查询选修了Java且成绩在90分以上的学生的学号和姓名
SELECT Student.Sno,Sname FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Cname='Java'AND Grade>90
求没有使用天津供应商生产的红色的零件的工程号Jno SELECT Jno FROM J WHERE Jno NOT IN(SELECT Jno
FROM SPJ,S,P WHERE SPJ.Sno=S.Sno
AND SPJ.Pno=P.Pno AND S.City='天津'
AND P.Color='红');
求至少使用了供应商S1所供应的全部零件的工程号Jno SELECT Jno FROM SPJ X WHERE NOT EXISTS(SELECT * FROM SPJ Y WHERE Y.Sno='S1' AND NOT EXISTS(SELECT * FROM SPJ Z WHERE Z.Pno=Y.Pno);AND Z.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语句的使用方法,可以进行简单查询和连接查询以及复杂查询中的嵌套查询和统计查询。理解了索引和视图的概念,掌握了索引的使用方法和视图的定义和使用方法。