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子句中定義好別名,否則可能出錯

相關文章
相關標籤/搜索