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)注意通配符的位置,放錯地方,可能會返回意外的數據