ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?