OCP 複習筆記之PL/SQL (1)

space6212發表於2019-04-16

最近打算把9i 的OCP教程看一遍,作一些簡單的筆記,作為備忘。

PL/SQL看似簡單,但實際使用起來還是很很多技巧和誤區的。以下記錄的是複習過程中想到的、和容易出現錯誤的地方。

這些東西在教程大部分是沒有記載的。

第一章:編寫基本的SQL語句


1.1 SELECT語句

1) 基本語法

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table;

2) 幾個需要注意的地方

Ø 如果SQL語句中需要用到DISTINCT,則該關鍵字只能出現在緊接著SELECT的地方(在聚合函式中使用除外)

Ø SQL語句一般不區分大小寫,但包含在單引號中的字元是區分大小寫的。

1.2 幾個概念

1) KEYWORD

關鍵字,如selectwherefrom等。

2) CLAUSE

子句。包括select子句、where子句、from子句、order by子句、group by子句、having子句等。如

select id,count(1) from t where id=1 group by id having count(1)>0 order by id;

每一個顏色代表一個子句。

3) STATEMENT

完整的SQL句子。

1.3 SQL的幾個規則(有些不是必須,但為了可讀性強最好遵循)

1) 關鍵字大寫,其他小寫

2) 縮排

3) 同一個關鍵字或欄位名、列名不能寫在兩行中。

1.4 算術表示式

1) 算術表示式可以包含列名、數值、算術運算子

2) 算術表示式可用於除from子句以外的所有子句

1.5 空值NULL

1) NULL不等於0,也不等於’’NULLNULL也不相等。

NULL=NULLNULL<>NULL都不成立。

2) 只有NOT NULL和主鍵可以避免NULL值;UNIQUE約束下列也可以包含一個或多個NULL值。

3) 判斷一個某表示式是否為NULL,只能用EXPR IS NOT NULL的形式,不能用EXPR=NULL

1.6 欄位別名

1) 包含了空格或其他特殊字元的別名要用雙引號括起來。

2) 可以用AS關鍵字定義別名,也可以不用

3) 如果在定義別名時不加雙引號,則別名在顯示時(heading)時會把別名全部轉換為大寫;如果加了雙引號,則在顯示時與包含在雙引號中的內容是一樣的。

4) 別名可以用於同層的order by子句中,但不能用於同層的where子句、group by子句中。

1.7 DISTINCT關鍵字

1) 如果SQL語句中需要用到DISTINCT,則該關鍵字只能出現在緊接著SELECT的地方(在聚合函式中使用除外)

2) 如果DISTINCT關鍵字後接了多個欄位,則ORACLE會對這些欄位的組合進行唯一性過濾。

1.8 SQLiSQL*PLUS

1) SQL是語言,iSQL*Plus是工具

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63768/,如需轉載,請註明出處,否則將追究法律責任。

相關文章