实验五在SQL Server中进行数据查询
一、实验目的及要求
1.掌握SELECT语句的基本语法。
2.掌握子查询的应用。
3.掌握连接查询的应用。
4.掌握SELECT语句的统计函数的作用和使用方法。
5.掌握SELECT语句的GROUPBY和ORDERBY子句的作用和使用方法。
二、实验要求
在查询分析器中写出相关的SQL语句并进行执行,检查语句是否正确,结果是否同实际相符。最后写出实验报告。
三、实验内容
使用的数据库实验二、实验三、实验四录入数据的学生情况表Student 课程名称表Course教师授课表Teach 成绩表Score等四张基本表。进行如下实验操作:
●连接查询和子查询:
13:(自然连接查询) 求学生号、姓名以及其选修课程的课程号和成绩,但查询结果中只能有一个SNO字段。
14:(自身连接查询) 求年龄大于’李丽’ 的所有学生的姓名、系和年龄。
15:(子查询) 求选修了课程名为’数据结构’ 的学生的学号和姓名。
16:(子查询some或者any) 求比数学系中某一学生年龄大的学生的姓名和系。
17:(子查询ALL) 求比数学系中全体学生年龄大的学生的姓名和系。
18:(多个子查询) 求与‘李丽’ 同系,且年龄大于‘黎明’中最大年龄的学生的信息。
19:(子查询中使用表连接) 求数学系中年龄相同的学生的姓名和年龄。
20:(嵌套与分组查询) 检索选修某课程的学生人数多于3人的教师姓名。
21:(集合查询) 列出所有教师和同学的姓名和性别。
四、实验编程结果或过程(用截图方式或SQL语句表示,语句用蓝色字体标出):
三、实验编程结果或过程:
13:(自然连接查询) 求学生号、姓名以及其选修课程的课程号和成绩,但查询结果中只能有一个SNO字段。
SELECT DISTINCT student.sname,student.sno ,https://www.wendangku.net/doc/d815411736.html,o,score.score
FROM student,course,score
WHERE student.sno= score.sno AND https://www.wendangku.net/doc/d815411736.html,o= https://www.wendangku.net/doc/d815411736.html,o;
14:(自身连接查询) 求年龄大于’李丽’ 的所有学生的姓名、系和年龄。SELECT DISTINCT A.sname,A.sdept,A. sage
FROM student A,student B
WHERE B.sname='李丽' AND A.sage >B.sage;
15:(子查询) 求选修了课程名为’数据结构’ 的学生的学号和姓名。SELECT sno,sname
FROM student
WHERE sno IN (SELECT sno FROM score
WHERE cno IN
(SELECT cno FROM course
WHERE cname='数据结构'))
16:(子查询some或者any) 求比数学系中某一学生年龄大的学生的姓名和系。SELECT sname,sdept
FROM student
WHERE sage >ANY
(SELECT sage
FROM student
WHERE sdept='MA' )
17:(子查询ALL) 求比数学系中全体学生年龄大的学生的姓名和系。SELECT sname,sdept
FROM student
WHERE sage >ALL
(SELECT sage
FROM student
WHERE sdept='MA' )
18:(多个子查询) 求与‘李丽’ 同系,且年龄大于‘黎明’中最大年龄的学生的信息。SELECT *
FROM student
WHERE sdept=(SELECT sdept
FROM student
WHERE sname='李丽' )
AND sage>
(SELECT MAX (sage)
FROM student
WHERE sname='黎明' )
19:(子查询中使用表连接) 求数学系中年龄相同的学生的姓名和年龄。SELECT A.sname,A.sage
FROM student A, student B
WHERE A.sdept='MA'AND B.sdept='MA'
AND A.sno<>B.sno
AND A.sage=B.sage
20:(嵌套与分组查询) 检索选修某课程的学生人数多于3人的教师姓名。SELECT teacher.tname ,COUNT(score.sno)AS 学生人数
FROM teacher, score
WHERE https://www.wendangku.net/doc/d815411736.html,o=https://www.wendangku.net/doc/d815411736.html,o
GROUP BY tname
HA VING COUNT(score.sno)>3
21:(集合查询) 列出所有教师和同学的姓名和性别。SELECT tname,tsex
FROM teacher
UNION
SELECT sname,ssex
FROM student
五、实验总结:
(1)实验中的存在问题和提高
在进行向表中添加数据操作的SQL语句输入中,属性之间总是忘记添加逗号,以致不能运行出正确的结果。
细节问题值得加强。
(2)收获与体会
通过本次试验,我初步掌握了在企业管理器中对表进行插入、修改和删除等数据操作。进一步熟悉了使用T-SQL语句对表进行插入、修改和删除等数据操作的基本技巧和注意事项。同时也发现自己在数据库操作过程中的一些不足,细节问题值得注意,以后会更加注重
自身实践水平的提高。