oracle两表子查询,Oracle02-查询(多表,子查询)
多表查询:
两个和两个以上表或是视图的查询。
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-查询(多表,子查询)相关推荐
- oracle多表联合查询更新,ORACLE 两表关联更新三种方式
不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...
- oracle两表联查分组,oracle解决多表关联分组查询问题
做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid ...
- case when 子查询_Oracle数据库-单表查询
本章涉及单张表中的查询语句,包含常用的条件查询.范围查询.模糊查询等,跨表查询后续将会介绍. 1.基本查询语句 格式:SELECT[DISTINCT] column_name,-|* FROM tab ...
- mysql多表连接 索引_MySQL多表查询之外键、表连接、子查询、索引
一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...
- Oracle 9i 数据库 创建数据库 Net 配置 创建表 SQL查询 创建存储过程 (图)
创建数据库 用"数据库配置助手"创建数据库 创建数据库 选择 普通用途 输入名字,SID 在此我们选择专用服务器模式 典型 参数 含义 [最大并发连接用户数]文本框设置要在任意给定 ...
- 数据库学习笔记6--MySQL多表查询之外键、表连接、子查询、索引
本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复 ...
- mysql 子表 关联查询语句_mysql查询语句 和 多表关联查询 以及 子查询
1.查询一张表: select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select 字段1,字段2,字段3 from ...
- mysql多表查询语句_mysql查询语句 和 多表关联查询 以及 子查询
1.查询一张表:select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: 3.where条件查询:select字段1,字段2,字段3 frome ...
- 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)
三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...
- oracle 锁表查询及解决、表字段查询
在进行批量对DML操作时程序竟然中断了,不再往下执行.查询一下某张表被锁住了,因此不再往下执行了 如果怀疑表被锁了,或者事务未被正常关闭,在Oracle数据库中我们可以通过以下语句进行查询获取相关信息 ...
最新文章
- VMware Workstation Pro 无法在Windows上运行的解决方案
- 史上最快的拼接字串方法
- 蓝桥杯 ADV-210 算法提高 2-1屏幕打印
- es java bulk 导入数据一直超时_亿级别记录的mongodb批量导入ElasticSearch的java代码完整实现...
- ZipKin原理学习(分布式实时数据追踪系统)+window部署zipkin+k8s部署zipkin
- Node.js:express设置全局变量
- LVS+Keepalived 高可用环境部署记录(主主和主从模式)
- 手Q真的输给微信了吗?
- 从程序员到项目经理(25):对绩效考核的吐槽
- mysql 1032_mysql主从同步错误Last_SQL_Errno: 1032处理分析
- 我是培训机构出身的程序员,不敢告诉任何人
- substrate node cli
- Android USB编程
- goto的理解与使用
- Bi-LSTM-CRF命名实体识别实战
- 关于51号单片机开发所需软件keil5的安装教程
- 2018WinDriver/Driver Wizar软件PCI通信转C#WinForm最全教程
- 浅尝辄止MongoDB:GridFS
- 金蝶云星空与聚水潭系统对接方案项目经验分享(聚水潭主管库存)
- php版cms网站程序,搜一次CMS电影程序 PHP 体验版