タイトル: データベース関連
本稿は MariaDB / MySQL のデータベース関連 SQL に関する記事です。データベース自体の作成・確認・削除・選択・文字コード設定といった、データベースレベルの操作をまとめます。
子ページから項目を選択してください。
本ページの子ページ
- データベースの作成 —
CREATE DATABASE
データベース関連 SQL の早見表
| 操作 | SQL |
|---|---|
| 一覧表示 | SHOW DATABASES; |
| 作成 | CREATE DATABASE 名 [DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci]; |
| 選択 | USE 名; |
| 現在のDB確認 | SELECT DATABASE(); |
| 定義の確認 | SHOW CREATE DATABASE 名; |
| 文字コードを変更 | ALTER DATABASE 名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 削除 | DROP DATABASE 名; |
| 存在確認付き作成 | CREATE DATABASE IF NOT EXISTS 名 ...; |
| 存在確認付き削除 | DROP DATABASE IF EXISTS 名; |
典型的なデータベース作成
|
-- 推奨: utf8mb4 (絵文字対応) |
information_schema での確認
|
SELECT schema_name, default_character_set_name, default_collation_name |
文字コードと照合順序 (Collation) の選定
| 選定 | 理由 |
|---|---|
| utf8mb4 を使う | 絵文字や一部の漢字を扱えない utf8 (3バイト) ではなく、4バイトの utf8mb4 |
| utf8mb4_0900_ai_ci (MySQL 8.0+) | 新規プロジェクトの既定。MySQL 8 系で性能・互換性が改善 |
| utf8mb4_unicode_ci | 従来から広く使われている。互換性目的 |
| utf8mb4_bin | 厳密に大小区別をしたい場合 (ID等) |
権限とユーザ管理
新規 DB を作ったら、アプリ用ユーザに必要最小限の権限を付与します。
|
-- ユーザ作成 |
注意点
DROP DATABASEは復元できない。本番では事前に必ずバックアップ- 文字コードを後から変更するとテーブル・カラム単位の Collation が混在しやすい。新規作成時に決める
- 本番アプリ用ユーザに
ALL PRIVILEGESやGRANT権限を渡さない - レプリケーション環境では、マスタ側でのみ作成 SQL を実行する (バイナリログ経由でスレーブへ伝搬)
- クラウド (RDS / Aurora) では root 相当のスーパー権限が制限されており、一部の DDL は不可
関連
- 親カテゴリ: SQL (MariaDB)
- 子ページ: データベースの作成
- 関連: MySQL / MariaDB / SQL / ユーザー関連 / テーブル関連