テーブルにデータを新規に格納するには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文で値を指定する際、文字列や日付を指定する場合は、値を「’」(シングルクォーテーション)で囲う必要があります。対して、数値型の列に数値を指定する場合は、シングルクォーテーションで囲む必要はありません。
