1、SELECT基本語句: 2、檢索所有欄位,用"*"替換欄位名,這會導致效率低下 3、去除重覆項,“DISTINCT”作用於所有欄位 4、若檢索結果過多,可限定結果的條數 5、對檢索出的數據進行排序,ASC為升序,也為預設排序方式;DESC為降序。ORDER BY 語句一定是最後一條語句。如果不排 ...
1、SELECT基本語句:
SELECT 欄位名1,···,欄位名n FROM 表名
2、檢索所有欄位,用"*"替換欄位名,這會導致效率低下
SELECT * FROM 表名;
3、去除重覆項,“DISTINCT”作用於所有欄位
SELECT DISTINCT 欄位名1,···,欄位名n FROM 表名;
4、若檢索結果過多,可限定結果的條數
SELECT 欄位名 FROM 表名 WHERE ROWNUM<=n;
5、對檢索出的數據進行排序,ASC為升序,也為預設排序方式;DESC為降序。ORDER BY 語句一定是最後一條語句。如果不排序,那麼不能認為檢索出的數據的順序有任何意義
SELECT 欄位名 FROM 表名 ORDER BY 欄位名1 ASC|DESC,```,欄位名n ASC|DESC;
6、WHERE 子句,操作符如下,語法都為:WHERE 欄位名 操作符 值;註意Oracle至少預設不支持“!<”和“!>”
操作符 | 說明 | 操作符 | 說明 |
= | 等於 | ||
!= | 不等於 | <> | 不等於 |
< | 小於 | > | 大於 |
<= | 小於等於 | >= | 大於等於 |
BETWEEN AND | 雙側閉區間 | IS NULL | 空值 |
7、WHERE子句的多條件過濾——AND,多個子條件同時滿足
WHERE 子條件1 AND ··· AND 子條件n
8、WHERE 子句的多條件過濾——OR,滿足任意一個條件
WHERE 子條件1 OR ···OR 子條件n
9、WHERE子句——IN操作符,滿足IN的任意個值,與OR類似,但有如下優點:語法更清楚直觀;更易管理求值順序;比一組OR執行快;可以包含其他SELECT語句,能動態建立WHERE子句。
WHERE 欄位名 IN(值1,···,值n)
10、NOT操作符:否定其後面的條件。在複雜語句中,NOT非常有用
WHERE NOT 條件;
11、AND的求值優先順序高於OR,可以用"()"改變優先順序
12、模糊匹配Like操作符,通配符——“%”,匹配0~n個字元;“_”,匹配一個字元。特別註意:Oracle會用空格來補全欄位,最好是用TRIM()、RTRIM()、LTRIM()去掉空格
WHERE 欄位名 LIKE ‘帶%的字元串’
13、《SQL必知必會》降到了“[]”通配符,但是Oracle貌似不支持,或者說預設不支持,待學到後面確定了再改這條。
14、關於通配符:(1)不要過度使用通配符,(2)通配符不要放在開始處,會非常慢,(3)註意通配符的位置,放錯地方,可能會返回意外的數據