select table_name.column_name,........
from table_name1,table_name,.....
1.等值连接
2.不等值连接3.外连接4.自连接s_emp
s_depts_region需求一:
查询所有员工的名字,和所有部门的名字select last_name,name
from s_emp,s_dept;等值连接:
需求二: 查询所有员工的last_name,以及员工所属部门的名称 目标:last_name,name from s_emp, s_dept 条件:员工所属部门 s_emp.dept_id = s_dept.id select lasT_name,name from s_emp,s_dept where s_emp.dept_id = s_dept.id;需求三: 查询部门名称,以及部门所属区域的名称 目标:部门name,区域名称 from: s_dept, s_region 条件:部门所属区域 s_dept.region_id = s_region.id select s_dept.name,s_region.name from s_dept,s_region where s_dept.region_id = s_region.id;不等值连接:salaryGrade:min max grade0 1000 三级1001 1500 二级1501 2500 一级需求三: 查找员工名称,员工工资,以及员工工资所属等级信息。 目标:last_name,salary,grade from:s_emp,salGrade 条件:员工工资所属等级 salary between minSal and maxSal; select last_name,salary,grade from s_emp,salGrade where salary between minSal and maxSal create table salGrade( id number primary key, minSal number, maxSal number, grade varchar2(10) ); insert into salGrade values(1,0,1000,'三级'); insert into salGrade values(2,1001,1500,'二级'); insert into salGrade values(3,1501,2500,'一级');外连接: 左外:left join +出现在等号 右边 右外: right join +出现在等号 左边 全外: full join需求四:
1.要求查询所有员工的名称,以及员工所属部门的名称,就算员工没有部门,也要显示员工的名称。 目标:last_name,name from:s_emp,s_dept 条件:员工所属部门,就算员工没有部门,也要显示员工名称。 select last_name,name from s_emp,s_dept where s_emp.dept_id = s_dept.id(+); select last_name,name from s_emp left join s_dept on s_emp.dept_id = s_dept.id; 语义分析,将+号放在值少的一方。 2.要求查询所有员工的名称,以及员工所属部门的名称,就算部门没有员工,也要显示部门名称。 select last_name,name from s_emp,s_dept where s_emp.dept_id(+) = s_dept.id; select last_name,name from s_emp right join s_dept on s_emp.dept_id = s_dept.id; 3.要求查询所有员工的名称,以及员工所属部门的名称,就算部门没有员工,也要显示部门名称。就算员工没有部门也要显示员工名称。select last_name,name
from s_emp full join s_dept on s_emp.dept_id = s_dept.id;自连接需求五: 查询员工的名称以及员工所属经理的名称 目标:员工last_name,经理的last_name from: s_emp , s_emp 条件:员工所属经理 员工的manager_id = 经理的idselect emp.last_name,manager.last_name
from s_emp emp,s_emp manager where emp.manager_id = manager.id;2.就算员工没有经理,也要显示员工信息
select emp.last_name,manager.last_name from s_emp emp,s_emp manager where emp.manager_id = manager.id(+);