SQL が 4 つのタイプに分類されることを多くの人が議論しているのを目にしました。ここでその知識を広め、それぞれの違いをまとめてみましょう。
1. DDL – データ定義言語
データベース定義言語: データベースの構造を定義します。
主なコマンドはCREATE,ALTER,DROP
などで、以下に例を挙げて詳しく説明します。この言語はコミットを必要としないため、注意が必要です。
CREATE – データベースにオブジェクトを作成します データベースにオブジェクトを作成します
例:
リーリー
ALTER – データベースの構造を変更します データベース構造を変更します
例:
リーリー
DROP – データベースからオブジェクトを削除します データベースからオブジェクトを削除します
例:
リーリー
その他:
TRUNCATE
– テーブルの内容を切り捨てる (開発期間中に非常に一般的)
COMMENT
– データ辞書にメモを追加します
2. DML – データ操作言語
データベース操作言語:SQLでデータベース内のデータを処理する
主なコマンドとしては INSERT,UPDATE,DELETE
などが挙げられます。これらの例は誰でもよく使うものなので、一つずつ紹介することはしません。この言語にはコミットが必要です。よく使用される LOCK TABLE もあります。
他にも見慣れないものがあります:
CALL
– PL/SQL または Java サブルーチンを呼び出します
EXPLAIN PLAN
– データアクセスパスの分析と分析
3. DCL – データ制御言語
データベース制御言語: 認可、ロール制御など
GRANT
– ユーザーにアクセスを許可します
REVOKE
– 承認を撤回します
4. TCL – トランザクション制御言語
トランザクション制御言語
COMMIT
– 完了した作業を保存します
SAVEPOINT
– トランザクションにセーブポイントを設定すると、そこにロールバックできます
ROLLBACK
–ロールバック
SET TRANSACTION
– 取引オプションを変更します
例: Java の JDBC はトランザクションのサポートをカプセル化します。たとえば、最初に新しいテーブル test
を作成します。test.sql
リーリー
JDBC トランザクション ロールバックの最初の例 - JDBC データベース トランザクション ロールバック:
リーリー
19 行目: トランザクション分離レベルは SERIALIZABLE に設定されており、基礎となる呼び出しは TCL 言語の SET TRANSACTION です。
22行目: 実行パス、データの挿入23 行目: 実行は失敗し、主キー 4 のレコードは存在せず、例外が直接スローされます
31 行目: トランザクションのロールバック、TCL ステートメントの ROLLBACK がカプセル化されています
JDBC トランザクション ロールバックの 2 番目の例 - JDBC データベース トランザクション ロールバック、特定のセーブ ポイントへのロールバック:
リーリー最初の例と重複するものについては言及しません。
9行目: セーブポイントを宣言します
24行目: セーブポイントセット
33 行目: このセーブポイントまでトランザクションをロールバックします
上記のコードには、TCL 言語の SAVEPOINT が含まれています
最後に、まとめた画像を以下に示します: (SELECT は DQL に属します)
この記事が SQL を学習するすべての人に役立つことを願っています。