4.5 子查询 课件(共16张PPT)《 数据库技术及应用(SQL Server 2019)》同步教学(机械工业出版社)

资源下载
  1. 二一教育资源

4.5 子查询 课件(共16张PPT)《 数据库技术及应用(SQL Server 2019)》同步教学(机械工业出版社)

资源简介

(共16张PPT)
4.5 子查询
202X
提纲
提纲
什么是子查询
IN子查询(NOT IN 子查询)
比较子查询
EXISTS子查询(NOT EXISTS 子查询)
任务描述
1.IN子查询
查询学号为“18011101”的学生所选修的课程号和课程名。
2.比较子查询
1)查询选修表中成绩最高的学生的学号。(ALL关键字)
2)查询选修表中选修了课程编号为“0102”,但成绩不是最低的学生的学号。(ANY关键字)
3.EXISTS子查询
查询从来没有被选修过的课程号及课程名。
SELECT * FROM Study
WHERE Score>( SELECT Score FROM Study where SID =‘18011101’ and CID=‘0102’)
子查询
子查询:在查询条件中,可以使用另一个查询的结果作为条件的一部分,使用括号括起来作为查询条件一部分的查询称为子查询,外面的查询称为父查询。
子查询在WHERE语句中的一般用法:
SELECT … FROM 表1 WHERE 字段1 运算符 (子查询)
子查询可以和UPDATE、INSERT、DELETE一起使用,语法类似于SELECT语句
将子查询和比较运算符联合使用时,必须保证子查询返回的值不能多于一个
任务准备
IN子查询用于判断一个给定值是否在子查询的结果集中,格式为:
Expression [ NOT ] IN ( subquery )
任务准备
SELECT * FROM Study
WHERE Score>( SELECT Score FROM Study where SID =‘18011101’ and CID=‘0102’)
比较子查询: 父查询表达式的值与子查询的结果进行比较运算。格式一般为:
… 比较运算符 [ ALL | SOME | ANY ] ( 子查询 )
比较子查询
任务准备
数据库的存在检测(Exists子查询应用)
IF EXISTS(SELECT * FROM sysDatabases
WHERE name=’DB_CRM1’)
DROP DATABASE DB_CRM1
CREATE DATABASE DB_CRM1
…….—建库代码略
EXISTS子查询。带EXISTS的子查询不返回任何记录,只产生逻辑值TRUE或者FALSE,它的作用是测试子查询返回的行是否存在。
任务准备
EXISTS (子查询)
EXISTS子查询的语法:
如果子查询的结果非空,即记录条数至少有1条,则EXISTS (子查询)将返回真(true),否则返回假(false)
EXISTS也可以作为WHERE 语句的子查询,但一般都能用IN子查询替换
SELECT … FROM 表名
WHERE EXISTS (子查询)
任务准备
1. 查询学号为“18011101”的学生所选修的课程号和课程名
任务演示
SELECT CID,CName
FROM Course WHERE CID IN(
SELECT CID FROM Study WHERE SID='18011101')
IN:用于将原表中的列与返回的子查询的结果集进行比较。
1. 查询选修表中成绩最高的学生的学号(ALL 关键字)
任务演示
SELECT SID
FROM Study WHERE Score>=ALL (SELECT Score FROM Study)
提示:相比较的数据类型必须是一样的。
1. 查询选修表中成绩最高的学生的学号(ANY 关键字)
任务演示
SELECT SID
FROM Study WHERE CID='0102' AND Score>ANY (SELECT Score FROM Study)
思考:将ANY换成SOME结果会怎样?
1. 查询从来没有被选修过的课程号及课程名(EXISTS子查询)
任务演示
SELECT CID,CName
FROM Course
WHERE NOT EXISTS
(SELECT * FROM Study WHERE Course.CID=Study.CID)
提示:EXISTS只返回TRUE或者FALSE。
代码注释:
NOT:表示取反。
提示:EXISTS只返回TRUE或者FALSE。
代码注释:
NOT:表示取反。
1.关系运算与查询语句
关系运算:选择、投影及连接运算。
SELECT语句:SELECT-FROM-WHERE结构。
模块小结
模块小结
2.数据库查询
简单查询:对数据投影、选择、排序等进行单表查询。
01
统计查询:聚合函数使用、分组统计等查询。
02
连接查询:谓词连接、内连接、外连接、自连接等查询。
03
子查询:在查询条件中,可以使用另一个查询的结果作为条件的一部分。
04
THANKS
感谢观看

展开更多......

收起↑

资源预览