0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テスト1

Last updated at Posted at 2025-04-17

Sakilaデータベースで使える調査系SQLまとめとJOIN準備の基本

Sakilaデータベースを使って、テーブル構造の調査やJOIN設計に役立つSQLをまとめておく。
JOINを書く前にどのテーブルがどこに接続されているかを確認することで、ミスを減らして設計をスムーズに進められる。


✅ よく使う調査系SQLコマンド一覧

1. テーブル一覧を確認する

SHOW TABLES;

2. テーブルのカラム構造を確認する

DESCRIBE テーブル名;
-- 例:
DESCRIBE actor;

主キー、データ型、NULL制約などを確認できる。
3. CREATE TABLE の定義を確認する

SHOW CREATE TABLE テーブル名;
-- 例:
SHOW CREATE TABLE payment;

外部キー制約やインデックス、デフォルト値なども含めてすべての定義を確認できる。
4. 外部キーの一覧を確認する(JOIN設計の地図)

SELECT 
  TABLE_NAME, 
  COLUMN_NAME, 
  REFERENCED_TABLE_NAME, 
  REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE 
  TABLE_SCHEMA = 'sakila'
  AND REFERENCED_TABLE_NAME IS NOT NULL;

どのテーブルがどこを参照しているかを一覧で確認できる。
5. 全テーブル・全カラムの一覧を確認する

SELECT TABLE_NAME, COLUMN_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'sakila';

カラム名のあいまいな記憶を補うのに便利。
6. インデックスを確認する(パフォーマンス対策)

SHOW INDEX FROM テーブル名;

または:

SELECT * FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'sakila';

7. テーブルのレコード数を確認する

SELECT COUNT(*) FROM テーブル名;

テーブルの規模感を知っておくことでJOINのパフォーマンス見積もりにも使える。
🔁 JOINを書く前のチェックリスト

    SHOW TABLES; で全体像を把握する

    DESCRIBE テーブル; で主キーの確認

    SHOW CREATE TABLE で外部キー・制約を確認

    KEY_COLUMN_USAGE でテーブル間のリレーションを一覧で見る

    必要なJOINを書き始める

🧩 CREATE文の中に出てくる構文の意味
CONSTRAINT(制約)

CONSTRAINT `fk_payment_customer`

制約の名前。外部キーやユニーク制約などにつける。
後で削除・変更する際に指定できる。
FOREIGN KEY(外部キー)

FOREIGN KEY (`customer_id`)

このカラムが外部キーであることを宣言する。
REFERENCES(参照先)

REFERENCES `customer` (`customer_id`)

外部キーがどのテーブル・カラムを参照しているかを示す。
組み合わせた構文の例

CONSTRAINT `fk_payment_customer`
  FOREIGN KEY (`customer_id`)
  REFERENCES `customer` (`customer_id`)

    payment.customer_id は外部キー

    参照先は customer.customer_id

    この関係を fk_payment_customer という名前の制約として登録している

🧭 まとめ

JOINを正確に書くためには、リレーションの把握が必須。
特にSakilaのようなリレーションが多いサンプルデータベースでは、外部キーの一覧やCREATE文を確認しながら設計していくのが重要。

JOINに迷ったときは information_schema を使えば、ER図がなくても十分戦える。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?