Top > SQL 入門 > SQL の種類

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)

 



日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ 会員制(無料)の公式技術サイト