SQLite Инструкция SELECT

SQLiteSELECTSELECT statement используется для извлечения данных из таблиц базы данных SQLite, возвращая данные в виде таблиц результатов. Эти таблицы результатов также называются результирующими наборами.

Синтаксис

Базовый синтаксис инструкции SELECT в SQLite выглядит следующим образом:

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 используется для извлечения и отображения всех этих записей. Здесь первые две команды используются для настройки правильно форматированного вывода.

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команда устанавливает ширину первого столбца равной 10, второго столбца — 20, а третьего — 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 следует использовать следующий SELECT-запрос к таблицеsqlite_master, чтобы вывести список всех таблиц, созданных в базе данных:

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
)
Другие расширения