显示多表数据_第1页
显示多表数据_第2页
显示多表数据_第3页
显示多表数据_第4页
显示多表数据_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、显示多表数据目标完成本课,将可以: 书写SELECT语句,使用等连接和不等连接来访问多表中的数据使用外连接来查看原本不符合连接条件的数据对表使用自身连接 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 EMPNOENAME.DEPTNO-.- 7839KING. 10 7698BLAKE. 30 . 7934MILLER. 10DEPTNO

2、DNAME LOC - - 10ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON什么是连接(join)?使用连接来查询多表中的数据.在WHERE子句中使用连接条件.如果两个表中有相同的列,在列名前面加上表名限定.SELECTtable1.column, table2.columnFROMtable1, table2WHEREtable1.column1 = table2.column2;迪卡尔积(Cartesian product)在下面的情况出现迪卡尔积:一个连接条件被忽略了一个连接条件无效一个表的所有

3、行连接到另一个表的所有行要避免迪卡尔积, 总是在WHERE子句中包含有效的连接条件.(至少要表的数目减1个连接条件)迪卡尔积的产生ENAME DNAME- -KINGACCOUNTINGBLAKE ACCOUNTING .KINGRESEARCHBLAKE RESEARCH.56 rows selected.EMP (14 行) DEPT (4 行) EMPNOENAME.DEPTNO-.- 7839KING. 10 7698BLAKE. 30 . 7934MILLER. 10DEPTNO DNAME LOC - - 10ACCOUNTINGNEW YORK 20RESEARCHDALLAS

4、30SALESCHICAGO 40OPERATIONSBOSTON“迪卡尔积: 14*4=56 行”连接的类型等连接不等连接外连接自连接 什么是等连接?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 - -

5、 - 10 ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTINGNEW YORK 20 RESEARCHDALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCHDALLAS 20 RESEARCHDALLAS.14 rows selected.主键外键 使用等连接查询记录SQL SELECT emp.empno, emp.ename, emp.deptno, 2dept.deptno, dept.l

6、oc 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 DEP

7、TNO- - - 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 ACCOUNTINGNEW YORK 30SALES CHICAGO 10 ACCOUNTINGNEW YORK 20 RESEARCHDALLAS 30 SALES CHICAGO 30 SA

8、LES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCHDALLAS 20 RESEARCHDALLAS.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

9、, d.loc 3 FROM emp e, dept d 4 WHERE e.deptno=d.deptno;连接两个以上的表NAMECUSTID-JOCKSPORTS 100TKB SPORT SHOP 101VOLLYRITE 102JUST TENNIS 103K+T SPORTS 105SHAPE UP 106WOMENS SPORTS 107.9 rows selected.CUSTOMER CUSTID ORDID- - 101 610 102 611 104 612 106 601 102 602 106 604 106 605. 21 rows selected.ORD ORD

10、ID ITEMID- - 610 3 611 1 612 1 601 1 602 1.64 rows selected. ITEM 不等连接EMPSALGRADE“在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- - -

11、1 70012002 120114003 140120004200130005 30019999使用不等查询检索数据ENAME SAL GRADE- - -JAMES 950 1SMITH 800 1ADAMS 1100 1.14 rows selected.SQL SELECT e.ename, e.sal, s.grade 2FROMemp e, salgrade s 3WHERE e.sal 4BETWEEN s.losal AND s.hisal;外连接EMP DEPT 没有雇员在OPERATIONS 部门ENAMEDEPTNO-KING10BLAKE30CLARK10JONES20.

12、DEPTNO DNAME- -10 ACCOUNTING30 SALES10 ACCOUNTING20RESEARCH.40OPERATIONS外连接你可以使用外连接看到本不满足连接条件的行.外连接操作符是加号 (+),放在需要补充数据(空行)的一边。SELECTtable.column, table.columnFROMtable1, table2WHEREtable1.column(+) = table2.column;SELECTtable.column, table.columnFROMtable1, table2WHEREtable1.column = table2.column(+

13、);使用外连接SQL SELECTe.ename, d.deptno, d.dname 2 FROMemp e, dept d 3 WHEREe.deptno(+) = d.deptno 4 ORDER BYe.deptno;ENAME DEPTNO DNAME- - -KING 10 ACCOUNTINGCLARK 10 ACCOUNTING. 40 OPERATIONS15 rows selected.自连接EMP (WORKER)EMP (MANAGER)“WORKER表的MGR等于MANAGER表的EMPNO EMPNOENAME MGR- 7839KING 7698BLAKE7839

14、 7782CLARK7839 7566JONES7839 7654MARTIN7698 7499ALLEN7698EMPNOENAME- 7839KING 7839KING 7839KING 7698BLAKE 7698BLAKE使用自连接WORKER.ENAME|WORKSFOR|MANAG-BLAKE works for KINGCLARK works for KINGJONES works for KINGMARTIN works for BLAKE.13 rows selected.SQL SELECT worker.ename| works for |manager.ename 2 FR

温馨提示

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

评论

0/150

提交评论