2数据查询_连接查询与子查询
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26
作业与练习
练习2: 写出一个查询,它确定所有来自数据库中经 理ID是12的所有员工的Employee ID和 Department ID
27
示例:
查询输出编号,投票结果,投票数量,投票人IP,投 票日期
(使用”投票”表,voteMaster,voteInfo)
7
连接查询-外连接
内连接仅返回满足条件的行,但外连接不 光返回满足条件的行,还返回左表、右表 和两个表的所有列 左外连接:返回左表 右外连接:返回右表 全外连接:返回两个表的所有数据
24
总结
自连接将一个的一行与同一表中的其他行相 关。 在IN子查询中的从句中返回0或更多值。 在EXISTS子查询的从句中返回TRUE 或 FALSE值。 ALL 和 ANY关键字被用于在子查询中修改已 有的比较操作符。 包含一个或更多查询的子查询被称为嵌入子 查询。
25
作业与练习
练习1: 查询输出公司雇员号,雇员职位,雇员小时 薪水,发放周期 (使用人力资源表组)
23
总结
连接和子查询被用于从多表中抽取数据。 内连接在公共列上使用比较操作符从多表中组合记录。 左连接返回来自左表的所有行和来自右表的匹配行。 右外连接返回来自右表的所有行和来自左表的匹配行。 完全外连接返回所有应用连接的两个表的匹配和不匹 配行。 交叉连接返回来自第一个表的每行和来自第二个表的 每行的连接。
8
COLUMNS
COLUMNS
ABC
BDE
Table X LEFT OUTER JOIN
Table Y
ABCDE
ALL ROWS FROM TABLE X AND COMMON ROWS FROM TABLE Y
OUTPUT
COLUMNS
COLUMNS
ABC
BDE
Table X
RIGHT OUTER JOIN
19
子查询-由[not] exists引出的子查询(续) 引出的子查询 续 示例: 检索7号部门是否存在,存在列出公司所属员工号与职位
(注意理解 exists 与 in 的异同点)
20
子查询-由比较运算符引出的子查询
所有比较运算符都可以引出一个子查询,在没 有使用all,any时,必须保证子查询返回的结果集 合只有单行数据 示例: 列出公司员工大于平均小时薪水水平的员工名 单
Table Y
ABCDE
ALL ROWS FROM TABLE Y AND COMMON ROWS FROM TABLE X
OUTPUT
COLUMNS
COLUMNS
ABC
BDE
Table X
FULL OUTER JOIN
Table Y
ABCDE
ALL ROWS FROM TABLE Y AND TABLE Y AND COMMON ROWS ONLY ONCE
注:请比较内连接,左外连接的结果
13
连接查询-全外连接
使用全外连接查询输出编号,投票结果, 投票数量,投票人IP,投票日期.观察与左外连 接的异同点.
14
连接查询-交叉连接 笛卡尔积 交叉连接(笛卡尔积 笛卡尔积)
使用交叉连接查询输出编号,投票结果, 投票数量,投票人IP,投票日期.观察与左外连 接的异同点.
3
连接查询-连接的类型
பைடு நூலகம்
内连接:使用比较运算符进行表间某些列的数 据的比较操作,并列出这些表中与连接条件相匹 配的数据行。 外连接:外连接不只列出与连接条件相匹配的 数据行,还列出表中所有符合搜索条件的数据行。 外连接分为左外连接、右外连接和全外连接 交叉连接:没有where子句,返回连接表中所有 数据行的笛卡尔 自连接
4
连接查询-内连接
使用比较运算符进行表间某些列的数据的比较 操作,并列出这些表中与连接条件相匹配的数据 行。 语法:
Select column from table1 inner join table2 on exprission (图形演示)
5
连接查询-内连接
COMMON ROWS
6
连接查询-内连接
21
子查询-比较运算符
操作符 >all <>all >any =any <>any
22
描述 大于子查询中的最大 值 不等于列表中的所有 值 大于列表中的最小值 列表中的任何值 不等于任何列表中的 值
子查询-比较运算符(续) 续
示例: 查询所有大于‘Production Technician - WC10’特定职务的员工号码,职务,休假时 间.
15
连接查询-自连接
使用organInfo 表,显示具有上下级关系 的省市关系表.
16
子查询
子查询是用在另一个SQL语句中,它是被 嵌套在select,insert,update以及delete语句 的where,having中的select查询语句 类型:
由[not] in引出的子查询 由[not] exists引出的子查询 由比较运算符引出的子查询 相关子查询
连接查询与子查询
目录
1.连接查询
2. 子查询
3. 总结
2
连接查询
通过连接运算符可以实现多表查询,它是关系 型数据库模型的主要特点,也是区别于其他数据 库管理系统的一个标志 表创建时各数据之间的关系不必确定,常将一 个实体的所有信息存放在一个表中,当检索时通 过连接操作查询在多个表的不同实体的信息 可以在from或where中建立连接,推荐在from中 建立 连接可以对同一个表建立,称为自连接
18
子查询-由 子查询 由[not] exists引出的子查询 引出的子查询
Exists从句根据子查询中指定的条件检查 行的存在性 语法:
Select column,column… from table_name where exists(select column from table_name [where codition_expression])
OUTPUT
连接查询-外连接
语法:
Select column… from table1 [left|right|full] outer join table2 on join_operator
12
连接查询-右外连接
示例: 使用右外连接查询输出编号,投票结果, 投票数量,投票人IP,投票日期.观察与左外连 接的异同点.
17
子查询
-由[not] in引出的子查询 引出的子查询 语法:
Select column,column… from table_name where column [not] in ( select column frm table_name [where conditional_expression] ) 示例: 检索1号员工所在部门名称