实验四在SQLServer中进行数据查询.doc
文本预览下载声明
实验四 在SQL Server中进行数据查询
一、实验目的
1.掌握SELECT语句的基本语法。
2.掌握子查询的应用。
3.掌握连接查询的应用。
4.掌握SELECT语句的统计函数的作用和使用方法。
5.掌握SELECT语句的GROUPBY和ORDERBY子句的作用和使用方法。
二、实验要求
1.了解SELECT语句的基本语法格式。
2.了解SELECT语句的执行方法。
3.了解子查询的表示方法。
4.了解SELECT语句的统计函数的作用。
5.了解SELECT语句的GROUP BY和ORDER BY子句的作用。
三、实验内容:
使用的数据库实验二、实验三、实验四录入数据的学生情况表 Student 课程名称表 Course教师授课表Teach 成绩表Score等四张基本表。
(一)基本查询:
1.(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
2.(不选择重复行) 求选修了课程的学生学号。
3.(使用表达式) 求全体学生的学号、姓名和出生年份。
(二)条件查询:
4.(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
5.(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
6.(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
7.(匹配查询) 求选修课程001或002或003,成绩在70至85之间,学号为04xxx的学生的学号、课程号和成绩。
8.(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。
(三)聚合函数查询:
9.(组函数) 求学生总人数。
10.(组函数) 求选修了课程的学生人数。
11.(组函数) 求选修了课程001的最高、最低与平均成绩。
12.(分组查询) 求各系、各班级的人数和平均年龄。
四、实验编程结果或过程(用截图方式或SQL语句表示,语句用蓝色字体标出)
(一)基本查询:
1.(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
Select SNO,SNAME,SSEX,SAGE
From student
2.(不选择重复行) 求选修了课程的学生学号。
SELECT DISTINCT sno
FROM score;
3.(使用表达式) 求全体学生的学号、姓名和出生年份。
SELECT sno,sname,2012-sage
FROM student;
(二)条件查询:
4.(比较大小条件) 求年龄大于18岁的学生的姓名和年龄。
SELECT sname,sdept,sage
FROM student
WHERE sage18 AND sdept=CS
UNION
SELECT sname,sdept,sage
FROM student
WHERE sage18 AND sdept=IS;
5.(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
SELECT sno,sage
FROM student
WHERE sage BETWEEN 20 AND 22;
6.(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
SELECT *
FROM student
WHERE sdept=MA
UNION
SELECT *
FROM student
WHERE sdept=CS
ORDER BY sdept;
7.(匹配查询) 求选修课程001或002或003,成绩在80至85之间,学号为04xxx的学生的学号、课程号和成绩。
SELECT sno,cno,score
FROM score
WHERE score BETWEEN 70 AND 85 AND sno LIKE04___ AND cno=001 OR cno=002 OR cno=003 ;
8.(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。
SELECT SNO,CNO
FROM Score
WHERE SCORE IS NULL
(三)聚合函数查询:
9.(组函数) 求学生总人数。
SELECT COUNT(SNO) AS 学生总人数
FROM Student
10:(组函数) 求选修了课程的学生人数。
SELECT COUNT(DISTINCT SNO) AS 选修人数
FROM Score
11:(组函数) 求选修了课程001的最高、最低与平均成绩。
SELECT MAX(SCORE) AS MAX,MIN(SCORE)AS MIN, AVG(SCORE)AS AVG
FROM Score
WHERE CNO=001
12:(分组查询) 求各系、各班级的人数和平均年龄。
SELECT SDEPT ,SCLASS,COUNT
显示全部