|
|
|
|
無論廠商所提供的 SQL 有何差異,一般的 SQL 語言都會提供以下三種基本語言:
|
|
資料定義語言(Data
Definition Language,DDL) |
|
資料操縱語言(Data
Manipulation Language,DML) |
|
資料控制語言(Data
Control Language,DCL) |
|
然而 ORACLE 除了以上三種 SQL
基本語言外,ORACLE 又把資料控制語言(Data Control Language) 更細分成:
|
|
異動交易處理指令(Transaction Control Command) |
|
連線會談期間控制指令(Session Control Command) |
|
系統控制指令(System Control Command) |
|
除以上三種外,ORACLE 為了加強 SQL
的功能,而增加了內嵌式 SQL 指令(EMB,Embedded SQL)。由於 SQL 本身並非程序化語言,大多的指令都是獨立執行,因此
ORACLE 在 SQL 語言中導入程序化語言的結構,因而產生了所謂的 PL/SQL 語言,另一方面將 SQL 語言嵌入 C、COBOL 或
FORTRAN 等高階語言,如 Pro*c、Pro*COBOL 等,利用這些語言的程序化特性達成連續執行的目的。 |
|
|
|
資料定義語言(Data Definition
Language,DDL) 的主要功用為:
|
|
新增、修改、刪除物件(Object) |
|
給予(Grant)、撤回(Revoke)、刪除(Drop)、權限(Privilege) 與角色(Role) |
|
建立系統稽核(Audit) 功能 |
|
在資料字典(Data
Dictionary) 中加入註解 |
|
Oracle 在執行以下的資料定義語言(DDL)
指令之前、後,都會自動地對資料庫做委付確認(Commit),此種因執行某指令而系統自動地執行的委付確認,稱之為內隱式委付確認(Implicit
Commit)。
|
|
|
用來處理與查詢綱要物件(Schema
Object) 的資料。這些 DML 指令並不會自動地做內隱式委付確認(Implicitly Commit)。 |
|
|
|
異動交易處理指令(Transaction Control Command) 的主要功用為:
處理 DML 指令在異動交易過程(Transaction) 中所做的修改。這些指令並不會自動地做內隱式委付確認(Implicitly
Commit)。
|
|
|
連線會談期間控制指令(Session Control Command) 的主要功用為:
它動態地控制使用者連線會談期間的特性。這些指令並不會自動地做內隱式委付確認(Implicitly Commit)。
|
|
|
系統控制指令(System Control Command) 的主要功用為:
它動態地管理 ORACLE 實例(ORACLE Instance) 的特性,這些指令不會自動地做內隱式委付確認(Implicitly
Commit)。
註:Instance 字在 ORACLE 系統有著特殊的含義,與一般作業系統(OS) 中所謂的 Service (服務) 相似。
|
|
|
內嵌式 SQL 指令的主要功用為:
它可將資料定義語言(Data Definition Language,DDL)、資料操縱語言(Data Manipulation
Language,DML)、異動交易處理指令(Transaction Control Command) 等指令放入程序化語言的程式中。
|
|