美文网首页
数据库数据查询之嵌套查询与集合查询

数据库数据查询之嵌套查询与集合查询

作者: ERROR505 | 来源:发表于2019-11-25 17:20 被阅读0次

一、嵌套查询

【实验内容】

1.返回一个值的子查询
2.返回一组值的子查询

【实验步骤】

1.返回一个值的子查询
(1)查询与刘伟职称相同的教师号、姓名和职称

USE xhjk
GO
SELECT TNO,TN,PROF FROM T
WHERE PROF=(SELECT PROF FROM T WHERE TN='刘伟')
GO
image.png
2.返回一组值的子查询
(1)使用ANY谓词查询讲授课程号为C1的教师姓名
USE xhjk
GO
SELECT TN FROM T
WHERE TNO=ANY(SELECT TNO FROM TC WHERE CNO='C1')
GO
image.png

(2)使用IN谓词查询讲授课程号为C1的教师姓名

USE xhjk
GO
SELECT TN FROM T
WHERE TNO IN(SELECT TNO FROM TC WHERE CNO='C1')
GO
image.png

(3)使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师姓名、工资和所在系

USE xhjk
GO
SELECT TN,SAL,DEPT FROM T
WHERE SAL>ALL(SELECT SAL FROM T WHERE DEPT='计算机')AND (DEPT<>'计算机')
GO
image.png

(4)使用EXISTS谓词查询没有讲授C1课程的教师姓名、所在系

USE xhjk
GO
SELECT TN,DEPT FROM T
WHERE NOT EXISTS(SELECT * FROM TC WHERE TNO=T.TNO AND CNO='C5')
GO
image.png

(5)使用NOT EXISTS谓词查询至少选修了学生S2选修的全部课程的学生学号

USE xhjk
GO
SELECT DISTINCT SNO FROM SC SCX
WHERE NOT EXISTS(SELECT * FROM SC SCY 
                    WHERE SCY.SNO='S2'AND NOT EXISTS
                    (SELECT *FROM SC SCZ 
                        WHERE SCZ.SNO=SCX.SNO AND SCZ.CNO=SCY.CNO))
GO
image.png

二、集合查询

【实验内容】

查询年龄不大于19岁或者是计算机系的学生

【实验步骤】

(1)查询年龄不大于19岁或者是计算机系的学生

USE xhjk
GO
SELECT * FROM S
WHERE DEPT='计算机'
UNION
SELECT * FROM S WHERE AGE<=19
GO
image.png

相关文章

网友评论

      本文标题:数据库数据查询之嵌套查询与集合查询

      本文链接:https://www.haomeiwen.com/subject/pgsjwctx.html