oracle 查询所有连接,oracle查询连接

SELECT * FROM EMP; SELECT * FROM DEPT; --左连接 --1、查询与左边表DEPT(4)相关联的数据,如DEPTNO=40在右边没有对应的数据,则显示为空     SELECT * FROM DEPT LEFT JOIN EMP ON DEPT.DEPTNO=EMP.DEPTNO;     --查询与左边表相关联的数据,并统计DEPT表每个DNAME的记录条数,由1可知,DNAME='OPERATIONS'的条数为0     SELECT DNAME,COUNT(ENAME) FROM DEPT LEFT JOIN EMP ON DEPT.DEPTNO=EMP.DEPTNO GROUP BY DNAME; --2、查询与左边表emp表相关的数据,因为emp表中的DEPTNO中没有等于40的号,所以DEPT表中DEPTNO=40的数据不会显示     SELECT * FROM EMP LEFT JOIN DEPT ON DEPT.DEPTNO=EMP.DEPTNO;     --查询与左边表相关的数据,由2可知,只会显示DEPT.DEPTNO=EMP.DEPTNO的数据     SELECT DNAME,COUNT(ENAME) FROM EMP LEFT JOIN DEPT ON DEPT.DEPTNO=EMP.DEPTNO GROUP BY DNAME; --右连接 SELECT * FROM DEPT RIGHT JOIN EMP ON EMP.DEPTNO=DEPT.DEPTNO; SELECT DNAME,COUNT(ENAME) FROM DEPT RIGHT JOIN EMP ON EMP.DEPTNO=DEPT.DEPTNO GROUP BY DNAME; --完全外连接 SELECT DNAME,COUNT(ENAME) FROM DEPT FULL JOIN EMP ON EMP.DEPTNO=DEPT.DEPTNO GROUP BY DNAME; --内连接 SELECT * FROM DEPT INNER JOIN EMP ON EMP.DEPTNO=DEPT.DEPTNO;        --等价于        SELECT * FROM SCOTT.DEPT,SCOTT.EMP WHERE DEPT.DEPTNO=EMP.DEPTNO; --自连接 SELECT M.ENAME FROM SCOTT.EMP M,SCOTT.EMP W WHERE M.EMPNO=W.MGR GROUP BY M.ENAME; SELECT M.ENAME FROM SCOTT.EMP M,SCOTT.EMP W WHERE M.EMPNO=W.MGR AND W.ENAME='BLAKE'; SELECT * FROM SCOTT.EMP; --创建表myemp CREATE TABLE MYEMP (    EMPNO NUMBER(4) NOT NULL,    EMPNAME VARCHAR2(20),    MGR NUMBER(4) ) ---important@……@ --从emp表中查询数据并添加到myemp中-----(注意:rownum表示记录的行数,例如:rownum<6表示获取前6行记录) INSERT INTO MYEMP SELECT EMPNO,ENAME,MGR FROM EMP WHERE ROWNUM<6; SELECT * FROM MYEMP; --使用集合操作符 --创建表emps CREATE TABLE EMPS (        EMPNO NUMBER(4),        ENAME VARCHAR2(20),        JOB VARCHAR2(20),        MGR NUMBER(4),        HIRDATE DATE ,        SAL NUMBER(10,2),        COMM NUMBER(10,2),        DEPTNO NUMBER(4) ) --从emp中查询数据并添加到表emp INSERT INTO EMPS SELECT * FROM EMP WHERE ROWNUM<6; SELECT * FROM EMPS; --1、UNION----返回检索到的所有不重复的行 SELECT * FROM EMP UNION SELECT * FROM EMPS --2、UNION ALL---查询检索的所有行,包括重复行 SELECT * FROM EMP UNION ALL SELECT * FROM EMPS; --3、INTERSECT---返回两个查询都检索到的行,(即两张表的交集) SELECT * FROM EMP INTERSECT SELECT * FROM EMPS; --4、MINUS---返回第一个查询检索到的行减去第二个查询检索到的行所剩余的行 SELECT * FROM EMP MINUS SELECT * FROM EMPS;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值