MySQL Workbenchでデータを入れるテーブルを作成するためには、どのようなデータを入れるのかを最初に決めなければいけません。
今回はMySQL Workbenchでテーブルをつくる方法について解説していきます。
▼データベース・テーブルの作成方法についてはこちらの動画でも詳しく解説しています!
YouTube動画
データベース・テーブル作成の基礎について、初心者にもわかりやすく解説しています!
▼MySQL Workbenchのインストール・設定に関してはこちらをご参照ください。
MySQL Workbenchでテーブルを作る際の項目名とデータ型
テーブルを作成する際には、あらかじめ項目名とカラム(列)に入るデータの型を決めておく必要があります。
項目名は基本的に英語で作成します。
項目名➡ | id | name | price |
---|---|---|---|
1 | みかん | 150 | |
2 | バナナ | 200 | |
3 | マスカット | 3500 | |
整数が入る | 文字列が入る | 整数が入る |
MySQL Workbenchのデータ型
数値型
- TINYINT, INT, BIGINT 等
整数 - FLOAT, DOUBLE 等
実数
整数の扱いは基本的に「INT」、少数の扱いは「DOUBLE」にしておけば大丈夫です。
文字列型
- CHAR(n) … サイズ固定文字列
(0 ~ 255) - VARCHAR(n) … サイズ可変文字列
(0 ~ 65535) - TEXT … 最大65535文字の文字列
utf8の日本語(3byte/1字)は21845文字
※n は最大文字数
イニシャルなど、例えば山田太郎の場合は「YT」で2文字で記述するという場合は「CHAR」を使います。ブログなど何文字になるのか想定されていない場合などは「TEXT」を使用します。
日付型と時刻型
- DATE … 日付
例: ‘2020-08-05’ - TIME … 時刻
例: ’12:34:56′ - DATETIME … 日付と時刻
例: ‘2020-08-05 12:34:56’ - TIMESTAMP … タイムスタンプ
例: ‘2020-08-05 12:34:56’
「DATETIME」も「TIMESTAMP」も同じですが、例えばブログなどの場合登録日をDATETIME型に、更新日時をTIMESTAMP型に、という使い分けをされることがあります。
NULL … データが無いことを表す
MySQL Workbenchのテーブル作成時の制約
PK(プライマリキー)の制約
PK(プライマリキー)は、テーブル内のレコード(一行分のデータ)を一意に識別するためのカラムに設定します。
例えば、会員IDやユーザーIDなどに設定します。
PK(プライマリキー)の制約
- プライマリキーは1つのテーブルの中で1つしか設定できない
- カラム内に、同じ値の重複があってはいけない
- NULL値を設定できない
UQ(ユニークキー)の制約
UQ(ユニークキー)はメールアドレスや携帯電話番号などテーブル内で同じ値のデータの重複を許さないカラムに設定します。
MySQL Workbenchでのテーブル作成
MySQL Workbench画面の上部のデータベースのドラム缶の隣のメモ帳のようなものにカーソルを合わせます。
カーソルを持っていくと「Create a new table …」が表示されるものをクリックします。
- カラムの名前
- データの型
- データの制約
(チェックを入れる)
MySQL Workbenchでのテーブル削除
テーブル名を右クリックし「Drop Table…」を選択します。
MySQL Workbenchテーブルを空にする
テーブル名を右クリックし「Truncate Table…」を選択します。
SQL文でテーブルを作成する
SQL文でテーブルを作成する際は、テーブルを作るデータベースが選択された状態でSQL文を記述していきます。
CREATE TABLE テーブル名(
カラム1 データの型 制約(オプション),
カラム2 データの型 制約(オプション),
…);
作成するテーブル
id | name | age | address | created |
---|---|---|---|---|
1 | 山田太郎 | 25歳 | 東京都 | 2023-11-18 12:34:56 |
2 | ||||
3 |
テーブル作成のSQL文
1 | CREATE TABLE members ( |
2 | id INT PRIMARY KEY AUTO_INCREMENT, |
3 | name VARCHAR(10) NOT NULL, |
4 | age INT, |
5 | address VARCHAR(255), |
6 | created DATETIME NOT NULL); |
テーブル作成のSQL文
DROP TABLE members;
テーブルの中身を空にするSQL文
TRUNCATE members;