データ定義言語 (DDL) の紹介

DDL は Data Definition Language の略で、SQL (Structured Query Language) においてデータベースの全体的な設計を記述するためのコマンドセットです。DDL の主なコマンドは次のとおりです。

  • CREATE: 新しいオブジェクトを作成するために使用します。
  • ALTER: 既存のオブジェクトの構造を変更するために使用します。
  • DROP: オブジェクトを削除するために使用します。

MySQL における CREATE、ALTER、DROP コマンドの使用

a. CREATE

CREATE コマンドは、新しいデータベース、新しいテーブル、または新しい ビュー を作成するために使用します。

  • 例: CREATE DATABASE toko_buku;
  • 説明: このコマンドは、toko_buku という名前の新しいデータベースを作成します。

b. ALTER

ALTER コマンドは、既に作成されたテーブルの構造を変更するために使用します。この操作では、カラムの追加、削除、変更、テーブルの修正、カラムへの新しい属性の付与を行うことができます。

  • 例: ALTER TABLE buku ADD judul_buku varchar(20);
  • 説明: このコマンドは、buku テーブルに、最大20文字の varchar 型の judul_buku という新しい フィールド (カラム) を追加します。

c. DROP

DROP コマンドは、データベースからオブジェクトを完全に削除します。オブジェクトは、データベース自体、テーブル、関数インデックスプロシージャトリガービュー のいずれかです。

  • 例: DROP DATABASE toko_buku;
  • 説明: このコマンドは、toko_buku という名前のデータベースを削除します。

MySQL のデータ型

適切なデータ型の選択は、データベースストレージの効率にとって非常に重要です。以下は、MySQL のデータ型のカテゴリです。

A. 数値データ型

数値データを格納するために使用します。

  • TINYINT: 整数 (正/負) を格納します。範囲: -128 ~ 127。サイズ: 1 バイト (8 ビット)。
  • SMALLINT: 整数を格納します。範囲: -32768 ~ 32767。サイズ: 2 バイト (16 ビット)。
  • MEDIUMINT: 整数を格納します。範囲: -8388608 ~ 8388607。サイズ: 3 バイト (24 ビット)。
  • INT: 整数を格納します。範囲: -2147483648 ~ 2147483647。サイズ: 4 バイト (32 ビット)。
  • BIGINT: 大規模な整数を格納します。範囲: -9223372036854775808 ~ 9223372036854775807。サイズ: 8 バイト (64 ビット)。
  • FLOAT: 単精度浮動小数点数を格納します。サイズ: 4 バイト (32 ビット)。
  • DOUBLE / REAL: 倍精度浮動小数点数を格納します。サイズ: 8 バイト (64 ビット)。
  • DECIMAL / NUMERIC: 非常に高い精度の固定小数点数を格納します。サイズ: 8 バイト (64 ビット)。

B. 文字列データ型

文字またはテキストデータを格納するために使用します。

  • CHAR: 固定長の文字列データを格納します (例: 商品ID、国民ID番号)。範囲: 0 ~ 255 文字。
  • VARCHAR: 可変長の文字列データを格納します。範囲: 0 ~ 65,535 文字 (最新バージョン)。
  • TINYTEXT: 短いテキストデータを格納します。範囲: 0 ~ 255 文字。
  • TEXT: 標準的なテキストデータを格納します。範囲: 0 ~ 65,535 文字。
  • MEDIUMTEXT: 中程度の長さのテキストデータを格納します。範囲: 0 ~ 16,777,215 文字。
  • LONGTEXT: 非常に長いテキストデータを格納します。範囲: 0 ~ 4,294,967,295 文字。

C. 日付と時刻のデータ型

日付と時刻のデータを格納するために使用します。

  • DATE: 日付を格納します (形式: YYYY-MM-DD)。範囲: ‘1000-01-01’ ~ ‘9999-12-31’。サイズ: 3 バイト。
  • TIME: 時刻を格納します (形式: HH:MM:SS)。範囲: ‘-838:59:59’ ~ ‘+838:59:59’。サイズ: 3 バイト。
  • DATETIME: 日付と時刻の組み合わせ (形式: YYYY-MM-DD HH:MM:SS)。範囲: ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’。サイズ: 8 バイト。
  • YEAR: 年を格納します (形式: YYYY)。範囲: 1900 ~ 2155。サイズ: 1 バイト。

D. BLOB データ型 (バイナリ)

BLOB は Binary Large Object の略です。純粋なバイナリデータを格納するために使用され、大文字と小文字が区別 され、画像、ドキュメント、音声などのマルチメディアファイルに最適です。

  • BIT: バイナリデータを格納します。範囲: 64 桁のバイナリ。
  • TINYBLOB: 最大サイズ 255 バイト。
  • BLOB: 最大サイズ 65,535 バイト。
  • MEDIUMBLOB: 最大サイズ 16,777,215 バイト。
  • LONGBLOB: 最大サイズ 4,294,967,295 バイト。

SQL のキーの種類

SQL におけるキーは、テーブル内のデータ行を一意に区別したり、テーブル同士を関連付けたりするために使用される、1 つ以上の属性 (カラム) の組み合わせです。

  • スーパーキー: テーブル内の各データ行を一意に識別できる属性の集合。
  • 候補キー: 冗長な属性を持たない最小のスーパーキー。候補キーは、一意の値を識別できる最小の フィールド の組み合わせから選ばれます。
  • 主キー: レコード の主要な識別子として選ばれた候補キー。主キーのデータは 空にできず (Not Null)、重複してはいけません。各テーブルに 1 つだけ主キーを持つことができます。
  • 代替キー: 主キーとして 選ばれなかった 候補キー。
  • 外部キー: テーブル同士を関連付け、 と  の関係を形成するために使用されるキー。親テーブルの主キーは、関連する子テーブルの外部キーによって参照されます。
  • 複合キー: エンティティを一意に識別するために、2 つ以上の属性で構成されるキー。通常、単一のカラムが主キーの条件を満たさない場合に使用されます。

MySQL の制約の種類

制約 は、データの整合性と妥当性を維持するために、カラムまたはテーブルに適用される制限ルールです。

  • NOT NULL: レコード の挿入時にカラムを空のままにできないことを保証します。そのカラムには必ずデータを入力する必要があります。
  • UNIQUE: カラム内のすべての値が互いに異なること (レコードの重複がないこと) を保証します。
  • PRIMARY KEY: NOT NULL 制約と UNIQUE 制約の組み合わせ。テーブル内の各行を一意に識別します。1 つのテーブルに PRIMARY KEY は 1 つだけ許可されます。
  • FOREIGN KEY: テーブル間の参照整合性を維持します。 カラムの値が、 カラム (別のテーブル) に有効な参照を持つことを保証します。
  • CHECK: データがデータベースに保存される前に検証またはチェックを行います。データは boolean 値で評価され、条件を満たせば true となり保存されますが、false の場合は SQL が拒否し、エラー メッセージを表示します。

Shares:
コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です