[经管营销]第5章 多表查询.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[经管营销]第5章 多表查询

第五章 多表查询 东软人才实训中心 本章要点 多表连接的定义 笛卡尔积 等值连接 不等值连接 外连接 ANSI SQL:1999标准的连接语句 Union,Union All(集合运算符) 笛卡尔积 笛卡尔积是把表中所有的记录作乘积操作,生成大量的结果,而通常结果中可用的值有限。笛卡尔积出现的原因多种多样,通常是由于连接条件缺失造成的。 多表连接主要分为 等值连接 不等值连接 外连接 自连接? 等值连接 等值连接又称简单连接或内连接。就是当两个表的公共字段相等的时候把两个表连接在一起。公共字段是两个表中有相同含义的列。 等值连接 等值连接的语法结构 在 WHERE 子句中写连接条件 当多个表中有重名列时,必须在列的名字前加上表名作为前缀 等值连接的示例 等值连接中的记录筛选 多表连接中,记录筛选语句同样写在WHERE语句中,用逻辑AND和连接判断语句写在一起。 表别名的书写 等值连接表别名示例 表别名的书写(续) 关于表别名需要注意以下几点: 表别名长度不超过30个字符; 表别名定义在FROM子句中; 如果已经定义了表别名,那么只能使用表别名而不能使用原表名; 表别名的有效范围只是当前语句。 SQL语句的书写顺序是: SELECT FROM WHERE ORDER BY 而实际的执行顺序是: FROM WHERE SELECT ORDER BY 两个以上表连接 查找特定城市员工信息。 不等值连接 除了等号之外,在表连接语句中还可以使用其它的运算符。这种使用除等号之外运算符的连接语句被称为不等值连接。 使用不等值连接查询可以查询两个表中具有非等值关系的数据。操作符可以是比较运算符,也可以是between···and 或者是in、like。 不等值连接演示 不等值连接示例 外连接 为了查找到所有记录,包括没有匹配的记录,需要用外连接语句来实现。 右外连接:以右表为基准,右表中的每个记录都必须显示,即使左表中没有与之相匹配的记录。 左外连接:以左表为基准,左表中的每个记录都必须显示,即使右表没有与之相匹配的记录。 注意:+放在没有与之相匹配表的那一端。 外连接(续) 外连接示例 例5-8 所有部门信息,不管部门是否有员工。 外连接示例(续) 例5-9 所有员工信息,不管员工是否有部门。 ANSI SQL:1999标准的连接语法 Oracle9i除了Oracle自己的连接语法外,同时支持美国国家标准协会(ANSI)的SQL:1999标准的连接语法。 ANSI SQL:1999的连接语法 CROSS JOIN:交叉连接,生成笛卡尔积; NATURAL JOIN:自然连接; USING (column_name):USING子句,通过名字来具体指定连接 JOIN table2 ON (table1.column_name = table2.column_name):等值连接语句; [LEFT|RIGHT|FULL OUTER JOIN:左外连接|右外连接|全外连接。 交叉连接 交叉连接子句(CROSS JOIN)是在SQL99标准中,为了生成笛卡尔积而设计的。 自然连接 NATURAL JOIN是SQL99中新增语句,连接条件是两个表中所有的值和数据类型都相同的同名列。如果仅列名相同而数据类型不同,则报错。 USING子句 USING (column_name)子句也是SQL99新增子句,可以较灵活的完成在多表连接,多列列名相同时,使用其中的一列同名列连接,而不需写连接条件的功能。 USING子句和NATURAL JOIN不能在一条语句中同时书写。 USING子句示例 ON子句 例 SQL99实现两表以上连接 例5-14 查找特定城市员工信息。 SQL99:左外连接 在LEFT OUTER JOIN中,会返回所有左边表中的行,即使在右边的表中没有可对应的列值。 例5-15 所有员工信息,不管员工是否有部门。 SQL99:右外连接 RIGHT OUTER JOIN,会返回所有右边表中的行,即使在左边的表中没有可对应的列值。 例5-16 所有部门信息,不管部门是否有员工。 SQL99:全外连接 全外连接(FULL OUTER JOIN)主要功能是返回两表连接中等值连接结果,及两个表中所有等值连接失败的记录。 所有信息,不管部门是否有员工,也不管员工是否有部门。 UNION 操作符(也叫联合运算) UNION 操作符(也叫联合运算) UNION (联合)运算(连接的是俩个查询的结果) UNION 运算返回所有由任一查询选择的行。用 UNION 运算从多表返回所有行,但除去任何重复的行。 原则 被选择的列数和列的数据

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档