文档库 最新最全的文档下载
当前位置:文档库 › 实验五 在SQL Server中进行数据查询

实验五 在SQL Server中进行数据查询

实验五 在SQL Server中进行数据查询
实验五 在SQL Server中进行数据查询

实验五在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语句对表进行插入、修改和删除等数据操作的基本技巧和注意事项。同时也发现自己在数据库操作过程中的一些不足,细节问题值得注意,以后会更加注重

自身实践水平的提高。

相关文档