基础知识:笛卡尔积现象,在知识点中以写。网址如下:
https://www.cnblogs.com/ukimiya/articles/15355326.html
一.连接查询
1.单表查询和连接查询:
单表查询:从一张表中单独查询,称为单表查询。
连接查询:emp表和dept表联合起来查询数据,从emp表中取员工名字,从dept表中取部门名字。这种跨表查询,多张表联合起来查询数据,被称为连接查询。
2.连接查询的分类:
①按年代分类:
SQL92:1992年的时候出现的语法
SQL99:1999年的时候出现的语法,重点学习SQL99。
②按表连接方式分类:
内连接:A和B连接,2表没有主次关系,平级。
等值连接
非等值连接
自连接
外连接:A和B连接,产生主次关系,join后是主表。
左外连接(左连接)
右外连接(右连接)
全连接(不讲)。
二.内连接(等值、非等值、自)--inner join....on....
1.等值连接:
举例:查询员工的员工名(ename--emp表)和部门名(dname--dept表)
语句:
select e.ename,d.dname
from emp e
inner join dept d
on e.deptno = d.deptno;

2.非等值连接:
举例:查询每个员工的薪资等级(grade),显示员工名(ename)、薪资(sal)、薪资等级(grade)
语句:
select e.ename, e.sal, s.grade
from emp e
inner join salgrade s
on e.sal between s.losal and s.hisal;

3.自连接:同表自连接
举例:查询员工的上级领导(mgr,empno,ename),要求显示员工名(ename)和对应的领导名(ename)
语句:
select a.ename as '员工名', b.ename as '领导名'
from emp a //员工表
join emp b //领导表
on a.mgr = b.empno; //员工的领导编号 = 领导的员工编号

三.外连接(左外、右外)--left/right outer join ... on ...
1.左连接:left
2.右连接:right

3.left / right的意义:
将join关键字右边的表A看成主表,将A表的数据全部查询出来,捎带着关联查询左边的表B。
4.Q:外连接查询结果条数一定是 >= 内连接的查询结果条数?
A:是的。
四.多表连接
1.一条SQL中内连接+外连接混合:

五.查询结果去重--distinct
1.格式:select distinct job from emp;
2.使用注意事项:
①distinct只能出现在所有字段的最前方;
×: select ename,distinct job from emp;
②distinct出现在job,deptno两个字段之前,表示两个字段联合起来去重。
select distinct job,deptno from emp;
③举例:

