- データベースを学習したいけど何から始めたら良いのかわからない
- プログラミングスクールでデータベースを学んだけど忘れた
- データベースについてキチンと学び直したい
このようなお悩みをお持ちの方もいると思います。
この記事ではデータベースとテーブル作成、データの追加や更新、削除について初心者向けに解説します。
今回はフードメニューのデータベースの作成を学習していきましょう!
▼データベース・テーブルの作成方法についてはこちらの動画でも詳しく解説しています!
YouTube動画
データベース・テーブル作成の基礎について、初心者にもわかりやすく解説しています!
▼MySQL Workbenchのインストール・設定に関してはこちらをご参照ください。
データベースを作成する
左上の赤丸をクリックして新しいエディタを開きます。
以下のコードを記述してエディタの上の左側のカミナリマークをクリックします。
左側の「SCHEMAS」のところに「foodmenu_db」というデータベースができていると思います。
もし見当たらなかったらリフレッシュボタンを押してみてください。
下の「Action Output」に緑のチェックが入っていればOKです。
エラーの場合は赤い✖とエラー内容が表示されます。
MySQLテーブル作成時の制約
PK Primary Key | プライマリキーは1つのテーブルの中で 1つしか設定できない カラム内に、同じ値の重複が あってはいけない NULL値を設定できない |
---|---|
NN Not Null | カラムの値が NULL であることを 許可しない |
UQ Unique Key | テーブル内で同じ値のデータの重複を 許さないカラムに設定する (メールアドレスなど) 1つのテーブル内で複数設定できる NULL値を許可することも可能 (NULL値は重複してもよい) |
B Binary Column | カラム値の照合順序を大文字小文字の 区別ありにする |
AI Auto Increment | カラムに自動的に連番を振る |
Default | カラムのデフォルト値を指定する |
テーブルの作成
「menu_types」と「foodname」の2つのテーブルを 「foodmenu_db」 データベース内に作成します。
menu_types テーブル
id | name |
---|---|
1 | メイン |
2 | ドリンク |
3 | デザート |
CREATE TABLE menu_types (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10) NOT NULL
);
foodname テーブル
カラム名 | データ型 | 主キー | 自動 連番 | NULL |
---|---|---|---|---|
id | 整数 | ◎ | ○ | ✖ |
name | 可変長文字列 (最大20字) | ○ | ||
price | 整数 | ✖ | ||
foodtype_id | 整数 | ○ | ||
intro | 可変長文字列 (最大255字) | ✖ |
CREATE TABLE foodname (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
price INT,
foodtype_id INT DEFAULT 1,
intro VARCHAR(255)
);
テーブルの削除
DROP TABLE テーブル名;
テーブルの中身を削除
TRUNCATE テーブル名;
テーブル一覧の表示
SHOW TABLES;
テーブルの構造を表示
DESCRIBE テーブル名 ;
データの入力(初期値の入力)
方法1
INSERT INTO テーブル名 VALUES (値1,値2,…);
「menu_types 」テーブルにデータを追加します。
INSERT INTO menu_types
VALUES
(NULL, ‘メイン’),
(NULL, ‘ドリンク’),
(NULL, ‘デザート’);
- 全てのカラムの値をテーブルの定義通りの順番で指定する必要がある
- 数値やNULLはそのまま記述する
- 文字列や日時はシングルクォートかダブルクォートで囲む
方法2
INSERT INTO テーブル名 (カラム1,カラム2,…) VALUES (値1,値2,…);
「foodname」 テーブルにデータを追加します。
INSERT INTO foodname
(name, price, intro)
VALUES
(‘ハンバーグ’, 980, ‘赤ワインがしっかり効いている大人の味です。ご飯やパンに合うデミグラスソースが最高!’),
(‘パスタ’, 800, ‘ほうれん草とエリンギでビタミンたっぷり! ベーコンが隠し味になる、和風醤油パスタです ‘),
(‘ブレンドコーヒー’, 800, ‘当店オリジナルのブレンドコーヒー’),
(‘オレンジジュース’, 800, ”),
(‘生ビール’, 800, ”),
(‘バニラアイス’, 800, ‘北海道産のミルクを使ったコクのあるバニラアイス’),
(‘シーフードピラフ’, 800, ”),
(‘チョコレートブラウニー’, 450, ”);
NOT NULL に設定されておりDEFAULTが設定されていないカラムは省略不可
AUTO_INCREMENTが設定されているカラムは省略可
データの更新・追加・削除
ハンバーグの値段を800円に変更します。
(複数のカラムを同時に更新する場合はカンマで区切って列挙する)
UPDATE foodname
SET
price=1200
WHERE id=1;
オレンジジュースの商品紹介を設定します。
UPDATE foodname
SET
intro=’ご注文を受けてから絞る生のオレンジジュースです。’
WHERE id=4;
シーフードピラフを「foodname」テーブルから削除します。
削除したデータは元に戻すことができません!
WHEREで削除データを指定しないと全てのデータが削除されてしまいます!
「status」など 状態を管理するためのカラムを用意しておき 削除状態に更新する方法(論理削除)もあります。
DELETE FROM foodname
WHERE id=7;
データの取得
商品名 と 値段 のカラムのみを取得して表示します。
SELECT name, price
FROM foodname;
値段が 700円以上のメニューを検索します。
SELECT * FROM foodname
WHERE price>=700;
名前に「ブ」の字を含む会員のリストを取得します。
SELECT * FROM foodname
WHERE name
LIKE ‘%ブ%’;
全メニューの平均価格を取得します。
SELECT AVG(price)
FROM foodname ;
全メニューを価格の安い順に並べて取得します。
SELECT * FROM members
ORDER BY
price ASC;
全メニューを価格の安い順に並べて先頭から 2つのデータを取得します。
SELECT * FROM foodname
ORDER BY
price ASC
LIMIT 2;