6-1 導論在80年代,鑑於各種DBMS所使用的資料庫語言差異頗大,對資料庫程式設計師造成諸多不便且影響資料整合。ANSI和ISO便攜手共同制訂資料庫語言的標準,以下為SQL發展歷史:
1986年提出--SQL-86 --> 1989年提出--SQL89 --> 1992年提出--SQL92(SQL2) --> 1999年提出--SQL99(SQL3) |
6-2 SQL的關聯模式
SQL還是對關聯模式作了些許的變更,其差異點如下:
- SQL利用較通俗的名詞來稱呼關聯模式所定義的嚴謹數學名詞。如:
- 不稱關聯(Relation),改稱資料表(Table)。
- 不稱序列值(Tuple),改稱記錄(Record)或列(Row)。
- 不稱屬性(Attribute),改稱欄位(Field)或行(Column)。
- SQL的資料表綱目裡可以不定義主鍵(Primary key)。
- SQL的資料表綱目裡可以有兩筆記錄是一樣的。(請注意在關聯裡不可以有兩筆序列值是一樣的)
- 資料表中的記錄是有次序的。(請注意在關聯裡的序列值是沒有次序的)
- 主鍵值可以為空值。
- SQL查詢語法融合了關聯代數和關聯邏輯計算式。
為支援關聯模式,SQL提供了三種語言:
- 資料定義語言(Data definition language,簡稱DDL) => 利用DDL,使用者可以定義資料表(也就是關聯綱目)和設定完整限制。當然也提供對這些定義和設定進行修改的語法。
- 資料處理語言(Data manipulation language,簡稱DML) => 利用DML,使用者可以對資料表裡的記錄作查詢、新增、修改和刪除。
- 資料控制語言(Data control language,簡稱DCL) => 利用DCL,使用者可以設定帳號對資料表的使用權限、執行交易(Transaction)等。
6-3 SQL的資料定義語言(DDL)
|
|