本文へスキップ
BecomeCoder

SQL データ操作 (DML)コース · 第4章 データを変える · レッスン15

INSERT ― 行を追加する

ブラウザで完結

導入

まずは CRUD の Create にあたる INSERT。テーブルに新しい行を追加します。

説明

INSERT INTO に「どのテーブルの・どの列に・どんな値を入れるか」を指定します。

INSERT INTO users (id, name, age, city, joined_at)
VALUES (7, '山田', 25, '名古屋', '2026-05-01');

(id, name, age, city, joined_at) が列の並び、VALUES (...) がそれに対応する値です。列の順番と値の順番を一致させます。文字列'シングルクオート' で囲み、数値はそのまま書きます。

flowchart LR
    Cols["(id, name, age, city, joined_at)<br/>← 入れる列の並び"]
    Vals["(7, '山田', 25, '名古屋', '2026-05-01')<br/>← 対応する値(同じ順番!)"]
    Cols --> Vals

INSERT は結果の表を返しません。実行すると「1 行に影響」のように表示されます。追加された行を確かめるには、続けて SELECT してみましょう。

SELECT * FROM users;

値を VALUES の後ろにカンマで並べれば、複数行を一度に追加できます。

INSERT INTO products (id, name, price, category_id, stock) VALUES
  (8, 'マウスパッド', 900, 1, 50),
  (9, 'HDMIケーブル', 1200, 4, 80);

なお、列の一覧は省略もできますが(INSERT INTO users VALUES (...))、その場合は全列を定義順どおりに書く必要があります。列名を明示するほうが安全で読みやすいので、基本は書く習慣を付けましょう。省略した列に DEFAULT 値が設定されていれば、その値が入ります(products.stock は既定 0)。

やってみよう

初期表示の INSERT を実行し、「1 行に影響」と出ることを確認します。続けて SELECT * FROM users; を実行して、山田さんが7人目として増えていることを見てみましょう。

演習

products テーブルに、id=10・name=‘Webカメラ三脚’・price=2500・category_id=4・stock=15 の商品を1件追加してください。

ヒント1を見る

列名は (id, name, price, category_id, stock)。数値はそのまま、文字列は '...' で囲みます。

ヒント2を見る

INSERT INTO products (id, name, price, category_id, stock) VALUES (10, 'Webカメラ三脚', 2500, 4, 15);

実際に動かしてみよう

下のエディタにクエリを書いて「実行」を押すと、ブラウザ内のSQLiteで結果が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう。

SQL — ブラウザ内で実行(SQLite)

ブラウザ内でSQLを動かす環境(SQLite)を読み込みます(初回のみ一瞬)。
スクロールして表示された時点でも自動で読み込まれます。