多表查询:

两个和两个以上表或是视图的查询。

SQL> select a1.ename,a1.sal,a2.dname from emp a1 ,dept a2 where a1.deptno=a2.deptno;

ENAME              SAL DNAME

---------- ----------- --------------

SMITH           800.00 RESEARCH

ALLEN          1600.00 SALES

WARD           1250.00 SALES

JONES          2975.00 RESEARCH

MARTIN         1250.00 SALES

BLAKE          2850.00 SALES

CLARK          2450.00 ACCOUNTING

SCOTT          3000.00 RESEARCH

KING           5000.00 ACCOUNTING

TURNER         1500.00 SALES

ADAMS          1100.00 RESEARCH

JAMES           950.00 SALES

FORD           3000.00 RESEARCH

MILLER         1300.00 ACCOUNTING

14 rows selected

首先是:

SQL> select a1.ename,a1.sal,a2.dname from emp a1 ,dept a2;

ENAME              SAL DNAME

---------- ----------- --------------

SMITH           800.00 ACCOUNTING

ALLEN          1600.00 ACCOUNTING

WARD           1250.00 ACCOUNTING

JONES          2975.00 ACCOUNTING

MARTIN         1250.00 ACCOUNTING

BLAKE          2850.00 ACCOUNTING

CLARK          2450.00 ACCOUNTING

SCOTT          3000.00 ACCOUNTING

KING           5000.00 ACCOUNTING

TURNER         1500.00 ACCOUNTING

ADAMS          1100.00 ACCOUNTING

JAMES           950.00 ACCOUNTING

FORD           3000.00 ACCOUNTING

MILLER         1300.00 ACCOUNTING

SMITH           800.00 RESEARCH

ALLEN          1600.00 RESEARCH

WARD           1250.00 RESEARCH

JONES          2975.00 RESEARCH

MARTIN         1250.00 RESEARCH

BLAKE          2850.00 RESEARCH

ENAME              SAL DNAME

---------- ----------- --------------

CLARK          2450.00 RESEARCH

SCOTT          3000.00 RESEARCH

KING           5000.00 RESEARCH

TURNER         1500.00 RESEARCH

ADAMS          1100.00 RESEARCH

JAMES           950.00 RESEARCH

FORD           3000.00 RESEARCH

MILLER         1300.00 RESEARCH

SMITH           800.00 SALES

ALLEN          1600.00 SALES

WARD           1250.00 SALES

JONES          2975.00 SALES

MARTIN         1250.00 SALES

BLAKE          2850.00 SALES

CLARK          2450.00 SALES

SCOTT          3000.00 SALES

KING           5000.00 SALES

TURNER         1500.00 SALES

ADAMS          1100.00 SALES

JAMES           950.00 SALES

FORD           3000.00 SALES

ENAME              SAL DNAME

---------- ----------- --------------

MILLER         1300.00 SALES

SMITH           800.00 OPERATIONS

ALLEN          1600.00 OPERATIONS

WARD           1250.00 OPERATIONS

JONES          2975.00 OPERATIONS

MARTIN         1250.00 OPERATIONS

BLAKE          2850.00 OPERATIONS

CLARK          2450.00 OPERATIONS

SCOTT          3000.00 OPERATIONS

KING           5000.00 OPERATIONS

TURNER         1500.00 OPERATIONS

ADAMS          1100.00 OPERATIONS

JAMES           950.00 OPERATIONS

FORD           3000.00 OPERATIONS

MILLER         1300.00 OPERATIONS

56 rows selected

产生了笛卡儿积,4*14=56;

然后:2个表添一个条件消除笛卡儿积(n张表要n-1个条件才能消除笛卡儿积)

SQL> select a1.ename,a1.sal,a2.dname from emp a1 ,dept a2 where a1.deptno=a2.deptno;

子查询:指嵌入在其他sql语句中的select语句。

注意:把条件多的放查询语句放到后面,sql从后往前。

单行子查询:

如:

查询和SMITH在一个部门的员工

1,查询SMITH所在部门:

SQL> select deptno from emp where ename='SMITH';

DEPTNO

------

20

2,

SQL> select * from emp where deptno =(select deptno from emp where ename='SMITH');

EMPNO ENAME      JOB         MGR HIREDATE            SAL        COMM DEPTNO

----- ---------- --------- ----- ----------- ----------- ----------- ------

7369 SMITH      CLERK      7902 1980/12/17       800.00                 20

7566 JONES      MANAGER    7839 1981/4/2        2975.00                 20

7788 SCOTT      ANALYST    7566 1987/4/19       3000.00                 20

7876 ADAMS      CLERK      7788 1987/5/23       1100.00                 20

7902 FORD       ANALYST    7566 1981/12/3       3000.00                 20

多行查询:

查询和部门10号工作相同的员工

1,查询部门10号的工作

