Шаг 194.
Основы языка Python.
Основы SQLite. Вложенные запросы

    На этом шаге мы рассмотрим создание и использование таких запросов.

    Результаты выполнения инструкции SELECT можно использовать в других инструкциях, создавая вложенные запросы. Для создания таблицы с помощью вложенного запроса служит следующий формат:

  CREATE [TEMP | TEMPORARY] TABLE [IF NOT EXISTS]
    [<Название базы данных>.] <Haзвание таблицы> AS <Запрос SELECT>;

    Для примера создадим временную копию таблицы rubr и выведем ее содержимое:


Рис.1. Пример вложенного запроса

    В результате выполнения вложенного запроса создается таблица с полями, указанными после ключевого слова SELECT, и сразу заполняется данными.

    Использовать вложенные запросы можно и в инструкции INSERT. Для этого предназначен следующий формат:

  INSERT [OR <Алгоритм>] INTO [<Название базы данных>.]<Название таблицы>
    [ (<Поле1>, <Поле2>, ...)] <Запрос SELECT>;

    Очистим временную таблицу tmprubr, а затем опять заполним ее с помощью вложенного запроса:


Рис.2. Использование вложенного запроса в инструкции INSERT

    Если производится попытка вставить повторяющееся значение, и не указан <Алгоритм>, то это приведет к ошибке. С помощью алгоритмов ROLLBACK, ABORT, FAIL, IGNORE или REPLACE можно указать, как следует обрабатывать записи с дублированными значениями. При использовании алгоритма IGNORE повторяющиеся записи отбрасываются, а при использовании REPLACE новые записи заменяют существующие.

    Использовать вложенные запросы можно также в инструкции WHERE. В этом случае вложенный запрос размещается в операторе IN. Для примера выведем сайты, зарегистрированные в рубрике с названием Программирование:


Рис.3. Использование вложенного запроса в инструкции WHERE

    На следующем шаге мы рассмотрим транзакции.




Предыдущий шаг Содержание Следующий шаг