SQLite | データ変更 | INSERTによるデータ追加

全列へ値を追加する

INSERT INTO table_name VALUES (value1, value2, ...);

テーブルの列数と同じ数の値を、列の定義順に指定する。

create table user (id integer, name text, old integer, address text);
insert into user values (1, 'devkuma', 25, 'Seoul');
insert into user values (3, 'kimkc', 32, 'Daejeon');
insert into user values (5, 'ariakuma', 27, 'Busan');
insert into user values (6, 'happykuma', 20, 'Gwangju');

この4列のテーブルに3つだけ値を指定すると、列数不一致のエラーになる。

指定した列へ追加する

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

省略した列には宣言済みのデフォルト値が入り、デフォルトがなければNULLになる。

create table user (id integer, name text, address text default 'no value');
insert into user (id, name, address) values (1, 'devkuma', 'Seoul');
insert into user (id, name) values (2, 'Busan');
insert into user (id, address) values (3, 'araikuma');

2行目の住所はno value、3行目の名前はNULLとなる。列の記述順は自由だが、定義順に合わせると読みやすい。

デフォルト値だけを追加する

INSERT INTO table_name DEFAULT VALUES;

前のテーブルではidnameNULLaddressno valueになる。

複数行を追加する

create table user (id integer, name text, old integer);
insert into user values
 (1, 'devkuma', 25),
 (3, 'kimkc', 32),
 (5, 'ariakuma', 27);

一つの文で複数行を追加すると、データベースへの往復回数を減らせる。