OCP 複習筆記之PL/SQL (2)
最近打算把9i 的OCP教程看一遍,作一些簡單的筆記,作為備忘。
PL/SQL看似簡單,但實際使用起來還是有很多技巧和誤區的。以下記錄的是複習過程中想到的、和容易出現錯誤的地方。
這些東西在教程大部分是沒有記載的。
第二章:查詢特定資料及排序
2.1 WHERE子句
1) WHERE子句的組成
WHERE子句由三部分組成:列名、比較符、列名或常量或其他值。
【注意】在WHERE子句中不能用欄位別名
2) WHERE中的字串
字串是由單引號括起來的,它是大小寫敏感的。
3) 日期
4) 操作比較符
Ø !=、^=、<>含義一樣,都表示不等於。
Ø Between...and...相當於a>=
Ø In可用於任意資料型別。在oracle內部,in操作會被轉換為a=
5) LIKE比較符
Ø %
匹配任意個字元。
Ø _
匹配單個字元
Ø LIKE只能用於字元型別的比較,但很多數字型別和日期型別也可能用,是因為oracle在執行時進行了資料型別的隱式轉換。
6) LIKE的轉義
當用LIKE進行查詢時,如果查詢條件包含有%或_,可以用ESCAPE轉義:
Select * from t where c1 like ‘%a_%’escape ‘’;
也可以把’’換成其他字元,如’y’,只需要把ESCAPE子句的相應跳脫字元也換成’y’:
Select * from t where c1 like ‘%ay_%’ escape ‘y’;
【注意】ESCAPE後連線的轉義符必須是長度為一的字元。
7) 運算子的優先順序
數學運算子->連線運算子(||)->比較運算子(=、>、->is null、like、in->[not] between...and...->not 邏輯條件->and 邏輯符->or 邏輯符
2.2 ORDER BY子句
1) 升序和降序
ASC:升序,是預設的排序方式。排序方式是:數值型別的話是從小到大、日期是從早期到晚期、字元型別是從A到Z;升序排序NULL會排在最後。(可以認為null為無窮大)
DESC:降序。排序方式剛好與ASC相反;降序排序NULL值會排在最前面。
2) ORDER BY子句的位置
ORDER BY 子句只能放在SQL語句的尾部,且子查詢裡不能出現ORDER BY子句(作為資料來源時可以出現order by,否則不能在子查詢中出現order by)。
SQL> select * from (select * from dual order by 1);--作為資料來源,可以用order by
SQL> select * from dual where dummy in (select dummy from dual order by 1);--作為子查詢,不可以用order by,否則出錯.
3) ORDER BY子句後接的可以是列名、別名、數字
4) 如果sql用到distinct時使用order by,則排序的列必須包含在select列表中 ,否則就會出現ORA-01791: 不是 SELECTed 表示式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63769/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OCP 複習筆記之PL/SQL (3)筆記SQL
- OCP 複習筆記之PL/SQL (5)筆記SQL
- OCP 複習筆記之PL/SQL (1)筆記SQL
- OCP 複習筆記之PL/SQL (4)筆記SQL
- PL/SQL學習筆記-2SQL筆記
- PL/SQL經典學習筆記(2-5)SQL筆記
- PL/SQL學習筆記-1SQL筆記
- PL/SQL學習筆記-3SQL筆記
- PL/SQL學習筆記-4SQL筆記
- PL/SQL學習筆記-5SQL筆記
- PL/SQL學習筆記-6SQL筆記
- [PL/SQL]10g PL/SQL學習筆記(一)SQL筆記
- [PL/SQL]10g PL/SQL學習筆記(二)SQL筆記
- [PL/SQL]10g PL/SQL學習筆記(三)SQL筆記
- PL/SQL學習筆記-總結SQL筆記
- 面試複習筆記三(sql)面試筆記SQL
- PL/SQL經典學習筆記(6-10)SQL筆記
- PL/SQL 學習日記SQL
- oracle學習筆記(十七) PL/SQL高階應用Oracle筆記SQL
- 史上最全的SQL Server複習筆記一SQLServer筆記
- 【OCP學習筆記】配置網路環境 -- 2筆記
- 程式設計之美複習筆記程式設計筆記
- Oracle之PL/SQL基礎學習OracleSQL
- oracle學習筆記(十五) PL/SQL語法結構以及使用Oracle筆記SQL
- Redis 複習筆記Redis筆記
- MyBatis複習筆記MyBatis筆記
- pl/sql練習SQL
- pl/sql 練習SQL
- 醫學資訊學(2)——複習筆記提綱筆記
- VC++深入詳解--之複習筆記(一)C++筆記
- VC++深入詳解--之複習筆記(二)C++筆記
- Oracle之PL/SQL基礎學習之二OracleSQL
- 複習電商筆記-1筆記
- C++複習筆記C++筆記
- JS複習個人筆記JS筆記
- 面試複習筆記(框架)面試筆記框架
- FFT & NTT 複習筆記FFT筆記
- SpringMVC複習筆記SpringMVC筆記