每天学点Oracle—— 连接查询、子查询

本文主要介绍了Oracle数据库的连接查询,包括内连接INNER JOIN、左连接LEFT JOIN和全外连接FULL JOIN,并提供了多个实战练习,如查询员工与其上级、部门与员工信息等。此外,还讲解了子查询的使用,如单值判断函数DECODE和多条件判断函数CASE WHEN的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

 

一、连接查询(多表查询)

内连接 INNER JOIN (取表的并集)

标准写法

ORACLE写法

外连接 左连接 右连接 全外连接

 左连接 LEFT JOIN

全外连接 FULL JOIN

二、练习

1、列出所有员工的姓名及其直接上级的姓名。

​2、列出受雇日期早于其直接上级的所有员工。

​3、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

​4、列出所有“CLERK”(办事员)的姓名及其部门名称。

​5、列出最低薪金大于1500的各种工作。

​6、列出所有员工的姓名、部门名称和工资。

​7、列出所有部门的详细信息和部门人数。

8、列出各种工作的最低工资。

9、判断成绩是否及格练习。


 

一、连接查询(多表查询)

  • 内连接 INNER JOIN (取表的并集)

SELECT * FROM EMP;
SELECT * FROM DEPT;
  • 标准写法

SELECT E.EMPNO,
       E.ENAME,
       E.JOB,
       E.MGR,
       E.HIREDATE,
       E.SAL,
       E.COMM,
       E.DEPTNO,
       D.DEPTNO,
       D.DNAME,
       D.LOC
FROM EMP E
INNER JOIN 
DEPT D
ON E.DEPTNO=D.DEPTNO
  • ORACLE写法

SELECT E.*,D.* FROM EMP E,DEPT D 
WHERE E.DEPTNO=D.DEPTNO

在这里插入图片描述

  • 外连接 左连接 右连接 全外连接

  •  左连接 LEFT JOIN

  • (以左表为主表,主表数据保留,次表数据能对应上的提取,没有的则去掉)

SELECT  E.*,D.*
FROM EMP E 
LEFT JOIN
DEPT D 
ON E.DEPTNO=D.DEPTNO

在这里插入图片描述

SELECT D.*,E.*
FROM DEPT D
LEFT JOIN
EMP E
ON D.DEPTNO=E.DEPTNO 

在这里插入图片描述

SELECT D.*,E.*  FROM DEPT D,EMP E WHERE D.DEPTNO=E.DEPTNO(+)

在这里插入图片描述

  • 全外连接 FULL JOIN

SELECT D.*,E.*  FROM DEPT D
FULL JOIN 
EMP E
ON D.DNAME=E.ENAME

在这里插入图片描述
 

二、练习

1、列出所有员工的姓名及其直接上级的姓名。

select Y.ENAME,L.ENAME from EMP Y
left join EMP L on  Y.MGR = L.EMPNO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值