当前位置: 代码迷 >> SQL >> sql的联接介绍(自然连接,内连接,外连接)
  详细解决方案

sql的联接介绍(自然连接,内连接,外连接)

热度:101   发布时间:2016-05-05 13:33:20.0
sql的连接介绍(自然连接,内连接,外连接)

oracle:

自然连接(natural join):(natural join在sql server 中不支持)

        自然连接自动判断相同名称的列,而后形成匹配。缺点是,虽然可以指定查询结果包括哪些列,但不能人为地指定哪些列被匹配。另外,自然连接的一个特点是连接后的结果表中匹配的列只有一个

        eg:select  *  from t_employee  natual  join  t_manager

        类似:使用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):

        其中一个数据源指定为基表,另一个为附表,基表的数据一定存在,附表的数据出现依条件而定

        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  

        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会消除重复记录)



  相关解决方案