テーブルにデータを新規に格納するにはINSERT文を使用します。INSERT文を使うことで、テーブルに新たな行が追加されることになります。

INSERT文の基本構文1
INSERT INTO <テーブル名> (<列名1>, …) VALUES (<値1>,…);

上記した構文では列名を記述していますが、列名を省略することもできます。

INSERT文の基本構文2
INSERT INTO <テーブル名> VALUES (<値1>,…);

この場合、INTO句で指定したテーブルの列の順番に、登録する値をカンマ(,)で区切って記述します。その際、値の指定はテーブルの定義に従った順番に記述する必要があります。仮に間違った順で記述すると思わぬデータが登録されることになります。なお、列の順番はSHOW CREATE TABLEコマンドで確認できます。

列名を指定する場合(基本構文1)、省略された列にはデフォルト値が入力されます。(デフォルト値はテーブル作成時に指定することができます。)VALUES句にはINTO句で指定した列の順番に登録する値をカンマ(,)で区切って記述します。

実際に行を追加してみよう

前回の記事で作成した「stuff」テーブルに以下のようにデータを格納してみましょう。

> INSERT INTO stuff(name,description) VALUES('大崎','会長');
> INSERT INTO stuff(name,description) VALUES('岡本','社長');
> INSERT INTO stuff(name,description) VALUES('松本','浜田の相方');
> INSERT INTO stuff(name,description) VALUES('加藤','スッキリ');

行が追加されたかどうかは以下のSELECT文で確認できます。

> SELECT * FROM stuff;
+------+-------------+
| name | description |
+------+-------------+
| 大崎 | 会長        |
| 岡本 | 社長        |
| 松本 | 浜田の相方  |
| 加藤 | スッキリ    |
+------+-------------+

複数の行を一括で追加する

前述のINSERT文では1行ずつ行を追加していましたが、3つ目の構文を使えば、複数行をまとめて追加することもできます。

INSERT文の基本構文3
INSERT INTO <テーブル名> VALUES (<値1>,…), (<値2>,…) …;

具体的な使用例は下記になります。

> INSERT INTO stuff(name,description) VALUES
('大崎','会長'),
('岡本','社長'),
('松本','浜田の相方'),
('加藤','スッキリ');

値を指定するときの注意点

INSERT文で値を指定する際、文字列や日付を指定する場合は、値を「’」(シングルクォーテーション)で囲う必要があります。対して、数値型の列に数値を指定する場合は、シングルクォーテーションで囲む必要はありません。