データベーステーブルの基本概念
リレーショナルデータベース管理システム(RDBMS)において、データは「テーブル」と呼ばれる構造化された単位に格納されます。各テーブルは複数の列(フィールド)と行(レコード)で構成され、特定のエンティティに関する情報を体系的に管理します。
テーブルの作成手順
新しいテーブルを作成するには、SQL の CREATE TABLE 構文を使用します。以下は基本的な書式です。
CREATE TABLE テーブル名 (
列名1 データ型 [制約条件],
列名2 データ型 [制約条件],
...
);
主な制約条件とその役割は以下の通りです。
| 制約タイプ | 機能説明 |
|---|---|
| PRIMARY KEY | 主キーを設定し、各行を一意に識別できるようにします |
| FOREIGN KEY | 外部キー制約を定義し、他テーブルとの整合性を保ちます |
| NOT NULL | 該当列への null 値格納を禁止します |
| UNIQUE | 列内の値が重複しないことを保証します |
| AUTO_INCREMENT | 数値タイプの列に対して自動インクリメント機能を付与します |
| DEFAULT | 明示的に値が指定されない場合の初期値を設定します |
サンプル実装例
カテゴリ管理と在庫管理を行うための二つのテーブルを作成するケースを想定します。
カテゴリテーブルの定義
CREATE TABLE product_categories (
cat_id INT PRIMARY KEY AUTO_INCREMENT,
cat_name VARCHAR(50) NOT NULL,
description TEXT
);
商品在庫テーブルの定義
CREATE TABLE inventory_items (
item_id INT PRIMARY KEY AUTO_INCREMENT,
item_code VARCHAR(20) UNIQUE NOT NULL,
price DECIMAL(10, 2),
category_ref INT,
CONSTRAINT fk_category FOREIGN KEY (category_ref) REFERENCES product_categories(cat_id)
);
ここでは、inventory_items の category_ref が product_categories の cat_id を参照するように設定しています。
テーブル情報の確認
既存テーブルのカラム定義を確認するには、次のコマンドが有効です。
DESCRIBE inventory_items;
より詳細な作成情報や完全な DDL コードを取得したい場合は、以下を使用します。
SHOW CREATE TABLE inventory_items;
テーブルの変更操作 (ALTER TABLE)
運用中に要件が変化した場合、既存テーブルを変更する必要があります。
テーブル名の再命名
ALTER TABLE inventory_items RENAME TO warehouse_stock;
カラム属性の変更
既存のカラム名やデータ型を変更する際は CHANGE 句を用います。
ALTER TABLE warehouse_stock CHANGE item_code sku_number VARCHAR(30) NOT NULL;
また、カラムを追加する際には位置指定が可能です。
ALTER TABLE warehouse_stock ADD stock_quantity INT DEFAULT 0 AFTER price;
ALTER TABLE warehouse_stock ADD note VARCHAR(100) FIRST;
インデックスの管理
検索性能向上のためにインデックスを追加する場合、以下のように記述します。
ALTER TABLE warehouse_stock ADD INDEX idx_sku (sku_number);
ALTER TABLE warehouse_stock ADD UNIQUE INDEX uk_code (item_code);
オブジェクトの削除処理
不要となった要素を削除するコマンドは以下の通りです。
カラムの削除
ALTER TABLE warehouse_stock DROP COLUMN note;
主キー制約の解除
ALTER TABLE warehouse_stock DROP PRIMARY KEY;
テーブルの破棄
テーブル全体を消去するには DROP TABLE を使用します。これは復元不可のため注意が必要です。
DROP TABLE IF EXISTS warehouse_stock;