テーブル定義のインポート
データベースの作成
「my_shop」データベースを新規作成します。
SQLデータのダウンロード
「users」テーブルのDDLとレコードは以下からダウンロードしてください。
ファイル | 用途 |
---|---|
create_table.sql | テーブル定義(DDL) |
insert_users.sql | usersのレコード |
DDLインポート
DDLファイル「create_table.sql」を「my_shop」データベースにインポートして、テーブル作成します。
テーブル定義(DLL)のインポート
「my_shop」データベースを選択します。

メニューから「インポート」タブを選択し、アップロードファイル欄の【ファイルを選択】をクリックします。
「create_table.sql」を選択します。
ファイルを選択したら画面下にスクロールして【実行】ボタンをクリックします。
「インポートは正常に終了しました。」が表示されれば成功です。
テーブル確認
データベース一覧にテーブルが作成されたのを確認します。
MySQLコマンドでテーブル作成
phpMyAdminでなく、mysqlコマンドで SQLファイルを実行することもできます。ターミナルで「create_table.sql 」を配置したディレクトリに移動**します。
cd SQLファイル配置ディレクトリ
mysqlコマンドで「my_shop」データベースに「create_table.sql」をインポートします。
mysql -u root my_shop < create_table.sql
レコードのインポート
「users」テーブルにサンプルデータをインポートしてみましょう。データベース一覧から「my_shop.users」テーブルを選択します。
メニューから「インポート」タブを選択し、アップロードファイル欄の【ファイルを選択】をクリックします。
インポートする SQL ファイル(insert_users.sql)を選択します。
ファイルを選択したら画面下にスクロールして【実行】ボタンをクリックします。
「インポートは正常に終了しました。」が表示されれば成功です。
データ確認
users テーブルをクリックしてデータを確認してみましょう。
テーブル定義の確認
各テーブルのDDLは以下のCREATE TABLEで定義できます。データベースの種類によって若干異なりますが、基本的構文は同じです。
users
項目 | カラム名 | データ型 | オプション |
---|---|---|---|
ID | id | bigint | Primary Key, auto_increment |
氏名 | name | varchar(255) | NOT NULL |
メールアドレス | varchar(255) | NOT NULL, UNIQUE | |
パスワード | password | varchar(255) | NOT NULL |
性別 | gender | varchar(16) | DEFAULT NULL |
作成日 | created_at | datetime | DEFAULT CURRENT_TIMESTAMP |
更新日 | updated_at | datetime | DEFAULT CURRENT_TIMESTAMP |
CREATE TABLE users (
id bigint UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
email varchar(255) UNIQUE NOT NULL,
password varchar(255) NOT NULL,
gender varchar(16) DEFAULT NULL,
created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);
items
項目 | カラム名 | データ型 | オプション |
---|---|---|---|
ID | id | bigint | Primary Key, auto_increment |
商品コード | code | varchar(255) | NOT NULL, UNIQUE |
商品名 | name | varchar(255) | NOT NULL |
値段 | price | int | NOT NULL |
在庫 | stock | int | NOT NULL |
作成日 | created_at | datetime | DEFAULT CURRENT_TIMESTAMP |
更新日 | updated_at | datetime | DEFAULT CURRENT_TIMESTAMP |
CREATE TABLE items (
id bigint UNSIGNED AUTO_INCREMENT PRIMARY KEY,
code varchar(255) UNIQUE NOT NULL,
name varchar(255) NOT NULL,
price int NOT NULL,
stock int NOT NULL,
created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);
user_items
項目 | カラム名 | データ型 | オプション |
---|---|---|---|
ID | id | bigint | Primary Key, auto_increment |
ユーザID | user_id | bigint | NOT NULL |
商品ID | item_id | bigint | NOT NULL |
個数 | amount | int | NOT NULL |
合計金額 | total_price | int | NOT NULL |
作成日 | created_at | datetime | DEFAULT CURRENT_TIMESTAMP |
更新日 | updated_at | datetime | DEFAULT CURRENT_TIMESTAMP |
CREATE TABLE user_items (
id bigint UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id bigint UNSIGNED NOT NULL,
item_id bigint UNSIGNED NOT NULL,
amount int NOT NULL,
total_price int NOT NULL,
created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);
制約(CONSTRAINT)
CONSTRAINTはテーブル同士でルールをつける制約の機能です。もし関連したレコードが消されてリレーションできないことを防いだりします。
ALTER TABLE user_items
ADD CONSTRAINT user_items_item_id_fkey FOREIGN KEY (item_id)
REFERENCES items (id)
ON DELETE RESTRICT
ON UPDATE RESTRICT,
ADD CONSTRAINT user_items_user_id_fkey FOREIGN KEY (user_id)
REFERENCES users (id)
ON DELETE RESTRICT
ON UPDATE RESTRICT;