SQLite | データの検索 | SELECT文でデータを取得する
テーブルに保存されたデータはSELECT文で取得します。ここでは基本的な構文を説明します。
SELECT文でデータを取得する
テーブルのデータを取得するにはSELECTを使います。基本構文は次のとおりです。
SELECT カラム1, カラム2, ... FROM テーブル名;
FROMの後にテーブル名、SELECTの後に取得するカラムを記述します。複数のカラムはカンマで区切ります。
条件を指定しない場合はすべての行を取得します。条件に合う行だけを取得するにはWHERE句を使います。
–
例として次のテーブルを作成します。
create table user (id integer, name text, address text);
sqlite> create table user (id integer, name text, address text);
sqlite>
テーブルにデータを追加します。
insert into user values (1, 'devkuma', 'Seoul');
insert into user values (2, 'kimkc', 'Busan');
insert into user values (3, 'araikuma', 'Seoul');
insert into user values (4, 'happykuma', 'Seoul');
insert into user values (5, 'mykuma', 'Daejeon');
sqlite> insert into user values (1, 'devkuma', 'Seoul');
sqlite> insert into user values (2, 'kimkc', 'Busan');
sqlite> insert into user values (3, 'araikuma', 'Seoul');
sqlite> insert into user values (4, 'happykuma', 'Seoul');
sqlite> insert into user values (5, 'mykuma', 'Daejeon');
sqlite>
userテーブルのidとnameを取得します。
select id, name from user;
指定したテーブルから目的のカラムを取得できました。
sqlite> select id, name from user;
1|devkuma
2|kimkc
3|araikuma
4|happykuma
5|mykuma
SQLite CLIコマンドで結果の表示形式を変更できます。以降の例では次の設定を使います。
.header on
.mode column
sqlite> .header on
sqlite> .mode column
sqlite>
sqlite> select id, name from user;
id name
---------- ----------
1 devkuma
2 kimkc
3 araikuma
4 happykuma
5 mykuma
sqlite>
すべてのカラムを取得する
すべてのカラムを取得するには、SELECTに各カラムを列挙できます。
select id, name, address from user;
sqlite> select id, name, address from user;
id name address
---------- ---------- ----------
1 devkuma Seoul
2 kimkc Busan
3 araikuma Seoul
4 happykuma Seoul
5 mykuma Daejeon
sqlite>
また、アスタリスク(*)を使うと、すべてのカラムをテーブル順に取得できます。
SELECT * FROM テーブル名;
*を使ってuserテーブルを検索します。
select * from user;
すべてのカラムを取得できました。
sqlite> select * from user;
id name address
---------- ---------- ----------
1 devkuma Seoul
2 kimkc Busan
3 araikuma Seoul
4 happykuma Seoul
5 mykuma Daejeon
sqlite>
rowidのような特殊値は*に含まれません。必要な場合は、アスタリスクとは別に指定します。
select *, rowid from user;
結果には通常の全カラムに加えて、明示したrowidも含まれます。
sqlite> select *, rowid from user;
id name address rowid
---------- ---------- ---------- ----------
1 devkuma Seoul 1
2 kimkc Busan 2
3 araikuma Seoul 3
4 happykuma Seoul 4
5 mykuma Daejeon 5
sqlite>