Files
2024-10-29 23:11:13 +08:00

90 lines
2.9 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 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 ;