【数据库复习】第三章关系数据库标准语言SQL 集合查询

集合操作的种类

并操作UNION

交操作INTERSECT

差操作EXCEPT

【数据库复习】第三章关系数据库标准语言SQL 集合查询_第1张图片

 

连接查询:同时涉及多个表的查询

连接条件或连接谓词:用来连接两个表的条件一般格式:

[<表名1>.]<列名1>  <比较运算符>  [<表名2>.]<列名2>

[<表名1>.]<列名1> BETWEEN [<表名2>.]<列名2> AND [<表名2>.]<列名3>

连接字段:连接谓词中的列名称

连接条件中的各连接字段类型必须是可比的,但名字不必是相同的

等值连接:连接运算符为=

自身连接:一个表与其自己进行连接

【数据库复习】第三章关系数据库标准语言SQL 集合查询_第2张图片

 

外连接与普通连接的区别

普通连接操作只输出满足连接条件的元组

外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出

嵌套查询概述

一个SELECT-FROM-WHERE语句称为一个查询块

将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询    

【数据库复习】第三章关系数据库标准语言SQL 集合查询_第3张图片

 

带有IN谓词的子查询

【数据库复习】第三章关系数据库标准语言SQL 集合查询_第4张图片

 

带有比较运算符的子查询

当能确切知道内层查询返回单值时,可用比较运算符(>,<,=,>=,<=,!=或< >)。

与ANY或ALL谓词配合使用

【数据库复习】第三章关系数据库标准语言SQL 集合查询_第5张图片

 

【数据库复习】第三章关系数据库标准语言SQL 集合查询_第6张图片

 

带有ANY或ALL谓词的子查询

谓词语义

ANY:任意一个值

ALL:所有值

需要配合使用比较运算符

> ANY 大于子查询结果中的某个值       

> ALL 大于子查询结果中的所有值

< ANY 小于子查询结果中的某个值    

< ALL 小于子查询结果中的所有值

>= ANY 大于等于子查询结果中的某个值    

>= ALL 大于等于子查询结果中的所有值

<= ANY 小于等于子查询结果中的某个值    

<= ALL 小于等于子查询结果中的所有值

= ANY 等于子查询结果中的某个值        

=ALL 等于子查询结果中的所有值(通常没有实际意义)

!=(或<>)ANY 不等于子查询结果中的某个值

!=(或<>)ALL 不等于子查询结果中的任何一个值

带有EXISTS谓词的子查询

1. EXISTS谓词

存在量词$

带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。

若内层查询结果非空,则外层的WHERE子句返回真值

若内层查询结果为空,则外层的WHERE子句返回假值

由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义

2. NOT EXISTS谓词

若内层查询结果非空,则外层的WHERE子句返回假值

若内层查询结果为空,则外层的WHERE子句返回真值

【数据库复习】第三章关系数据库标准语言SQL 集合查询_第7张图片

 

不同形式的查询间的替换

一些带EXISTS或NOT EXISTS谓词的子查询不能被其他形式的子查询等价替换

所有带IN谓词、比较运算符、ANY和ALL谓词的子查询都能用带EXISTS谓词的子查询等价替换

你可能感兴趣的:(网安专业课复习材料大二下,数据库,sql,java)