实验八

This commit is contained in:
2024-10-29 23:11:13 +08:00
parent bd82e9893a
commit 2cc7e75fc5
2 changed files with 90 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
-- 1、嵌套查询(注意使用ANY、ALL和EXISTS
-- (1)使用IN运算的简单嵌套查询
USE ;
SELECT * FROM WHERE IN ('T001','T002');
-- (2)使用NOT IN运算的简单嵌套查询
SELECT * FROM WHERE NOT IN ('T001','T002');
-- (3)使用关系运算(如等于)的简单嵌套查询
SELECT * FROM WHERE = 64;
-- (4)使用ANY或SOME的简单嵌套查询
SELECT * FROM WHERE = ANY(
SELECT MAX() FROM
);
-- 5)使用ALL的简单嵌套查询
SELECT * FROM WHERE > ALL(
SELECT AVG() FROM
);
-- (6)使用连接查询院系名称含“计算机”、职称为教授、所负责教程为必修课的教师姓名、职称、课程名称和课程学时等信息
SELECT .,.,.,.
FROM
JOIN ON .=.
JOIN ON .=.
WHERE . LIKE '%计算机%'
AND .='教授'
AND .='必修课';
-- 7)使用EXISTS的嵌套查询
SELECT * FROM WHERE EXISTS(
SELECT FROM WHERE > 90
);
-- 8)使用NOT EXISTS的嵌套查询
SELECT * FROM WHERE NOT EXISTS(
SELECT FROM WHERE < 60
);
-- 2、汇总和分组查询
-- (1)使用COUNT统计数目的查询
SELECT COUNT(*) FROM ;
-- 2)使用SUM计算合计的查询
SELECT SUM() FROM ;
-- (3)一次完成求和、计数、计算平均值的查询
SELECT SUM(),COUNT(*),AVG() FROM ;
-- (4)查询所有课程的成绩都大于60分的学生的平均分最高的学生信息
SELECT TOP 1 .*
FROM
JOIN (
SELECT , AVG() AS
FROM
GROUP BY
HAVING MIN() > 60
) AS ON . = .
ORDER BY . DESC;
-- (5)查询数据库课程的成绩大于70分的、所有课程平均分最高的学生信息
SELECT TOP 1 .*
FROM
JOIN (
SELECT , AVG() AS
FROM
WHERE = (
SELECT
FROM
WHERE LIKE '%数据库%'
) AND > 70
GROUP BY
) AS ON . = .
ORDER BY . DESC;
-- 6)查询每个学生的平均成绩
SELECT , AVG() AS
FROM
GROUP BY ;
-- (7)查询每个学生的所有成绩的最高成绩、最低成绩、平均成绩和所考课程的门数
SELECT ,
MAX() AS ,
MIN() AS ,
AVG() AS ,
COUNT() AS
FROM
GROUP BY ;