当前位置:  数据库>oracle

Oracle SQL之--多表查询基础用法

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

    本文导语: Oracle多表查询,顾名思义就是从多个表中查询你所要的数据。这里以scott用户下的emp表与dept表进行试验,两个表的结构如下:   SQL> select * from dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 3...

Oracle多表查询,顾名思义就是从多个表中查询你所要的数据。这里以scott用户下的emp表与dept表进行试验,两个表的结构如下:
 
 SQL> select * from dept;
 DEPTNO DNAME LOC
 ---------- -------------- -------------
 10 ACCOUNTING NEW YORK
 20 RESEARCH DALLAS
 30 SALES CHICAGO
 40 OPERATIONS BOSTON
 








SQL> select * from emp;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80      800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7839 KING       PRESIDENT            17-NOV-81      5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20











     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10



14 rows selected.

使用连接可在多个表中查询数据:

基本语句如下:

SELECT table1.column, table2.column from  table1, table2 where  table1.column1 = table2.column2

连接的类型分成很多种:Equijoins(等值连接) Non-equijoin(非等值连接) Outer-join(外连接) Self-join(自连接) Cross joins(交叉连接) Natural joins(自然连接)

1、Equijoins

Equijoins(等值连接)--利用emp表中的deptno与dept表中的deptno进行等值连接。

SQL> select emp.empno,emp.ename,emp.deptno,dept.deptno,dept.dname from emp,dept where
  2  emp.deptno=dept.deptno;

     EMPNO ENAME          DEPTNO     DEPTNO DNAME
---------- ---------- ---------- ---------- --------------
      7369 SMITH              20         20 RESEARCH
      7499 ALLEN              30         30 SALES
      7521 WARD               30         30 SALES
      7566 JONES              20         20 RESEARCH
      7654 MARTIN             30         30 SALES
      7698 BLAKE              30         30 SALES
      7782 CLARK              10         10 ACCOUNTING
      7788 SCOTT              20         20 RESEARCH
      7839 KING               10         10 ACCOUNTING
      7844 TURNER             30         30 SALES
      7876 ADAMS              20         20 RESEARCH











     EMPNO ENAME          DEPTNO     DEPTNO DNAME
---------- ---------- ---------- ---------- --------------
      7900 JAMES              30         30 SALES
      7902 FORD               20         20 RESEARCH
      7934 MILLER             10         10 ACCOUNTING



14 rows selected.


 

2、Non-equijoin

Non-equijoin(非等值连接)--新建一个名为job_grades的表,并往其中添加数据:

SQL> select * from job_grades
  2  ;

GRA   LOWEST_SAL HIGHEST_SAL
----- ---------- -----------
A            500        1499
B           1500        2499
C           2500        3500




SQL> select emp.ename,emp.sal,job_grades.gra from emp,job_grades where emp.sal between
  2  job_grades.lowest_sal and job_grades.highest_sal;

ENAME             SAL GRA
---------- ---------- -----
SMITH             800        A
WARD              1250       A
MARTIN            1250       A
ADAMS             1100       A
JAMES             950        A
MILLER            1300       A
ALLEN             1600       B
CLARK             2450       B
TURNER            1500       B
JONES             2975       C
BLAKE             2850       C











ENAME             SAL GRA
---------- ---------- -----
SCOTT             3000      C
FORD              3000      C
 



13 rows selected.


    
 
 

您可能感兴趣的文章:

  • oracle中lpad函数的用法详解
  • Oracle中decode函数的用法
  • Oracle 系统变量函数用法指南
  • oracle while的用法示例分享
  • c#中oracle to_date函数用法举例
  • oracle 下WITH CHECK OPTION用法
  • Oracle 函数用法之decode
  • Oracle sequence序列的用法
  • [Oracle] 常用工具集之SQL*Loader的用法
  • oracle case when 语句的用法详解
  • Oracle行级锁的特殊用法简析
  • Oracle merge into用法及例子
  • oracle comment命令用法示例分享
  • Oracle to_date()函数的用法介绍
  • oracle正则表达式regexp_like的用法详解
  • Oracle to_date() 用法细节
  • 深入探讨:oracle中row_number() over()分析函数用法
  • Oracle中start with...connect by prior子句用法
  • Oracle回滚段的概念,用法和规划及问题的解决
  • Oracle MERGE INTO的用法示例介绍
  • Oracle相关基础知识教程集锦
  • 基础知识:Oracle数据库的启动方式
  • Oracle虚拟桌面基础架构(VDI)3.2上市
  • Oracle SQL基础知识
  • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle
  • Oracle DDL,DML,DCL,TCL 基础概念
  • 解析学习Oracle架构所应了解的基础知识
  • Linux下OCI基础:配置Instant Client连Oracle数据库
  • Oracle PL/SQL语言入门基础
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle查询出现异常
  • Oracle将查询的结果放入一张自定义表中并再查询数据
  • oracle+jsp 多用户查询系统讨论:
  • Oracle查询表、视图、序列等信息查询
  • 关于Oracle的查询问题
  • Oracle用什么语句查询字段?
  • Oracle 查询指定表名的columns
  • linux下通过对文件读取方式查询oracle的版本信息
  • Oracle的大数据量查询结果显示问题。(高手帮忙)
  • Oracle对两个数据表交集的查询
  • Oracle数据库并行查询出错的解决方法
  • Oracle 合并查询
  • 查询与修改Oracle字符集
  • 紧急求救:jsp对Oracle数据库中long 型数据进行模糊查询 如何查?
  • oracle通过行范围查询取4至10行
  • mysql仿oracle的decode效果查询
  • Oracle中查询本月星期5的所有日期列表的语句
  • jsp中在oracle中查询日期类型时sql语句该怎么写啊?
  • 紧急求救:对Oracle数据库中long 型数据进行模糊查询 如何查?
  • oracle查询不含括号及不含指定字符的方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 虚拟机装Oracle R12与Oracle10g
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g


  • 站内导航:


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

    ©2012-2021,