レコードの追加
INSERT INTO
INSERT INTOは、指定のテーブルにレコードを挿入します。
「items」テーブルにレコードを追加します。
code | name | price | stock |
---|---|---|---|
D00001 | コーヒー | 300 | 100 |
SQL
- 「id」「created_at」「updated_at」は、DDLの設定により自動で入力されます。
レコードの確認
データを追加したら「items」テーブルのレコードを表示してみましょう。

-「id」は連番
- 「created_at」「updated_at」は挿入した日時が自動入力
UNIQUE制約で重複データエラー
「code」カラムはテーブル定義でUNIQUE制約のため、データ重複できません。
重複データの追加
code = D00001でレコード追加すると、既に存在するのでエラーになります。
SQL
結果
他のデータ追加
「code」カラムが重複しないようにレコード追加できるか、確認してみましょう。
SQL
レコード更新
UPDATE
UPDATEでレコード更新します。
レコード更新の注意
「items」テーブルをそのまま「UPDATE」するとすべてのレコードが更新されるので注意が必要です。「UPDATE」は、WHERE句で条件指定してレコードを更新しましょう。
now()
now() は現在の日時を取得する、MySQL関数です。
SQL
レコードを1件更新
「items」テーブルで、id = 1のレコードを更新します。
- 「id」カラムはプライマリーキー
- stock = 200
- 「updated_at」は現在の時刻(DATETIME型)
レコード削除
DELETE
DELETEはテーブルからレコードを削除します。
レコード削除の注意点
DELETEは条件指定しないと、レコードがすべて削除されるので注意が必要です。WHERE句で条件を指定してレコード削除しましょう。
すべてのレコードを削除
条件を指定してレコード削除
レコードを1件削除
items.id = 1 のレコードを削除します。
SQL
テーブル初期化
TRUNCATE
TRUNCATEはテーブルのデータを初期化します。DELETEよりも高速にレコードを削除し、同時にIndexやシーケンスなどのテーブル情報もリセットされます。
- TRUNCATEはテーブルを初期化するため、初回データリセット以外で利用しないようにしましょう。
items テーブルの初期化
「items」テーブルを初期化します。
演習
問題1
レコード挿入のSQLで、【1】【2】にあてはまるのはどれですか?
- 【1】UPDATE 【2】VALUES
- 【1】UPDATE 【2】SET
- 【1】INSERT INTO 【2】VALUES
- 【1】INSERT 【2】VALUES
問題2
レコード更新のSQLで、【1】【2】【3】にあてはまるのはどれですか?
- 【1】UPDATE 【2】WHERE【3】SET
- 【1】UPDATE 【2】SET【3】WHERE
- 【1】INSERT INTO 【2】WHERE【3】SET
- 【1】INSERT INTO 【2】SET【3】WHERE
問題3
レコード削除のSQLで、【1】【2】にあてはまるのはどれですか?
- 【1】DELETE 【2】WHERE
- 【1】DELETE FROM 【2】WHERE
- 【1】DELETE 【2】FROM
- 【1】TRUNCATE【2】FROM