oracle数据库sql语句多表查询.ppt_第1页
oracle数据库sql语句多表查询.ppt_第2页
oracle数据库sql语句多表查询.ppt_第3页
oracle数据库sql语句多表查询.ppt_第4页
oracle数据库sql语句多表查询.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四、多表查询,目标,完成本节课的学习后,应当达到如下目标: 写出能从多个等连接或者非等连接的表中取出数据的SQL语句。 使用外连接来查找数据。 写出一个表与其自身连接的SQL语句。,EMPNO DEPTNO LOC - - - 7839 10 NEW YORK 7698 30 CHICAGO 7782 10 NEW YORK 7566 20 DALLAS 7654 30 CHICAGO 7499 30 CHICAGO . 14 rows selected.,从多个表中获取数据,EMP,DEPT,EMPNO ENAME . DEPTNO - - . - 7839 KING . 10 7698 BLAKE . 30 . 7934 MILLER . 10,DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON,什么是连接?,用一个连接来从多个表中获取数据. 在Where子句中书写连接的条件. 如果某个列的名字在多个表中出现了,那么需要在列的名字前面加上表名作为前缀.,SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2;,笛卡尔积,以笛卡尔积连接的表具有下列特征: 连接条件被忽略。 第一个表中的所有的行与第二个表中的所有行相连接。 如果在WHERE子句中加入条件,那么可以避免笛卡尔积.,产生一个笛卡尔积,ENAME DNAME - - KING ACCOUNTING BLAKE ACCOUNTING . KING RESEARCH BLAKE RESEARCH . 56 rows selected.,EMP (14 行),DEPT (4 行),EMPNO ENAME . DEPTNO - - . - 7839 KING . 10 7698 BLAKE . 30 . 7934 MILLER . 10,DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON,连接的类型,相等连接,非相等连接,外连接,自连接,什么是相等连接?,EMP,DEPT,EMPNO ENAME DEPTNO - - - 7839 KING 10 7698 BLAKE 30 7782 CLARK 10 7566 JONES 20 7654 MARTIN 30 7499 ALLEN 30 7844 TURNER 30 7900 JAMES 30 7521 WARD 30 7902 FORD 20 7369 SMITH 20 . 14 rows selected.,DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS . 14 rows selected.,用等连接获取纪录,SQL SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno;,EMPNO ENAME DEPTNO DEPTNO LOC - - - - - 7839 KING 10 10 NEW YORK 7698 BLAKE 30 30 CHICAGO 7782 CLARK 10 10 NEW YORK 7566 JONES 20 20 DALLAS . 14 rows selected.,限定不明确的列名,用表名作为前缀来限定在多个表中都出现的列名字. 利用表的前缀可以提高性能. 使用不同的别名来标志在不同表中的相同的名字。,用 AND操作符增加查询条件,EMP,DEPT,EMPNO ENAME DEPTNO - - - 7839 KING 10 7698 BLAKE 30 7782 CLARK 10 7566 JONES 20 7654 MARTIN 30 7499 ALLEN 30 7844 TURNER 30 7900 JAMES 30 7521 WARD 30 7902 FORD 20 7369 SMITH 20 . 14 rows selected.,DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS . 14 rows selected.,使用表的别名,使用的表的别名来简化查询,SQL SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno;,SQL SELECT e.empno, e.ename, e.deptno, 2 d.deptno, d.loc 3 FROM emp e, dept d 4 WHERE e.deptno= d.deptno;,连接多个表,NAME CUSTID - - JOCKSPORTS 100 TKB SPORT SHOP 101 VOLLYRITE 102 JUST TENNIS 103 K+T SPORTS 105 SHAPE UP 106 WOMENS SPORTS 107 . . 9 rows selected.,CUSTOMER,非等连接,EMP,SALGRADE,EMPNO ENAME SAL - - - 7839 KING 5000 7698 BLAKE 2850 7782 CLARK 2450 7566 JONES 2975 7654 MARTIN 1250 7499 ALLEN 1600 7844 TURNER 1500 7900 JAMES 950 . 14 rows selected.,GRADE LOSAL HISAL - - - 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999,用非等连接查询记录,ENAME SAL GRADE - - - JAMES 950 1 SMITH 800 1 ADAMS 1100 1 . 14 rows selected.,SQL SELECT e.ename, e.sal, s.grade 2 FROM emp e, salgrade s 3 WHERE e.sal 4 BETWEEN s.losal AND s.hisal;,外连接,EMP,DEPT,ENAME DEPTNO - - KING 10 BLAKE 30 CLARK 10 JONES 20 .,DEPTNO DNAME - - 10 ACCOUNTING 30 SALES 10 ACCOUNTING 20 RESEARCH . 40 OPERATIONS,外连接,可以用外连接来查出在一个表中,不匹配连接条件的行. 外连接的符号是: (+).,SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column(+) = table2.column;,SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column = table2.column(+);,使用外连接,SQL SELECT e.ename, d.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno(+) = d.deptno 4 ORDER BY e.deptno;,ENAME DEPTNO DNAME - - - KING 10 ACCOUNTING CLARK 10 ACCOUNTING . 40 OPERATIONS 15 rows selected.,自连接,EMP (WORKER),EMP (MANAGER),EMPNO ENAME MGR - - - 7839 KING 7698 BLAKE 7839 7782 CLARK 7839 7566 JONES 7839 7654 MARTIN 7698 7499 ALLEN 7698,EMPNO ENAME - - 7839 KING 7839 KING 7839 KING 7698 BLAKE 7698 BLAKE,表与自身连接,WORKER.ENAME|WORKSFOR|MANAG - BLAKE works for KING CLARK works for KING JONES works for KING MARTIN works for BLAKE . 13 rows selected.,SQL SELECT wor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论