今天要來探討SQL裡面的SELECT
SELECT 是資料庫查詢指令
使用如下
SELECT 顯示欄位 FROM 資料表 WHERE 條件 HAVING 條件二 order by 排序
一定要按照順序
- SELECT.
- FROM(來源)
- WHERE(條件)
- Group by (群組)
- HAVING(條件二)
- order by(排序)
只要順序錯了,就算內容打對了也會錯
使用方式如下
- 基本查詢: SELECT * FROM db1 where a>0
- 關聯查詢: SELECT * FROM DB ,DB2 WERE DB.A=DB2.A (效能差)
- 關聯查詢2: SELECT * FROM DB LEFT OUTER JOIN DB2 ON DB.A=DB2.A (效能好)
WHERE 條件式=>對欄位的篩選
條件式
- and(跟)
- or(或)
- BETWEEN(之間)
- NOT 非
- xor 互斥
應用如下:
- 數字型1 : WHERE A>0
- 數字型2 : WHERE A!=0
- 文字形 1: WHERE A=’TEST’ (內容是TEST)
- 文字形2: WHERE A LIKE ‘%TEST%’ (有包括TEST的內容,用%代表那裏不管有多少字或是什麼字)
- 空值型: WHERE A IS NULL WHERE A=NULL
- 非空值 : WHERE A IS NOT NULL
- 多值型1: WHERE A IN (1,2.3) (代表內容要=1或2或3,當然也可以放select語句如下)
- 多值型2: WHERE A IN (SELECT A FROM A>0) (這樣會把A>0的放入IN中)
- 日期型1: WHERE aDATE>’2010-01-01′ and aDATA<=’2017-01-31′ (抓這日期區間內的資料)
- 日期型2: WHERE aDATE BETWEEN ‘2010-01-01’ AND ‘2017-01-31’ (效果一樣)
排序
order by
用來排序搜尋結果
DESC:由大到小(Z~A 9~1)
ASC : 由小到大(A~Z 1~9)
範例: order by a desc,b asc