LaTeX958047 views
高校倫理1434489 views
中学社会667376 views
英語608929 views
小学社会308869 views
Computer365743 views
中学理科1627252 views
小学理科717678 views
ヒストリア285220 views
小学算数1196248 views

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 と合わせて覚えておきましょう。