#要多练练
1.连接查询根据连接方式分为
内连接
等值连接
非等值连接
自连接
外连接
左外连接(左连接)
右外连接(右连接)
当多张表进行连接查询,若没有任何条件进行限制,会
发生什么现象?
会出现笛卡尔积,即两张表的记录的条数的乘积
##哪里用as?为什么这里不能用as?
#sql92:内连接中的等值连接
select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;
#SQL99:内连接中的等值连接,优点:对表连接不满意的话,
#可以再追加where进行过滤。
select e.ename,d.dname from emp e join dept d on e.deptno=d.deptno;
#SQL99:内连接中的非等值连接?
#eg:显示薪水等级、部门名、薪水等
select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal;
#找出每个员工的上级领导的名称,说明领导也从属于员工表,所以要
#把一张表看成两张表(a、b两张表)。
select a.ename empname,b.ename leadrname from emp a inner join emp b on a.mgr=b.empno; select a.ename empname,b.ename leadername from emp a join emp b on a.mgr=b.empno;
#找出每个员工对应的部门名称,要求显示全部
#部门名全部显示
select e.ename,d.dname from emp e right join dept d on d.deptno=d.deptno;
#什么时候用外连接?什么时候用内连接?
#内连接的记录条数小于等于外连接,内连接
#是会显示相匹配的信息,对于不完整的信息不会显示
#而外连接(无条件的全部显示)是会对全部进行显示的
#左连接是将左边全部显示出来,而右连接是将右边全部
#显示出来,若无记录则用null来匹配