数据库系统原理与应用
实验报告书
实验题目:数据库上的基本操作实验
学院:计算机学院 班级:网络 0804 学号:姓名: 任课老师:孟彩霞 时间:2011-04
实验二:数据库上的基本操作实验
一、实验目的
掌握使用T_SQL语句和企业管理器对数据表进行插入、修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
数据查询是数据库中最基本的操作,也是使用最频繁的操作,因此必须掌握SQL的查询语句(SELECT语句)的使用方法。
进一步掌握SELECT语句的使用方法,通过实验能够熟练地使用SELECT语句。 通过本实验,要熟练掌握INSERT、UPDATE、DELETE语句的语法和使用方法。掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。掌握嵌套查询和统计查询的操作方法。 二、实验内容
(1) 分别使用T-SQL语句和企业管理器,向数据库JWGL、数据库Market中各张表
输入一些记录。
(2) 使用T-SQL语句进行插入、修改和删除记录的操作。
① 插入数据时既要插入一些不违背数据完整性约束的记录,也要插入一些违背数
据完整性约束的记录,观察插入后的结果,并利用相关知识解释此现象。在涉及参照完整性约束的参照表中插入数据时,理解系统是如何保证完整性的。 ② 修改数据时除使用正确数据外,也可以对修改后的新值使用一些违背数据完整
性约束的数据,观察系统执行后的结果。另外进一步观察在涉及参照完整性约束的参照表和被参照表中修改数据时系统的执行情况,如果违背参照完整性那么观察结果。
③ 删除记录时一般不会出现问题,但要是在有参照完整性约束的被参照表中删除
数据时也存在破坏完整性的情况。观察删除记录系统的执行结果。
(3) 简单查询操作。该试验包括投影、选择表达、数据排序等。
① 在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第
3章例题3.10-例题3.28的查询操作。
② 在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第
3章习题6中(1)-(4)的查询。
(4) 连接查询操作。该实验包括等值连接、自然连接、一般连接(内连接)、外连接、
左外连接、右外连接和自然连接等。 ① 在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第
3章例题3.35-例题3.39中的查询操作。
② 在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第
3章习题6中(5)的查询。
(5) 在数据库JWGL的学生表Student、课程表Course、学生选课表SC中完成第3
章例题3.40-例题3.47中的查询操作。
(6) 在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3
章习题6中(6)-(9)的查询。
三、实验环境
装有SQL Server 2000的实验机 四、实验前的准备
1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE
DATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最
初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。
3. 确定数据库包含哪些表以及包含的各表的结构,还要了解SQL Server 的常用数据
类型,以创建数据库的表。
4.了解常用的创建数据库和表的方法。 五、实验步骤
本实验中所用到的学生-课程数据库表如下:
Student 学号Sno 姓名Sname 950001 950002 950003 950004
马征 杨青青 王义敏 赵之琛 性别Ssex 男 女 女 男 年龄Sage 20 19 18 19 所在系Sdept CS CS MA IS Course 课程号Cno 1 2 3 4 5 6 7 SC 课程名Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理 C语言 先修课Cpno 5 1 6 7 6 学分Ccredit 4 2 4 3 6 2 4 成绩Grade 90 88 79 93 80 学号Sno 950001 950001 950001 950002 950002 课程号Cno 1 2 3 2 3 1. 查询全体学生的学号,姓名和所在系的有关信息 SELECT Sno,Sname,Sdept From Student;
2. 查询全体学生的所有信息。 SELECT *
FROM Student;
3. 查询全体学生的姓名及出生年份。 SELECT Sname,2008-Sage FROM Student;
4. 查询学生的学号,姓名和所在系,要求用小写字母表示所在的系。 SELECT Sno,Sname,LOWER(Sdept) FROM Student;
5. 在SC表中查询所有选了课程的学生的学号,并消除重复的学号。 SELECT DISTINCT Sno FROM SC;
6. 查询计算机系的所有学生的学号和姓名。 SELECT Sno,Sname FROM Student
WHERE Sdept=‘CS’;
7 查询考试成绩不及格的学生的学号。 SELECT Sno FROM SC
WHERE Grade<60;
8. 查询年龄在20~30岁之间的学生的姓名,所在系和年龄。 SELECT Sname,Sdept,Sage FROM Student
WHERE Sage BETWEEN 20 AND 23;
9. 查询计算机系、数学系和信息系的学生姓名和性别。 SELECT Sname,Sage FROM Student
WHERE Sdept IN(‘CS’,’MA’,’IS’); 10. 查询信息系所有学生的情况。 SELECT * FROM Student
WHERE Sdept LIKE ‘IS’
这里要注意的是如果后面的<匹配串>中不含有通配符,则可以用等号(=)代替LIKE。
11. 查询DB_Design课程的课程号及学分。 SELECT Cno,Ccredit FROM Course
WHERE Cname LIKE ‘DB\\_Design’ ESCAPE ‘\\’;
12. 查询没有考试成绩的学生的学号及相应的课程号。 SELECT Sno,Cno FROM SC
WHERE Grade IS NULL;
13. 查询计算机系年龄在20岁以下的学生的学号、姓名和性别。 SELECT Sno,Sname,Ssex FROM Student
WHERE Sdept=‘CS’AND Sage<20;
14. 查询选修了1号课程的学生的学号及成绩,查询结果按成绩的降序排序。 SELECT Sno,Grade FROM SC
WHERE Cno=’1’
ORDER BY Grade DESC
15. 查询全体学生情况,查询结果按所在系的升序排序,同一系中的学生按年
龄降序排序。 SELECT * FROM Student
ORDER BY Sdept,Sage DESC; 16. 查询每个学生及其选修课的情况 SELECT Student.*, SC.* FROM Student, SC
WHERE Student.Sno=SC.Sno; 17. 对16用自然连接完成。
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student,SC
WHERE Student.Sno=SC.Sno; 18. 查询每门课的间接先修课 SELECT First.Cno,Second..Cpno FROM Course First,Course Second WHERE First.Cno=Second.Cno;
19. 将17改为左外连接。
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno=SC.Sno;
20. 查询选修了数据库原理课程且成绩在90分以上的学生的学号和姓名。 SELECT Student.Sno,Sname FROM Student,Course,SC
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Cname=’数据库原理’ AND Grade>90; 21. 查询选修了1号课程的学生的姓名。 SELECT Sname FROM Student WHERE Sno IN
(SELECT Sno
FROM SC
WHERE Cno=‘1’);
22. 查询和张明在一个系学习的学生的学号和姓名。 SELECT Sno,Sname FROM Student WHERE Sdept= (SELECT Sdept
FROM Student
WHERE Sname=‘张明’);
23. 查询其他系中比计算机系某一学生小的学生姓名和年龄。 SELECT Sname,Sage FROM Student
WHERE Sdept <> ‘CS’ AND Sage < ANY (SELECT Sage
FROM Student
WHERE Sdept=’CS’);
24. 查询每个学生超过他所选课程平均成绩的课程号。 SELECT Sno,Cno FROM SC x
WHERE Grade>= (SELECT AVG(Grade)
FROM SC y
WHERE y.Cno=x.Cno);
六、实验结果
在本次实验当中,首先在上次实验中创建的数据库JWGL的三个表Student、
Course、SC中添加所需的数据,然后使用INSERT、UPDATE、DELETE语句对其进行了插入、修改和删除的操作,最后依据实验要求使用SELECT语句分别进行了简单查询、连接查询和复杂查询的操作
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务