MySQLにおけるデータベースとテーブル操作の基礎

SQL言語の基本概念

SQL(Structured Query Language)は、リレーショナルデータベースにおいてデータ操作・検索・メンテナンスを行うための標準化された言語です。開発者やDB管理者は以下の作業に利用できます:

  • データベース構造の変更
  • セキュリティ設定の調整
  • ユーザー権限の付与
  • 必要な情報の取得
  • データの更新・バックアップ・復元

SQL文の分類

MySQLではSQL文を以下の4つのカテゴリに分類します:

  1. DDL(データ定義言語): データベースオブジェクト(データベース・テーブル・カラム・インデックス)の定義操作
    主要キーワード: CREATE, DROP, ALTER, RENAME
  2. DML(データ操作言語): レコード操作
    主要キーワード: INSERT, DELETE, UPDATE
  3. DCL(データ制御言語): アクセス権限とセキュリティレベルの設定
    主要キーワード: GRANT, REVOKE
  4. DQL(データ検索言語): データ検索
    主要キーワード: SELECT

SQL文の記述規則

  • SQLキーワードは大文字小文字を区別しない
  • 文字列定数は大文字小文字を区別する
  • 単一行または複数行での記述が可能だが、セミコロンで終了必須
  • キーワードは行をまたがない
  • 可読性向上のためのインデントやスペース使用が推奨される

データベース操作の基本

データベース一覧表示

SHOW DATABASES [LIKE pattern];

このコマンドにより、MySQLサーバ上のすべてのデータベースを確認できます。システムデータベースには以下が含まれます:

  • information_schema: データベースオブジェクト情報の格納
  • performance_schema: パフォーマンスパラメータの格納
  • mysql: ユーザー権限情報の格納
  • sys: MySQL 5.7以降で追加されたビューベースの統計情報

新規データベース作成

CREATE DATABASE IF NOT EXISTS database_name;

データベースはテーブル、ビュー、関数、クエリ、バックアップから構成され、その中でもテーブルが最も重要な要素となります。

データベース切替と情報確認

-- データベース切替
USE database_name;

-- 現在のデータベース確認
SELECT DATABASE();

-- MySQLバージョン確認
SELECT VERSION();

-- 現在のユーザー確認
SELECT USER();

-- ユーザー詳細情報確認
SELECT User, Host FROM mysql.user;

データベース削除

DROP DATABASE [IF EXISTS] database_name;

この操作により、データベース内のすべての構造とデータが完全に削除されます。

MySQLの文字セット

主要文字セット

MySQLの文字セットはCHARACTERとCOLLATIONから構成されます:

  • latin1: 西ヨーロッパ言語、ギリシャ語対応
  • gbk: 簡体字中国語対応
  • big5: 繁体字中国語対応
  • utf8: 世界中のほとんどの言語に対応
  • utf8mb4: 完全なUTF-8実装
-- 文字セット設定確認
SHOW VARIABLES LIKE 'character%';

utf8とutf8mb4の違い

utf8mb4はMySQL 5.5.3以降で導入され、"most bytes 4"を意味します。MySQLのutf8は最大3バイトまでしか対応していないため、絵文字や特殊漢字などの4バイト文字を扱えません。MySQL 8.0以降ではutf8mb4の使用が推奨されています。

データベース設計と正規化

設計プロセス

適切なデータベース設計は以下の利点を提供します:

  • ストレージ空間の効率化
  • データ整合性の確保
  • アプリケーション開発の容易化

設計手順:

  1. 要件分析フェーズ
  2. 概念設計フェーズ(ER図作成)
  3. 論理設計フェーズ(正規化適用)
  4. 物理設計フェーズ
  5. 実装フェーズ
  6. テストフェーズ
  7. 保守フェーズ

ER図の作成方法

ER図の基本要素:

  • 長方形: エンティティ(名詞)
  • 楕円形: 属性
  • 菱形: 関係(動詞)

ホテル管理システムの例では、「顧客」と「客室」をエンティティとして識別し、それぞれの属性と関係を定義します。

正規化の三原則

  1. 第一正規形: 各カラムが原子値を持つこと
  2. 第二正規形: 主キーに完全依存すること(部分依存の排除)
  3. 第三正規形: 主キー以外のカラム間の推移的依存を排除すること

タグ: MySQL SQL database DDL DML

6月13日 18:23 投稿