連接查詢,子查詢,聯合查詢


一,連接查詢

1

.交叉連接查詢

這種查詢方式基本不會使用,原因就是這種查詢方式得到的是兩個表的乘積(笛卡兒集)

語法就是select * from a,b;

2.

內連接查詢,可以有效的去除笛卡爾集現象

內連接查詢分為兩類:

隱式內連接 select * from A,B where 條件隱式連接使用別名:select * from A 別名1,B 別名2 where 別名1.xx=別名2.xx;顯示內連接 select * from A inner join B on 條件 (inner可以省略)顯示連接使用別名: select * from A 別名1 inner join B 別名2 on 別名1.xx=別名2.xx

3.

外連接

外連接有兩種方式,一種是左外連接,一種是右外連接

左外連接:select * from A left outer join B on條件右外連接:select * from A right out join B on 條件左外連接就是左邊的表的內容全部顯示,然后匹配右邊的表,如果右邊的表匹配不到,則空右外連接就是右邊的表的內容全部顯示,然后匹配左邊的表,如果左邊的表匹配不到,則空

總結:

內連接就是兩個表的交集

左外連接就是左邊表加兩表交集

右外連接就是右邊表加兩表交集

二,子查詢

定義:

  子查詢允許把一個查詢嵌套在另一個查詢當中。

 

  子查詢,又叫內部查詢,相對於內部查詢,包含內部查詢的就稱為外部查詢內部查詢,包含內部查詢的就稱為外部查詢。內部查詢,包含內部查詢的就稱為外部查詢。

 

  子查詢可以包含普通select可以包括的任何子句,比如:distinct、 group by、order by、limit、join和union等;但是對應的外部查詢必須是以下語句之一:select、insert、update、delete、set或 者do。

使用IN進行子查詢

in的基本語法形式為:

where  操作數  in (1,值2....

in子查詢就是:

where  操作數  in ( 列子查詢 );

  使用in進行子查詢,這個我們在日常寫sql的時候是經常遇到的。in的意思就是指定的一個值是否在這個集合中,如何在就返回TRUE;否則就返回FALSE了。

  in是“=any”的別名,在使用“=any”的地方,我們都可以使用“in”來進行替換。

  有了in,肯定就有了not in;not in並不是和<>any是同樣的意思,not in和<>all是一個意思。

三,聯合查詢

聯合查詢就是將兩個select語句的查詢結果“層疊”到一起成為一個“大結果”。

兩個查詢結果的能夠進行“聯合”的先覺條件是:結果字段數相等。

關鍵字:union

 

 

  子查詢的位置:
    select 中、from 后、where 中.group by 和order by 中無實用意義。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM