いろは2986023 views
小学算数1194618 views
世界の国560595 views
小学理科717236 views
小学社会308636 views
LaTeX957300 views
高校化学2913383 views
高校物理158224 views
教育148875 views
高校国語785655 views
Help
Tools

English

INSERT でデータを追加する

テーブルにデータを追加するには INSERT 文を使います。

基本構文

INSERT INTO テーブル名 (カラム1, カラム2, ...) VALUES (1,2, ...);

たとえば users テーブルに新しいユーザーを追加するには、こう書きます。

INSERT INTO users (name, email, age) VALUES ('田中', 'tanaka@example.com', 25);

カラム名と値の順番は対応している必要があります。

カラム名を省略する

すべてのカラムに値を入れる場合は、カラム名を省略することもできます。

INSERT INTO users VALUES (1, '田中', 'tanaka@example.com', 25);

ただし、テーブル定義の順番どおりに値を指定しなければなりません。カラムの順番を覚えていないといけないので、あまりおすすめしません。カラム名は明示するほうが安全です。

複数行を一度に追加する

VALUES の後ろにカンマで区切って複数の値セットを書くと、一度に複数行を追加できます。

INSERT INTO users (name, email, age) VALUES 
  ('田中', 'tanaka@example.com', 25),
  ('鈴木', 'suzuki@example.com', 30),
  ('佐藤', 'sato@example.com', 28);

1 行ずつ INSERT するより効率がよいです。

NULL を挿入する

NULL を入れたいカラムには、そのまま NULL と書きます。

INSERT INTO users (name, email, age) VALUES ('田中', NULL, 25);

ただし、そのカラムが NOT NULL 制約を持っている場合はエラーになります。

デフォルト値を使う

カラムにデフォルト値が設定されている場合、そのカラムを省略するとデフォルト値が入ります。

-- age カラムを省略(デフォルト値が使われる)
INSERT INTO users (name, email) VALUES ('田中', 'tanaka@example.com');

明示的にデフォルト値を使いたい場合は DEFAULT と書くこともできます。

INSERT INTO users (name, email, age) VALUES ('田中', 'tanaka@example.com', DEFAULT);

AUTO_INCREMENT のカラム

主キーに AUTO_INCREMENT が設定されている場合、そのカラムは省略できます。自動的に連番が振られます。

-- id は AUTO_INCREMENT なので省略
INSERT INTO users (name, email, age) VALUES ('田中', 'tanaka@example.com', 25);
方法説明
カラム省略AUTO_INCREMENT が自動で値を決める
NULL を指定同様に自動で値が決まる
0 を指定同様に自動で値が決まる

INSERT 文はデータ操作の基本です。UPDATE や DELETE と合わせて覚えておきましょう。