SQLite SELECT 文

SQLite のSELECT文は、SQLite データベースのテーブルからデータを取得し、結果テーブルとしてデータを返すために使用されます。これらの結果テーブルは、結果セットとも呼ばれます。

構文

SQLite の SELECT 文の基本構文は次のとおりです:

SELECT column1, column2, columnN FROM table_name;

ここで、column1, column2... はテーブルのフィールドであり、それらの値は取得したいものです。利用可能なすべてのフィールドを取得したい場合は、次の構文を使用できます:

SELECT * FROM table_name;

例

COMPANY テーブルに次のレコードがあるとします:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

以下は、SELECT 文を使用してこれらのレコードをすべて取得して表示する例です。ここでは、最初の2つのコマンドを使用して、出力の書式を正しく設定しています。

sqlite>.header on
sqlite>.mode column
sqlite> SELECT * FROM COMPANY;

最後に、次の結果が得られます:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

COMPANY テーブルの指定したフィールドだけを取得したい場合は、次のクエリを使用します:

sqlite> SELECT ID, NAME, SALARY FROM COMPANY;

上記のクエリは次の結果を生成します:

ID          NAME        SALARY
----------  ----------  ----------
1           Paul        20000.0
2           Allen       15000.0
3           Teddy       20000.0
4           Mark        65000.0
5           David       85000.0
6           Kim         45000.0
7           James       10000.0

出力列の幅を設定する

場合によっては、表示する列のデフォルト幅が原因で.mode column、このような場合、出力が切り捨てられます。このとき、次を使用できます:.width num, num....コマンドで表示列の幅を設定します。次のようになります:

sqlite>.width 10, 20, 10
sqlite>SELECT * FROM COMPANY;

上記の.widthコマンドは、1列目の幅を10、2列目の幅を20、3列目の幅を10に設定します。したがって、上記の SELECT 文は次の結果になります:

ID          NAME                  AGE         ADDRESS     SALARY
----------  --------------------  ----------  ----------  ----------
1           Paul                  32          California  20000.0
2           Allen                 25          Texas       15000.0
3           Teddy                 23          Norway      20000.0
4           Mark                  25          Rich-Mond   65000.0
5           David                 27          Texas       85000.0
6           Kim                   22          South-Hall  45000.0
7           James                 24          Houston     10000.0

スキーマ情報

すべてのドットコマンドは SQLite プロンプトでのみ使用できるため、SQLite を使ったプログラミングを行う場合は、次のsqlite_masterテーブルの SELECT 文を使用して、データベース内に作成されたすべてのテーブルを一覧表示します:

sqlite> SELECT tbl_name FROM sqlite_master WHERE type = 'table';

testDB.db に唯一の COMPANY テーブルがすでに存在すると仮定すると、次の結果が生成されます:

tbl_name
----------
COMPANY

COMPANY テーブルに関する完全な情報を次のように一覧表示できます:

sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'COMPANY';

testDB.db に唯一の COMPANY テーブルがすでに存在すると仮定すると、次の結果が生成されます:

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
)
その他の拡張