oracle 链接查询

  • 等值链接 

eg:  select  s.sno,  s.sname,  sc.cno  from  student s,  sc  where  s.sno=sc.sno;        (可使同一表自身链接)oracle

  • 非等值链接  

eg:  select  s.sno,  s.sname,  cno,  grade  from  student  s,  sc  where  grade between  x  and y;spa

  • 外链接

一、左外链接:使用 left outer join 子句  后用 on 来建立连接条件,该链接方式输出知足链接条件的结果以及左表不知足链接条件的结果select

eg:  select  s.sno,  s.sname,  sc.cno,  sc.grade  from student  s  left  outer  join  sc  on  s.sno=sc.sno      数据类型

二、右外链接:使用 right outer join 子句  后用 on 来建立连接条件,该链接方式输出知足链接条件的结果以及右表不知足链接条件的结果数据

eg: select  s.sno,  s.sname,  sc.cno,  sc.grade  from student  s  right  outer  join  sc  on  s.sno=sc.sno     查询

三、全外链接:使用 full outer join 子句  后用 on 来建立连接条件,该链接方式输出知足链接条件的结果以及两表不知足链接条件的结果co

eg:  select  s.sno,  s.sname,  sc.cno,  sc.grade  from student  s  full  outer  join  sc  on  s.sno=sc.sno   join

四、使用on子句建立多表链接:错误

eg:  select  s.sno,  s.sname,  c.cno,  c.cname,  sc.grade  from student  s  join  sc  on  s.sno=sc.sno  join  course  on  c.cno=sc.cno

  • 天然链接
  1. 使用 natural  join  子句,会以两表之中具备相同名字的列为条件建立等值链接
  2. 查询表中知足等职条件的数据
  3. 两表存在同名的列,可是数据类型不一样会产生错误

select   sno,  sname,  cno  from  student  natural  join  sc; 注:天然链接时可使用using子句指定等值链接中所须要用到的列,natural  join 和 using 常常同时使用,而且using当中不要给列加上表名前缀

 

顺便一记:以上例子都用到了别名,按照oracle的执行方式(先进执行from子句,在执行where等条件查询,最后执行select),最好在from子句中定义好别名,否则可能出错

相关文章
相关标签/搜索