SQLを分類して整理、記憶する

SQL

知識を整理、記憶するためには「分類する」という手法はたいへん役立ちます。

特にSQLは命令文を分類しやすい言語で、分類することで覚えやすくなります。

SQLの分類

SQLの命令は次の4種類に大別されます。

  • DDL(Data Definition Language)
    • データベースやテーブルそのものを定義(define)するための言語です。新規に作成したり、変更、削除するための命令で構成されます。
  • DML(Data Manipulation Language)
    • 各テーブルのデータを操作(manipulate)するための命令です。データの挿入(INSERT)、読み取り(SELECT)、更新(UPDATE)、削除(DELETE)といった命令で構成されます。
  • DCL(Data Control Language)
    • DDL、DMLの利用権限を制御(control)するための命令です。アクセス権の付与(GRANT)、アクセス権の剥奪(REVOKE)といった命令で構成されます。
    • DCLは、対象のデータベースに対する全権限を持つユーザー(admin/administrator)のみが使用できます。
  • TCL(Transaction Control Language)
    • トランザクションを制御(control)するための命令です。トランザクションとは、「一連の処理グループ」で、処理の途中で止まる、あるいは終わってしまった場合にシステムに支障をきたす性質の複数の処理群を、1つにまとめて管理するための仕組みです。
    • 一連の処理による更新を確定させる(COMMIT)、途中まで進んだ処理を取り消す(ROLLBACK)といった命令で構成されます。

分類ごとの主な命令一覧

DDL(Data Definition Language)

データベースやテーブルそのものを定義(define)するための言語です。

命令説明
CREATEデータベース、テーブルを新規に作成する。
DROPデータベース、テーブルを削除する。
ALTERテーブル、ビューの定義を変更する。
TRUNCATE対象テーブルのデータをすべて削除する。
RENAME対象テーブルの名前を変更する。

DML(Data Manipulation Language)

各テーブルのデータを操作(manipulate)するための命令です。次の4つの命令は確実に覚えておく必要があります。

命令説明
INSERTテーブルに新規レコードを挿入する。
SELECTテーブルからレコードを抽出する。
UPDATEテーブルの対象レコードを更新する。
DELETEテーブルの対象レコードを削除する。

これらの命令は「CRUD」と総称されます。

  • INSERT 👉 レコードを新たに作る「CREATE」の「C」
  • SELECT 👉 レコードを読む「READ」の「R」
  • UPDATE 👉 レコードを更新する「UPDATE」の「U」
  • DELETE 👉 レコードを削除する「DELETE」の「D」

INSERTやSELECTは命令文と異なる単語が使われていてややこしいですね。特にINSERTを表すCREATEはDDLの命令にもあるため混乱しやすく注意が必要です。

DCL(Data Control Language)

命令説明
GRANTユーザー/ユーザーグループにアクセス権を付与する。
REVOKEユーザー/ユーザーグループからアクセス権を剥奪する。

TCL(Transaction Control Language)

命令説明
BEGIN TRANSACTIONトランザクションを開始する。
COMMITトランザクションによる更新を確定させる。
ROLLBACKトランザクション処理を取り消す。
SET TRANSACTIONトランザクションの特性を設定する。
SAVEPOINTトランザクション内に設定する特別な印(※1)で、主にロールバック時に利用する。

※1)SAVEPOINTの意味は、使用するDBMS(データベース・マネージメント・システム)により変わります。

Oracleの場合は説明通り「印」を表し、「EXEC SQL SAVEPOINT start_delete;」のように命令の目的語として使用します。

MySQLでは SAVEPOINT そのものが命令文です。

まとめ

今回は、SQLの数ある命令文を4つに分類することで、理解・記憶しやすく整理しました。

特に前半の2つ「DDL」と「DML」は、初心者の内からしっかり覚えて使いこなせるようにすることをお勧めします。

本記事についての質問、誤りの指摘、ご意見ご感想などありましたら、ぜひコメント頂ければ幸いです。

それでは、最後までお読みいただき、ありがとうございます。

コメント

タイトルとURLをコピーしました