本文へスキップ
BecomeCoder

SQL テーブル設計 (DDL)コース · 第0章 テーブル設計の全体像 · レッスン0-2

SQL の地図と DDL の位置

ブラウザで完結

導入

SQL の命令はたくさんありますが、役割で整理すると迷子になりません。このコースが扱う DDL が、その地図のどこにいるのかを先に押さえましょう。

説明

SQL の命令は、役割によっておおまかに5つに分かれます。

flowchart TB
    SQL["SQL の命令"]
    SQL --> DQL["DQL(問い合わせ)<br/>SELECT"]
    SQL --> DML["DML(データ操作)<br/>INSERT / UPDATE / DELETE"]
    SQL --> DDL["DDL(データ定義)★このコース<br/>CREATE / ALTER / DROP"]
    SQL --> TCL["TCL(トランザクション制御)<br/>COMMIT / ROLLBACK"]
    SQL --> DCL["DCL(権限制御)<br/>GRANT / REVOKE"]
分類何をする代表的な命令学ぶ場所
DQLデータを取り出すSELECT姉妹コース「SQL データ操作(DML)」
DMLデータを変えるINSERT UPDATE DELETE姉妹コース「DML」
DDL表を設計・定義するCREATE ALTER DROP本コース
TCL変更を確定/取消COMMIT ROLLBACK姉妹コース「DML」
DCL権限を管理するGRANT REVOKE本コース 第6章

このコースが扱うのは、表そのものを作る・変える・消す DDL(と、権限を扱う DCL)です。データを入れる前の「設計図づくり」にあたります。RDB は「自分がどんな表を持っているか」という設計情報まで、DB 自身の中に持っています。SQLite ではそれを sqlite_master という特別な表で覗けます。

SELECT name FROM sqlite_master WHERE type = 'table';

やってみよう

初期表示のクエリを実行し、このショップ DB に入っている5つのテーブルの名前が並ぶことを確認しましょう。type = 'table'type = 'index' に変えると、張られている索引の一覧も見られます(DB が自分の設計を抱えている、という感覚をつかんでください)。

演習

sqlite_master から、テーブルの「設計図そのもの(作成時の SQL)」を見てみましょう。name の代わりに sql 列を取り出してください(SELECT sql FROM sqlite_master WHERE type = 'table';)。各テーブルの CREATE TABLE 文が出てきます。

ヒント1を見る

SELECT sql FROM sqlite_master WHERE type = 'table';

実際に動かしてみよう

下のエディタにクエリを書いて「実行」を押すと、ブラウザ内のSQLiteで結果が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう。

SQL — ブラウザ内で実行(SQLite)

ブラウザ内でSQLを動かす環境(SQLite)を読み込みます(初回のみ一瞬)。
スクロールして表示された時点でも自動で読み込まれます。