在前一篇文章中介绍由于SQL连接查询的相关知识,java编程最重要的是练习操作,所以在学习了之前的理论知识之后,本文将讨论具体的操作连接SQL查询案例介绍说明,以下是SQL连接查询案例,以下列举了SQL连接查询七大案例的分析,一起来学习吧!
1. 查询每个员工所在部门的名称,要求最终显示员工的名称和相应的部门名称:
Note:在查询多个表时,通常会对表起别名。如果两个表中有相同名称的字段,则不知道相同名称的字段属于哪个表。此时,有必要限制该字段属于哪个表,并通过对表起别名进行改进SQL语句效率高,可读性高。
思路分析:Step 1:首先查询员工姓名和部门号;emp 员工表
Step 2:再次查询部门号和部门名称;dept 部门表
select e.ename,d.dname from emp e,dept d;预测查询结果:
验证结果:
结论:为避免笛卡尔积现象的发生,在表连接过程中必须增加限制。
2.找出每个员工对应的工资等级,要求显示员工姓名、工资、工资等级:从查询员工姓名、工资
从查询工资等级信息
SQL92 语法:
select e.ename,e.sal,s.grade from emp e , salgrade s
where e.sal between s.losal and s.hisal;
SQL99 语法:内部连接中的非等值连接
select e.ename,e.sal,s.grade from emp e inner join
salgrade s on e.sal between s.losal and hisal;
select e.ename,e.sal,s.grade from emp e join salgrade
s on e.sal between s.losal and hisal; //inner 可以省略
3.找出每个员工的上级领导,并要求显示员工姓名和相应的领导姓名:从查询员工编号、员工名称、领导编号
从查询领导姓名,查询领导姓名编号
SQL92 语法:
select a.ename empname,b.ename leadername from
emp a,emp b
where a.mgr = b.empno;
SQL99 语法:内部连接中的自连接
select a.ename empname ,b.ename leadername 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;//inner 可以省略
4.找出每个员工对应的部门名称,并要求所有部门名称显示:首先查询每个员工对应的部门名称;
查询部门信息;
SQL99 语法:右外连接[右连接]
select e.ename,d.dname from emp e right outer join
dept d on e.deptno = d.deptno;
select e.ename,d.dname from emp e right join dept d
on e.deptno = d.deptno;
//outer 可省略
SQL99 语法:左外连接[左连接]
select e.ename,d.dname from dept d left outer join
emp e on e.deptno = d.deptno;
select e.ename,d.dname from dept d left join emp e
on e.deptno = d.deptno;
//outer 可省略
Note:任何右外连接都可以写成左外连接,任何左外连接都可以写成右外连接;
为什么innner和outer可以省略,加起来有什么好处?答:可以省略,因为区分内外连接不是靠这两个关键词,而是看SQL语句中的left/right关键词;添加left、提高SQL语句可读性的right关键词。
6. 找出每个员工对应的领导名称,要求显示所有员工:
显示每个员工对应的领导名称
SQL99 语法:
select a.ename empname ,b.ename leadername from
emp a left join emp b
on a.mgr = b.empno;
7. 找出每个员工对应的部门名称和相应的工资等级,并要求显示员工姓名、部门名称和工资等级:
查询员工相应的部门编号和工资;
查询部门信息;
查询工资等级信息;
以上就是SQL连接查询案例的说明认为,通过对SQL连接查询的分类和使用基础的理论知识的研究,以及今天七个SQL连接查询案例的介绍,java零基础刚开始的新手朋友也可以学习SQL连接查询的操作。希望大家能在业余时间学习相关信息。java培训课程多练习,逐步提高自己java编程水平。