JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
SQL コマンド一覧 (SQL の種類)
構造化問い合わせ言語 SQL(えすきゅーえる、しーくえる、しーくぇる、しーける) とは Structured Query Language が語源。
その起源は IBM System R に実装された SEQUEL (しーくぇる、しーける(※1): Structured English QUEry Language) である。(1974 年〜 1977 年には現在の SQL の土台が既に完成している)
SQL の規格は ANSI によって 1992 年末にようやくメジャーバージョンとして標準化され現在では ISO でも認定されている。
標準 SQL 規格
SQL 92 : メジャーバージョン
SQL 99 : オブジェクト指向を取り入れる
SQL 2003 : XML 連携
(※1) SEQUEL は英語の sequel (結果=検索結果)にあてた洒落た略語です。
略語にはよくある事ですが、日本ではその発音とは異なった読み方がされています。
ルーツがわからないので和風読みになっただけかもしれません。
日本の一部のユーザーでも SQL : シークェル派が少なくないようです(えすきゅーえる は日本仕様?(※2)
GNU(GNU's Not UNIX):も似たようなものなのでしょうか。ヌーでなくグニューと読んでくださいと 公式ページ で主張しています。
(※2) 原文(Oracle 10g) では「SEQUEL later became SQL (still pronounced "sequel")」 発音はそのままですよ。
と書かれています。(Oracle 8i あたりの日本語訳から意思をもって削除しているように見える… JIS で えすきゅーえる と読みなさいと言っていたかも)
また Oracle マイナートリビア?として、昔のそのまた昔 Oracle では IBM に対抗して SQL とは呼ばず UFI (user-Friendly-Interface) と読んでいたらしく、今でも良く目にする EDIT コマンド の保存ファイル名 afiedt.buf にその名残りがある。
データ定義言語 / DDL (Data Definition Language)
DDL ができること
スキーマ オブジェクト の作成、変更および削除
( CREATE、DROP 、TRUNCATE、ALTER(※1) 、etc)
権限およびロールの操作 (GRANT、REVOKE)
スキーマ オブジェクトの分析 (ANALYZE(※2))
監査の定義 (AUDIT)
スキーマへのコメントの追加(COMMENT)
(※1) ALTER SESSION (および SET ROLE)、ALTER SYSTEM は、それぞれ セッション制御文 、システム制御文 という特別な位置付けがされている。
そして双方とも DDL の特徴である 暗黙コミット が発生しないため DDL ではないか、または、例外事項と思われる。
(※2) DBMS_STATS パッケージはストアドパッケージなので、DDL とは呼べないが、実験してみたところ、
先行したトランザクションを ロールバック できなかったので、どこかでコミットはされている。 自律型トランザクション のプロシージャではないようである。(Oracle 10g 時点)
SQL DDL コマンド一覧
ALTER 〜 すべて (=セッション、システム制御文を含むかどうかわかりません)
ANALYZE
ASSOCIATE STATISTICS / DISASSOCIATE STATISTICS
AUDIT
COMMENT
CREATE 〜 すべて
DROP 〜 すべて
TRUNCATE
FLASHBACK 〜 すべて
PURGE
RENAME
GRANT
REVOKE
NOAUDIT
データ操作言語 / DML (Data Manipulation Language)
Oracle において DML とは Data ( access and ) Manipulation Language となっている。
SQL DML コマンド一覧
データ制御言語 / DCL (Data Control Language)
Oracle のマニュアルにおいて DCL という文言は(おそらく)存在していない。
何故かは知りませんが推測すると DCL 表記(標準SQL「しばり」)を Oracle を持ち込んでしまうと Oracle 固有の命令も含まれたりして「美しくない」&「後追いの標準によって面倒」なことになってしまうのを避けているのだろう。
DCL とは 標準SQLや他のベンダの DBMS をみると GRANT、REVOKE、トランザクション制御文と記されてるドキュメントが多いです。
ちなみに Oracle では GRANT、REVOKE は 「Data Definition Language 文」 に含まれ、COMMT や ROLLBACK は「トランザクション制御文 」である。つまり、どちらのコマンドも DCL の一部という表記もありません。
トランザクション制御文
トランザクション 制御文
COMMIT
ROLLBACK
SET TRANSACTION
SAVEPOINT
セッション制御文 ( ALTER SESSION / SET ROLE )
セッションのプロパティを設定する。(暗黙コミットは発生しない)
ALTER SESSION
ADVISE { COMMIT|ROLLBACK | NOTHING }
CLOSE DATABASE LINK dblink
{ ENABLE | DISABLE } COMMIT IN PROCEDURE
{ ENABLE | DISABLE } GUARD
{ ENABLE | DISABLE | FORCE } PARALLEL { DML | DDL |QUERY} [ PARALLEL integer ]
ENABLE RESUMABLE [ TIMEOUT integer ] [ NAME string ]
DISABLE RESUMABLE
SET parameter = value [, value , ...]
SET ROLE
NONE
ALL [ EXCEPT { role | role_list } ]
role IDENTIFIED BY password
システム制御文 ( ALTER SYSTEM )
インスタンスのプロパティを設定する。(暗黙コミットは発生しない)
ALTER SYSTEM
ARCHIVE LOG 〜
CHECKPOINT [ GLOBAL | LOCAL ]
CHECK DATAFILES [ GLOBAL | LOCAL ]
{ ENABLE | DISABLE } DISTRIBUTED RECOVERY
ALTER SYSTEM セッション操作
DISCONNECT SESSION ' SID , SERIAL# ' [ POST_TRANSACTION ] [ IMMEDIATE ] (※)
KILL SESSION ' SID , SERIAL# ' [ IMMEDIATE ]
(※) SID , SERIAL# は V$SESSION における値を指定する。
ALTER SYSTEM データベースの静止(≠停止)
QUIESCE RESTRICTED
UNQUIESCE
ALTER SYSTEM セキュリティ設定
{ ENABLE | DISABLE } RESTRICTED SESSION
SET ENCRYPTION 〜
ALTER SYSTEM ディスパッチャー停止
SHUTDOWN [ IMMEDIATE ] dispatcher_name
ALTER SYSTEM 初期化パラメータ設定 、リセット
SET parameter = value [, value , ...] [ COMMENT = string ] [ DEFERRED ]
[ SCOPE = {SPFILE | MEMORY | BOTH } ] [ SID = {'*' | sid } ]
RESET parameter
[ SCOPE = {SPFILE | MEMORY | BOTH } ] [ SID = {'*' | sid } ]
埋め込み SQL 文
Pro*C や Pro*COBOL のプログラムソースコード中に書かれている EXEC SQL 〜 などの事。(Embedded SQL / ESQL)