MySQLで使われるSQLコマンドの種類とは?DML・DDL・DCL・TCLをわかりやすく解説
SQL言語は、その役割によって「DML」「DDL」「DCL」「TCL」という4種類のステートメントに分類されます。これらのコマンドを使い分けることで、データベースやテーブルの構造を定義・変更したり、テーブル内のデータを挿入・更新・削除したり、ユーザーのアクセス権限を制御したり、トランザクションを管理してデータの一貫性を保ったりすることができます。
本記事では、MySQLでよく使用される4つの主要カテゴリのSQLコマンドについて、それぞれの役割と代表的なステートメントを詳しく解説します。
DML(Data Manipulation Language/データ操作言語)
DMLは、テーブル内のレコード(行データ)を操作するためのステートメントです。データベース操作の中でも最も頻繁に使われる基本コマンド群であり、テーブルから特定のレコードを取得したり、新しいレコードを追加したり、不要なレコードを削除したり、既存のレコードを更新・修正したりする際に使用します。
代表的なDMLステートメントは以下の通りです。
- SELECT – テーブルからレコードを検索・取得する
- INSERT – 新しいレコードを挿入する
- UPDATE – 既存のレコードを更新・修正する
- DELETE – 既存のレコードを削除する
DDL(Data Definition Language/データ定義言語)
DDLは、データベースやテーブルの構造・スキーマを作成または変更するためのステートメントです。テーブルやデータベースオブジェクトの設計、およびその保存形式を扱うコマンドが含まれます。
代表的なDDLステートメントは以下の通りです。
- CREATE – 新しいテーブル、データベース、スキーマを作成する
- ALTER – 既存のテーブルやカラムの定義を変更する
- DROP – データベースから既存のオブジェクトを削除する
DCL(Data Control Language/データ制御言語)
DCLは、データベースオブジェクトに対するユーザーのアクセスレベルを制御するためのステートメントです。誰がどのデータに対して読み書きできるかを管理することで、セキュリティの維持に重要な役割を果たします。
代表的なDCLステートメントは以下の通りです。
- GRANT – 特定のデータベースオブジェクトへの読み書き権限をユーザーに付与する
- REVOKE – ユーザーから読み書き権限を取り消す
TCL(Transaction Control Language/トランザクション制御言語)
TCLは、トランザクションを制御・管理するためのステートメントです。複数のSQL処理をひとまとまりの作業単位として扱い、途中でエラーが発生した場合に処理を取り消すことで、データの整合性を保つことができます。
代表的なTCLステートメントは以下の通りです。
- BEGIN TRANSACTION – トランザクションを開始する
- COMMIT TRANSACTION – トランザクションの変更内容を確定する
- ROLLBACK TRANSACTION – エラー発生時にトランザクションをロールバック(取り消し)する
このように、SQLのコマンドは目的別に4つのカテゴリに整理されています。それぞれの役割を理解しておくことで、MySQLでのデータベース設計や運用をより効率的かつ安全に行えるようになります。
-
Java 9のJShellで使える「/edit」コマンドの種類と使い方
JShellは、Java 9で導入されたコマンドラインツールです。main()メソッドを用意しなくても、宣言・ステートメント・式をその場で評価できるのが大きな特徴です。さらに、JShellにはJShell Edit Padという簡易テキストエディタが組み込まれており、「/edit」コマンドで起動することで、入力済みのコードを手軽に編集できます。 /editコマンドの3つの形式 JShellで利用できる「/edit」コマンドには、次の3つの形式があります。 /edit /edit [ID] /edit [コード名] /edit:引数なしで実行すると、現在アクティブなすべてのコードがテキストエデ
-
Java 9のJShellで使える「/types」コマンドの種類と使い方を解説
JShellとは JShellはJava 9で新たに導入されたツールで、REPL(Read-Evaluate-Print-Loop:読み込み・評価・出力・ループ)とも呼ばれます。このツールを使うと、Javaコードを記述しながらその場ですぐに実行結果を確認できるため、学習やプロトタイピングに非常に便利です。 JShell上で宣言済みの型(クラス、インターフェース、enumなど)を一覧表示したい場合は、「/types」コマンドを使用します。 「/types」コマンドの種類 「/types」コマンドには、以下のようなバリエーションがあります。 /types /types [ID] /types [