ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
DESC — 最速で列定義を見る
DESC users;
-- または DESCRIBE users;
-- または EXPLAIN users;
-- +------------+--------------+------+-----+-------------------+----------------+
-- | Field | Type | Null | Key | Default | Extra |
-- +------------+--------------+------+-----+-------------------+----------------+
-- | id | bigint | NO | PRI | NULL | auto_increment |
-- | name | varchar(255) | NO | | NULL | |
-- | email | varchar(255) | NO | UNI | NULL | |
-- | created_at | datetime | NO | | CURRENT_TIMESTAMP | |
-- +------------+--------------+------+-----+-------------------+----------------+
| 列 | 意味 |
|---|---|
| Field | 列名 |
| Type | データ型(長さ・符号付き有無含む) |
| Null | NULL 許可(YES/NO) |
| Key | PRI=主キー / UNI=ユニーク / MUL=非ユニークインデックスの先頭 |
| Default | デフォルト値 |
| Extra | auto_increment / on update CURRENT_TIMESTAMP / VIRTUAL GENERATED 等 |
SHOW COLUMNS — DESC と同じ
SHOW COLUMNS FROM users;
SHOW FULL COLUMNS FROM users; -- 照合順序・コメント等も
SHOW COLUMNS FROM users LIKE 'email%';
SHOW COLUMNS FROM myapp.users; -- 別 DB
SHOW CREATE TABLE — 完全な DDL
復元可能な CREATE TABLE 文を取得できます。移行・バックアップに使えます:
SHOW CREATE TABLE users\G
-- *************************** 1. row ***************************
-- Table: users
-- Create Table: CREATE TABLE `users` (
-- `id` bigint unsigned NOT NULL AUTO_INCREMENT,
-- `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
-- `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
-- `created_at` datetime DEFAULT CURRENT_TIMESTAMP,
-- PRIMARY KEY (`id`),
-- UNIQUE KEY `users_email_unique` (`email`),
-- KEY `users_created_at_index` (`created_at`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
使いどころ: 「本番と staging の定義差分」「テストデータ環境の再現」「ORM が生成した DDL の確認」。
information_schema を直接 SELECT
プログラムからメタ情報を取得したい場合や、複雑な条件で絞り込みたい場合は information_schema を使います:
-- テーブルの全列定義
SELECT column_name, column_type, is_nullable, column_default, column_key, extra, column_comment
FROM information_schema.COLUMNS
WHERE table_schema = 'myapp' AND table_name = 'users'
ORDER BY ordinal_position;
-- 「全テーブルの中で created_at という列を持つテーブル」を探す
SELECT table_schema, table_name
FROM information_schema.COLUMNS
WHERE column_name = 'created_at' AND table_schema NOT IN ('mysql','sys','information_schema');
-- VARCHAR(255) 以上の列を一覧(型変更影響調査)
SELECT table_name, column_name, column_type
FROM information_schema.COLUMNS
WHERE table_schema = 'myapp'
AND data_type = 'varchar' AND character_maximum_length >= 255;
インデックス・キー制約の確認
-- インデックス一覧
SHOW INDEX FROM users;
-- +-------+------------+--------------------+--------------+-------------+
-- | Table | Non_unique | Key_name | Seq_in_index | Column_name |
-- +-------+------------+--------------------+--------------+-------------+
-- | users | 0 | PRIMARY | 1 | id |
-- | users | 0 | users_email_unique | 1 | email |
-- 外部キー制約
SELECT constraint_name, table_name, column_name, referenced_table_name, referenced_column_name
FROM information_schema.KEY_COLUMN_USAGE
WHERE table_schema = 'myapp' AND referenced_table_name IS NOT NULL;
mysqldump で定義のみ出力
# -d / --no-data: データ無し、定義のみ
mysqldump -uroot -p -d myapp > schema.sql
# 特定テーブルだけ
mysqldump -uroot -p -d myapp users orders > users_orders_schema.sql
# テーブル定義 + 既存データの SQL
mysqldump -uroot -p myapp users > users_full.sql
# DROP TABLE 文も含めない
mysqldump -uroot -p -d --skip-add-drop-table myapp > schema_clean.sql
# ストアドプロシージャ・トリガ・ビューも含める
mysqldump -uroot -p -d --routines --triggers --events myapp > full_schema.sql
GUI ツール
- phpMyAdmin: テーブルを選択 → 「構造」タブ
- DBeaver: テーブル右クリック → Properties / DDL タブ
- MySQL Workbench: 右クリック → Send to SQL Editor → Create Statement
- HeidiSQL: テーブル右クリック → Show CREATE code
- TablePlus: テーブルをダブルクリック → Structure
他 DBMS での同等操作
| DBMS | 列定義 | 完全 DDL |
|---|---|---|
| MySQL | DESC tbl | SHOW CREATE TABLE tbl |
| PostgreSQL (psql) | \d tbl | \d+ tbl / pg_dump -s -t tbl db |
| SQL Server | sp_help 'tbl' | SSMS で右クリック → Script Table as → CREATE |
| Oracle | DESC tbl | DBMS_METADATA.GET_DDL('TABLE','TBL') |
| SQLite | .schema tbl | SELECT sql FROM sqlite_master WHERE name='tbl' |
FAQ
Q: 列のコメント (COMMENT) も見たい
A: SHOW FULL COLUMNS FROM tbl; または information_schema.COLUMNS.column_comment。
Q: テーブルのコメント・エンジン・行数を確認
A: SHOW TABLE STATUS LIKE 'tbl'; で Engine / Rows / Data_length / Comment が一覧できる。
Q: DDL を Git にコミットしたい
A: mysqldump -d 出力を整形して保存。Laravel / Rails ならマイグレーションを正本にして、定期的に schema dump で同期確認。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?