様々な種類のSQL文
次の項にあるリストは、SQL文の機能の概要について、次のカテゴリに分類して説明しています。
データ定義言語(DDL)文
データ定義言語(DDL)文によって、次のタスクを実行できます。
-
スキーマ・オブジェクトの作成、変更および削除
-
権限およびロールの付与および取消し
-
表、索引またはクラスタ上の情報の分析
-
監査オプションの構築
-
データ・ディクショナリへのコメントの追加
CREATE
、ALTER
およびDROP
コマンドは、特定のオブジェクトに対して排他的アクセスを必要とします。たとえば、別のユーザーが特定の表でトランザクションをオープンしている場合、ALTER
TABLE
文は実行できません。
GRANT
、REVOKE
、ANALYZE
、AUDIT
およびCOMMENT
コマンドは、特定のオブジェクトに対する排他的アクセスを必要としません。たとえば、他のユーザーが表を更新しているときでも、その表を分析できます。
Oracle Databaseは、暗黙的にすべてのDDL文の前後で現在のトランザクションをコミットします。
DDL文はブロッキングまたは非ブロッキングのいずれかで、どちらのタイプのDDL文にも内部構造の排他ロックが必要です。
関連項目:
ブロック化DDLと非ブロック化DDLの相違について学習するには、『Oracle Database開発ガイド』を参照してください。
DDL文の多くは、Oracle Databaseにスキーマ・オブジェクトを再コンパイルまたは再認可させることができます。Oracle Databaseがスキーマ・オブジェクトを再コンパイルまたは再認可する方法、およびDDL文によってそれを実行する環境については、『Oracle Database概要』を参照してください。
DDL文は、DBMS_SQL
パッケージを使用したPL/SQLによってサポートされます。
関連項目:
このパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
次に、DDL文を示します。
ALTER
(ALTER
SESSION
およびALTER
SYSTEM
を除くALTER
で始まるすべての文。「セッション制御文」および「システム制御文」を参照)ANALYZE
ASSOCIATE
STATISTICS
AUDIT
COMMENT
CREATE
... (CREATE
で始まるすべての文)DISASSOCIATE
STATISTICS
DROP
... (DROP
で始まるすべての文)FLASHBACK
... (FLASHBACK
で始まるすべての文)GRANT
NOAUDIT
PURGE
RENAME
REVOKE
TRUNCATE
データ操作言語(DML)文
データ操作言語(DML)文は、既存スキーマ・オブジェクトのデータにアクセスし、操作します。次の文は、現在のトランザクションを暗黙的にコミットしません。次に、データ操作言語文を示します。
CALL
DELETE
EXPLAIN PLAN
INSERT
LOCK TABLE
MERGE
SELECT
UPDATE
SELECT
文は、DML文の制限された形式であり、データベース内のデータへのアクセスのみが可能です。アクセスしたデータを操作してから問合せの結果を戻すことはできますが、データベースに格納されたデータを操作することはできません。
SELECT
文は、動的に実行されるときにのみPL/SQLでサポートされます。ただし、類似のPL/SQL文SELECT
INTO
をPL/SQLコード内で使用でき、この文は動的に実行する必要はありません。CALL
およびEXPLAIN
PLAN
文は、動的に実行されるときにのみPL/SQLでサポートされます。他のすべてのDML文は、PL/SQLで完全にサポートされます。
トランザクション制御文
トランザクション制御文は、DML文で行った変更を管理します。次に、トランザクション制御文を示します。
COMMIT
ROLLBACK
SAVEPOINT
SET
TRANSACTION
SET
CONSTRAINT
COMMIT
およびROLLBACK
コマンドの特定書式以外のトランザクション制御文は、PL/SQLでサポートされます。制限については、「COMMIT」および「ROLLBACK」を参照してください。
システム制御文
唯一のシステム制御文であるALTER
SYSTEM
は、Oracle Databaseインスタンスのプロパティを動的に管理します。この文によって、現行トランザクションが暗黙的にコミットされることはなく、この文はPL/SQLではサポートされません。