多表关联查询

多表关联查询

使用多张表连接起来进行挑选,输出需要的表结构

内连接 

1.关键字 (INNER) JOIN

语法:

SELECT 要查询的字段 FROM 表1 (INNER) JOIN 表2 ON 关联条件 AND/WHERE 过滤条件

示例:

SELECT E.ENAME, D.DNAME FROM EMP E INNER JOIN DEPT D ON E.DEPTNO = D.DEPTNO;

2.可以直接在表之间加个,表示内连接

示例:

SELECT E.ENAME,D.DNAME FROM EMP E,DEPT D ON E.DEPTNO = D.DEPTNO;

内连接的时候,不同的表里有两个相同名称的字段,要用表名指定是哪张表的字段,不然会找不到要的是哪个字段。 

内连接 取两张表的交集

如果在内连接的时候没有写关联条件,就会产生笛卡尔积=A表的行数*B表的行数

外连接(OUTER JOIN)

左外连接:关键字 LEFT JOIN ,左表是主表,右表是从表,会展示主表的所有数据,从表没有的行数数据用NULL补充

注意:在左外连接的时候,WHERE才能起到过滤条件的作用;而AND只能过滤从表的数据,AND先过滤从表的数据再和主表进行关联。对主表的数据没有过滤效果。

右外连接:关键字 RIGHT JOIN  ,与左外连接相反

全外连接:关键字 FULL JOIN,不分主从表,相当于左外连接+右外连接所有数据

自连接:自己和自己进行关联,两张一模一样的表和数据进行关联。

不等值关联 ---- 数据发散 

示例:

SELECT * FROM EMP E JOIN DEPT D ON E.DEPTNO < D.DEPTNO;

SQL语句排序

SELECT --7 FROM--1 JOIN--2 ON--3 WHERE--4 GROUP BY--5 HAVING--6 ORDER BY--8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值