数据库数据查询之单表查询

【实验内容】

1.指定列或者全部列查询
2.按条件查询及模糊查询
3.对查询结果排序
4.使用聚焦函数查询
5.分组统计查询

【实验步骤】

1.指定列或者全部列查询
(1)查询S表中全体学生的详细记录

USE xhjk
GO
SELECT *FROM S
GO
image.png

(2)查询所有学生的姓名及其出生年份

USE xhjk
GO
SELECT SN,YEAR(GETDATE())-AGE AS 出生年份 FROM S
GO

image.png

2.按条件查询及模糊查询
(1)查询考试不及格的学生学号

USE xhjk
GO
SELECT DISTINCT SNO FROM SC
WHERE SCORE<60
GO
image.png

(2)查询年龄在20~23岁的学生姓名、系号、年龄

USE xhjk
GO
SELECT SN,DEPT,AGE FROM S
WHERE AGE BETWEEN 19 AND 20
GO
image.png

(3)查询姓李的学生的姓名、学号和性别

USE xhjk
GO
SELECT SN,SNO,SEX FROM S
WHERE SN LIKE '李%'
GO
image.png

(4)查询名字中第二个字为“三”的男学生的姓名和系号

USE xhjk
GO
SELECT SN AS 姓名,DEPT AS 系号 FROM S
WHERE SN LIKE '_三%'AND SEX='男'
GO

image.png

3.对查询结果排序
(1)查询信息系、计算机系学生的姓名、系号,结果按系名升序排序,姓名按降序排序

USE xhjk
GO
SELECT SN AS 姓名,DEPT AS 系号 FROM S
WHERE DEPT IN('信息','计算机')
ORDER BY DEPT,SN DESC
GO
image.png

(2)查询所有有课程号C2的学生的学号、课程号和成绩,并按成绩降序排序

USE xhjk
GO
SELECT SNO AS 姓名,CNO AS 课号,SCORE AS 成绩 FROM SC
WHERE CNO='C2' AND SCORE IS NOT NULL
ORDER BY SCORE DESC
GO

image.png

4.使用聚焦函数查询
(1)查询计算机系学生总人数

USE xhjk
GO
SELECT COUNT(*) AS 计算机系人数 FROM S
WHERE DEPT='计算机'
GO
image.png

(2)查询选高数课程的学生人数、平均分、最高分数

USE xhjk
GO
SELECT COUNT(*) AS 人数,AVG(SCORE)AS 平均分数,MAX(SCORE)AS 最高分数 FROM C,SC
WHERE CN='高数'AND C.CNO=SC.CNO
GO

image.png

5.分组统计查询
(1)查询各个课程号及其相应的选课人数

USE xhjk
GO
SELECT CNO AS 课程号,COUNT(SNO) AS 人数 FROM SC
GROUP BY CNO
GO
image.png

(2)查询选修两门以上课程的学生姓名和平均成绩

USE xhjk
GO
SELECT SN AS 姓名,AVG(SCORE) AS 平均成绩 FROM SC,S
WHERE S.SNO=SC.SNO
GROUP BY S.SN HAVING COUNT( * )>2
GO
image.png

你可能感兴趣的:(数据库数据查询之单表查询)