多表连接和子查询.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 多表连接和子查询 本章要点 多表连接的定义 等值连接 不等值连接 外连接 子查询的语法 子查询的使用 从多个表中取得数据 EMPLOYEES DEPARTMENTS … … 使用 Oracle 的语法连接多个表 使用表连接从多个表中查询数据 SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2; 在 WHERE 子句中写入连接条件 当多个表中有重名列时,必须在列的名字前加上表名作为前缀 常见的连接类型: 等值连接 非等值连接 外连接 连接的类型 什么是等值连接? EMPLOYEES DEPARTMENTS … … 使用 AND 操作符增加查询条件 EMPLOYEES DEPARTMENTS … … 使用表的别名 使用表的别名简化了查询 提高了查询的性能 SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e, departments d WHERE e.department_id = d.department_id; 对多表作等值连接查询 EMPLOYEES LOCATIONS DEPARTMENTS 为了连接n个表,至少需要n-1个连接条件。例如,为了连接三个表,至少需要两个连接条件 … 非等值连接 EMPLOYEES JOB_GRADES 在 EMPLOYEES 表中所有薪水位于JOB_GRADES表最低薪水和最高薪水之间雇员的薪水情况. … 外连接 EMPLOYEES DEPARTMENTS … 外连接 使用外连接可以看到不满足连接条件的记录 外连接运算符是 (+) 有左外连接和右外连接 SELECT table.column, table.column FROM table1, table2 WHERE table1.column(+) = table2.column; SELECT table.column, table.column FROM table1, table2 WHERE table1.column = table2.column(+); 子查询 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table); 子查询在主查询前执行一次 主查询使用子查询的结果 使用子查询的注意事项 子查询要用括号括起来 将子查询放在比较运算符的右边(增强可读性) 对单行子查询使用单行运算符 对多行子查询使用多行运算符 子查询的种类 单行子查询 最多一行记录 单行子查询 返回一行记录 使用单行记录比较运算符 Operator = = = Meaning Equal to Greater than Greater than or equal to Less than Less than or equal to Not equal to 下面的语句错在哪里? SELECT employeeID, name FROM EMPLOYEES WHERE salary= (SELECT salary FROM EMPLOYEES where departmentID = 1); 对多行子查询使用了单行比较操作符. 多行子查询 返回多行 使用多行比较运算符 运算符 IN ANY ALL 含义 等于列表中的任何值 将值与子查询返回的任意一个值进行比较 比较子查询返回的每一个值 在多行子查询中使用ANY运算 符 ANY 指小于最大值 ANY 大于最小值 SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary ANY (SELECT salary FROM employees WHERE job_id = IT_PROG) AND job_id IT_PROG; 在多行子查询中使用ALL运算符 ALL指大于最大值 ALL指小于最小值

文档评论(0)

djawdsx + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档