ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
MySQL
-- 簡易表示
DESC users;
DESCRIBE users;
-- 結果例
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | bigint | NO | PRI | NULL | auto_increment |
| name | varchar(100) | NO | | NULL | |
| email | varchar(255) | YES | UNI | NULL | |
| created_at | timestamp | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
-- CREATE TABLE 文を取得 (詳細)
SHOW CREATE TABLE users\G
-- 結果
CREATE TABLE `users` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email_unique` (`email`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
-- インデックス確認
SHOW INDEX FROM users;
-- テーブル一覧
SHOW TABLES;
-- DB 全体
SHOW DATABASES;
-- 全カラム情報 (information_schema)
SELECT * FROM information_schema.columns
WHERE table_schema = 'mydb' AND table_name = 'users';
-- すべてのテーブルの行数
SELECT table_name, table_rows
FROM information_schema.tables
WHERE table_schema = 'mydb';
PostgreSQL
-- psql コマンド
\d users -- カラム + インデックス
\d+ users -- 詳細 (コメント含む)
\dt -- テーブル一覧
\dn -- スキーマ一覧
\df -- 関数一覧
\du -- ユーザー一覧
-- 結果例
Table "public.users"
Column | Type | Collation | Nullable | Default
------------+-----------------------------+-----------+----------+-----------------------------------
id | bigint | | not null | nextval('users_id_seq'::regclass)
name | character varying(100) | | not null |
email | character varying(255) | | |
created_at | timestamp without time zone | | | CURRENT_TIMESTAMP
Indexes:
"users_pkey" PRIMARY KEY, btree (id)
"users_email_key" UNIQUE CONSTRAINT, btree (email)
-- information_schema
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'users';
-- 制約
SELECT conname, contype, pg_get_constraintdef(oid)
FROM pg_constraint
WHERE conrelid = 'users'::regclass;
-- インデックス
SELECT indexname, indexdef
FROM pg_indexes
WHERE tablename = 'users';
Oracle
-- SQL*Plus
DESC users;
DESCRIBE users;
-- 結果
Name Null? Type
---------- -------- ---------------
ID NOT NULL NUMBER(19)
NAME NOT NULL VARCHAR2(100 CHAR)
EMAIL VARCHAR2(255 CHAR)
CREATED_AT TIMESTAMP(6)
-- USER_TAB_COLUMNS で詳細
SELECT column_name, data_type, data_length, nullable, data_default
FROM user_tab_columns
WHERE table_name = 'USERS';
-- 全テーブル
SELECT table_name FROM user_tables;
-- 制約
SELECT constraint_name, constraint_type, search_condition
FROM user_constraints
WHERE table_name = 'USERS';
-- インデックス
SELECT index_name, column_name
FROM user_ind_columns
WHERE table_name = 'USERS';
-- CREATE TABLE 文を取得
SELECT DBMS_METADATA.GET_DDL('TABLE', 'USERS') FROM DUAL;
SQL Server
-- sp_help
EXEC sp_help 'users';
-- → カラム・インデックス・制約を表示
-- sp_columns
EXEC sp_columns 'users';
-- sys.columns (詳細)
SELECT
c.name AS column_name,
t.name AS data_type,
c.max_length,
c.precision,
c.scale,
c.is_nullable,
c.is_identity
FROM sys.columns c
JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE c.object_id = OBJECT_ID('users');
-- information_schema
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'users';
-- 全テーブル
SELECT name FROM sys.tables;
-- または
SELECT table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE';
SQLite
-- SQLite シェル
.schema users -- CREATE TABLE 文
.schema -- 全テーブル
.tables -- テーブル一覧
.columns -- 全カラム
-- SQL で
SELECT sql FROM sqlite_master WHERE type='table' AND name='users';
-- カラム情報
PRAGMA table_info(users);
-- 結果: cid, name, type, notnull, dflt_value, pk
-- インデックス
PRAGMA index_list(users);
PRAGMA index_info(idx_users_email);
-- 外部キー
PRAGMA foreign_key_list(orders);
GUI ツール
- MySQL Workbench: MySQL 公式 GUI
- pgAdmin: PostgreSQL 公式
- SQL Developer: Oracle 公式
- SSMS: SQL Server Management Studio
- DBeaver: 全 DB 対応マルチプラットフォーム
- TablePlus: モダン UI、有料
- HeidiSQL: Windows 向け軽量
- DataGrip: JetBrains 製、有料
テーブル間の関係を可視化
-- MySQL: 外部キー一覧
SELECT
constraint_name,
table_name,
column_name,
referenced_table_name,
referenced_column_name
FROM information_schema.key_column_usage
WHERE referenced_table_name IS NOT NULL
AND table_schema = 'mydb';
-- PostgreSQL: 外部キー
SELECT
tc.constraint_name,
tc.table_name,
kcu.column_name,
ccu.table_name AS foreign_table,
ccu.column_name AS foreign_column
FROM information_schema.table_constraints tc
JOIN information_schema.key_column_usage kcu USING (constraint_name)
JOIN information_schema.constraint_column_usage ccu USING (constraint_name)
WHERE tc.constraint_type = 'FOREIGN KEY';
ER 図の自動生成
- MySQL Workbench: Database → Reverse Engineer
- DBeaver: スキーマ右クリック → Generate ERD
- dbdiagram.io: SQL から自動描画
- SchemaSpy: コマンドラインで HTML レポート生成
- SQLAlchemy +
graphviz: Python で生成
テーブルサイズ確認
-- MySQL
SELECT
table_name,
ROUND(data_length / 1024 / 1024, 2) AS data_mb,
ROUND(index_length / 1024 / 1024, 2) AS index_mb,
ROUND((data_length + index_length) / 1024 / 1024, 2) AS total_mb,
table_rows
FROM information_schema.tables
WHERE table_schema = 'mydb'
ORDER BY (data_length + index_length) DESC;
-- PostgreSQL
SELECT
schemaname,
tablename,
pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;
-- Oracle
SELECT segment_name, bytes/1024/1024 AS size_mb
FROM user_segments
WHERE segment_type = 'TABLE'
ORDER BY bytes DESC;
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
コメントを削除してもよろしいでしょうか?