INSERT の使い方

行を加える

書き方

INSERT INTO 表 (列, …) VALUES (値, …), (値, …);
INSERT INTO 表 SELECT …;

列を書かないときはすべての列を表の順番で。書かなかった列は DEFAULT か NULL になります。

よく使うオプション

オプション意味
INSERT INTO 表 (列, …) VALUES (…)列を決めて 1 行入れる
VALUES (…), (…)何行かまとめて入れる
INSERT INTO 表 SELECT …問い合わせの結果を入れる
DEFAULT列の決まった値(初めの値)を入れる

例

INSERT INTO departments (id, name) VALUES (4, '広報');INSERT 0 1

部署を 1 つ加えます。列の名前と値は、同じ順番で書きます。

INSERT INTO customers (id, name, city) VALUES (201, '石井', '仙台'), (202, '森', '札幌');INSERT 0 2

2 行をまとめて加えます。書かなかった phone の列は NULL になります。

INSERT INTO orders (id, customer_id, total, ordered_on, status) VALUES (9001, 201, 4800, CURRENT_DATE, DEFAULT);

status には、表を作ったときに決めた初めの値を入れます。

INSERT INTO archived_orders SELECT * FROM orders WHERE ordered_on < '2023-01-01';

古い注文を、保管用の表に写します。SELECT の結果をそのまま入れられます。

よくある間違い・注意

  • 列の名前を書かないと、表のすべての列を表の順番で入れることになります。表の形が変わると壊れるので、列の名前は書いておきます。
  • 主キーや UNIQUE の列に同じ値を入れるとエラーになり、その文はまるごと入りません。

実際に打って練習する

SQL コースの Lv38「行を加える INSERT」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

SQL 構文一覧(使い方と例)へ戻る