sql的连接介绍(自然连接,内连接,外连接)
oracle:
自然连接(natural join):(natural join在sql server 中不支持)
自然连接自动判断相同名称的列,而后形成匹配。缺点是,虽然可以指定查询结果包括哪些列,但不能人为地指定哪些列被匹配。另外,自然连接的一个特点是连接后的结果表中匹配的列只有一个
eg:select * from t_employee natual join t_manager
www.2cto.com
类似:使用WHERE子句进行等值连接查询(sqk server)
eg:SELECT SNAME, S.DNAME, S.CNO, TNAME FROM STUDENT AS S, TEACHER AS T
WHERE S.CNO = T.CNO ORDER BY SNAME
内连接(inner join):在from子句中使用连接条件,列可以自行控制
eg:select * from t_employee e inner join t_manager m on e.employee_name = m.manager_name
外连接–左连接(left ( outer) join—on):
其中oracle账号一个数据源指定为基表,另一个为附表,基表的数据一定存在,附表的数据出现依条件而定
select e.employee_id, e.employee_name, s.salary from t_employee (基表) e left outer join t_salary s(附表)on e.employee_id=s.employee_id
www.2cto.com
select e.employee_id, e.employee_name, s.salary from t_employee (基表) e , t_salary s(附表) where e.employee_id=s.employee_id(+)(附表)
外连接–右连接(right ( outer) join—on):
与左连接相对应
外连接–完全连接(full( outer) join—on):
是左连接和右连接的结合,即先执行一个左连接,然后执行一个右连接,最后将两个结果集执行union操作(union会消除重复记录)