当前位置:  数据库>oracle

Oracle连接查询介绍

    来源: 互联网  发布时间:2017-05-02

    本文导语: 连接查询是数据库查询语句中使用频率很高的查询方式,下面根据Oracle提供的官方文档学习一下连接查询: 1. 连接种类: 1)oracle特有连接种类:    a.Equijoin 等值连接    SQL> select e.employee_id, e.last_name,  2              ...

连接查询是数据库查询语句中使用频率很高的查询方式,下面根据Oracle提供的官方文档学习一下连接查询:

1. 连接种类:

1)oracle特有连接种类:

   a.Equijoin 等值连接
  

SQL> select e.employee_id, e.last_name,
  2                   e.department_id, d.department_id,
  3                   d.location_id
  4  from   employees e, departments d
  5  where  e.department_id = d.department_id;



EMPLOYEE_ID LAST_NAME  DEPARTMENT_ID DEPARTMENT_ID LOCATION_ID
----------- ------------------------- -------------        -------------     -----------
        198              OConnell                              50                           50         1500
        199              Grant                                     50                            50         1500
        200              Whalen                                10                            10          1700
        201              Hartstein                              20                            20         1800




......

   b. Non-Equijoin 非等值连接

 

SQL> select e.last_name, e.salary, j.grade
  2  from   employees e, job_grades j
  3  where  e.salary between j.lowest_sal and j.highest_sal;

 

LAST_NAME                     SALARY G
------------------------- ---------- -
Olson                           2100       A
Philtanker                    2200      A
Markle                          2200      A



...

Feeney                          3000 B
Cabrio                          3000 B
Fleaur                          3100 B
Walsh                           3100 B


...

Hartstein                      13000 C
Partners                       13500 C

Partners                       13500 D
Russell                        14000 D
De Haan                        17000 E
Kochhar                        17000 E


   c. Outer join 外连接

SQL> select e.last_name, e.department_id, d.department_name
  2  from   employees e, departments  d
  3  where  e.department_id(+) = d.department_id;

 

相当于:select e.last_name, e.department_id, d.department_name
             from   employees e RIGHT JOIN departments  d
             ON  e.department_id = d.department_id;


 LAST_NAME                 DEPARTMENT_ID DEPARTMENT_NAME
------------------------- ------------- ------------------------------
Greenberg                           100 Finance
Sciarra                             100 Finance
Urman                               100 Finance
Popp                                100 Finance
Faviet                              100 Finance
Gietz                               110 Accounting
Higgins                             110 Accounting
                                        Treasury
                                        Corporate Tax
                                        Control And Credit
                                        Shareholder Services











 

...............

注:此处(+)为连接符,放在等号左边代表右连接(相当于RIGHT JOIN),放在等号右边代表左连接(相当于LEFT JOIN)。

此处为右连接,表示查找所有部门表ID和部门名称以及员工表中对应部门ID的员工姓名,没有的返回NULL。

  d. Self   join  自连接

 SQL> select worker.last_name || 'works for '|| manager.last_name
  2  from employees worker, employees manager
  3  where  worker.manager_id = manager.employee_id;

  WORKER.LAST_NAME||'WORKSFOR'||MANAGER.LAST_NAME
------------------------------------------------------------
OConnellworks for Mourgos
Grantworks for Mourgos
Whalenworks for Kochhar
Hartsteinworks for King
Fayworks for Hartstein
Mavrisworks for Kochhar






............


2)符合1999规范的连接:

Cross joins 交叉连接
Natural joins  自然连接
Using clause   使用条件
Full or two sided outer joins 完全连接
Arbitrary join conditions for outer joins 为外连接任意加入条件




    
 
 

您可能感兴趣的文章:

  • 网间Oracle的连接,远程连接Oracle服务器??
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • 不想装oracle却还要在redhat8.0下用jdbc连接oracle如何实现?
  • 我用JBuilder 7连接局域网内一ORACLE 9( 在本机可以连接)的问题?
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • oracle 数据库连接分析
  • Linux系统下利用java连接Oracle 10G
  • Jbuilder 7.0 连接 Oracle 数据库
  • 怎么直接通过JDBC连接oracle?
  • 请教: Javaswing 和 Oracle JDBC thin 连接的问题
  • opendbx 为什么连接不上oracle?
  • 100分寻求最优化的连接oracle的java程序,请给我讲出理由,我是初学者,在做项目时不想让连接oracle影响我的程序性能
  • 如何在JBuilder中连接Oracle数据库?
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • 请教JSP与ORACLE连接问题。
  • jdbc连接oracle
  • 关于Jbuilder7连接oracle9??
  • 再问java 连接oracle 问题,急!
  • jsp文件连接oracle失败
  • 讨论:jdbc连接oracle数据库
  • Oracle 12c发布简单介绍及官方下载地址
  • Oracle 系统变量函数介绍
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle中SQL语句连接字符串的符号使用介绍
  • Oracle 10g和Oracle 11g网格技术介绍
  • oracle 数据泵导入导出介绍
  • ORACLE数据库常用字段数据类型介绍
  • Oracle解锁的方式介绍
  • Oracle 12c的九大最新技术特性介绍
  • 占用一下,小弟想到深圳发展,有一年JAVA开发经验,熟悉oracle数据库,哪位在深圳的兄弟帮忙介绍个工作,我的QQ:9182647,谢谢了!
  • oracle中UPDATE nowait 的使用方法介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle 11g最新版官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Oracle EBS R12 支持 Oracle Database 11g
  • ORACLE日期相关操作
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • ORACLE中DBMS_RANDOM随机数生成包
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • Linux系统下Oracle的启动与Oracle监听的启动
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • 请教:.profile中:if [ -d /opt/oracle/db01/app/oracle/product/9.2.0 ]是什么意思?
  • 在linux 中如何删除oracle db 与卸载oracle.
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,