SQL> select job from emp where deptno='10';

JOB

---------

MANAGER

PRESIDENT

CLERK

2,  SQL> select * from emp where  job in (select distinct job from emp where deptno='10' );   EMPNO ENAME      JOB         MGR HIREDATE            SAL        COMM DEPTNO ----- ---------- --------- ----- ----------- ----------- ----------- ------  7782 CLARK      MANAGER    7839 1981/6/9        2450.00                 10  7698 BLAKE      MANAGER    7839 1981/5/1        2850.00                 30  7566 JONES      MANAGER    7839 1981/4/2        2975.00                 20  7839 KING       PRESIDENT       1981/11/17      5000.00                 10  7934 MILLER     CLERK      7782 1982/1/23       1300.00                 10  7900 JAMES      CLERK      7698 1981/12/3        950.00                 30  7876 ADAMS      CLERK      7788 1987/5/23       1100.00                 20  7369 SMITH      CLERK      7902 1980/12/17       800.00                 20

oracle两表子查询,Oracle02-查询(多表,子查询)相关推荐

  1. oracle多表联合查询更新,ORACLE 两表关联更新三种方式

    不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...

  2. oracle两表联查分组,oracle解决多表关联分组查询问题

    做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid ...

  3. case when 子查询_Oracle数据库-单表查询

    本章涉及单张表中的查询语句,包含常用的条件查询.范围查询.模糊查询等,跨表查询后续将会介绍. 1.基本查询语句 格式:SELECT[DISTINCT] column_name,-|* FROM tab ...

  4. mysql多表连接 索引_MySQL多表查询之外键、表连接、子查询、索引

    一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...

  5. Oracle 9i 数据库 创建数据库 Net 配置 创建表 SQL查询 创建存储过程 (图)

    创建数据库 用"数据库配置助手"创建数据库 创建数据库 选择 普通用途 输入名字,SID 在此我们选择专用服务器模式 典型 参数 含义 [最大并发连接用户数]文本框设置要在任意给定 ...

  6. 数据库学习笔记6--MySQL多表查询之外键、表连接、子查询、索引

    本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复 ...

  7. mysql 子表 关联查询语句_mysql查询语句 和 多表关联查询 以及 子查询

    1.查询一张表: select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select 字段1,字段2,字段3 from ...

  8. mysql多表查询语句_mysql查询语句 和 多表关联查询 以及 子查询

    1.查询一张表:select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select字段1,字段2,字段3 frome ...

  9. 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)

    三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...

  10. oracle 锁表查询及解决、表字段查询

    在进行批量对DML操作时程序竟然中断了,不再往下执行.查询一下某张表被锁住了,因此不再往下执行了 如果怀疑表被锁了,或者事务未被正常关闭,在Oracle数据库中我们可以通过以下语句进行查询获取相关信息 ...

最新文章

  1. VMware Workstation Pro 无法在Windows上运行的解决方案
  2. 史上最快的拼接字串方法
  3. 蓝桥杯 ADV-210 算法提高 2-1屏幕打印
  4. es java bulk 导入数据一直超时_亿级别记录的mongodb批量导入ElasticSearch的java代码完整实现...
  5. ZipKin原理学习(分布式实时数据追踪系统)+window部署zipkin+k8s部署zipkin
  6. Node.js:express设置全局变量
  7. LVS+Keepalived 高可用环境部署记录(主主和主从模式)
  8. 手Q真的输给微信了吗?
  9. 从程序员到项目经理(25):对绩效考核的吐槽
  10. mysql 1032_mysql主从同步错误Last_SQL_Errno: 1032处理分析
  11. 我是培训机构出身的程序员,不敢告诉任何人
  12. substrate node cli
  13. Android USB编程
  14. goto的理解与使用
  15. Bi-LSTM-CRF命名实体识别实战
  16. 关于51号单片机开发所需软件keil5的安装教程
  17. 2018WinDriver/Driver Wizar软件PCI通信转C#WinForm最全教程
  18. 浅尝辄止MongoDB:GridFS
  19. 金蝶云星空与聚水潭系统对接方案项目经验分享(聚水潭主管库存)
  20. php版cms网站程序,搜一次CMS电影程序 PHP 体验版

热门文章

  1. 当“共享”不再共享,我们是否还要继续
  2. Chrome 升级成最新v33 造成开发上面诸多不便,赶紧回滚v32
  3. Layabox学习笔记
  4. 操作系统--Linux操作系统第一期
  5. springboot中集成servlet
  6. 氧化石墨烯的建模工具
  7. ESP8266深度学习之五通过两个ESP8266芯片实现相互通信功能(AT模式)
  8. python对各种文件的处理(.mat .abf等)
  9. android 实现屏幕录制功能,Android实现屏幕录制功能
  10. 给游戏设计新人的一些建议