РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
201 of 711 menu

Функция values

Функция values создает конструкцию VALUES, которая представляет собой набор строк со значениями для использования в SQL-запросах. Чаще всего применяется совместно с select для создания производных таблиц, а также в операциях insert и update. Первым параметром передаются именованные колонки, последующими - строки значений.

Синтаксис

values(column1, column2, ..., name="alias")

Пример

Давайте создадим простую конструкцию VALUES с двумя колонками и двумя строками:

from sqlalchemy import values, column stmt = values( column("id"), column("title"), name="articles" ).data([ (1, "article 1"), (2, "article 2"), ]) print(stmt)

Результат выполнения кода:

"VALUES (1, 'article 1'), (2, 'article 2')"

Пример

Давайте используем конструкцию VALUES в качестве производной таблицы в запросе SELECT:

<+python+> from sqlalchemy import values, column, select stmt = values( column("id"), column("title"), name="articles" ).data([ (1, "article 1"), (2, "article 2"), ]) query = select(stmt.c.id, stmt.c.title) print(query) <-python+>

Итоговый SQL запрос:

SELECT articles.id, articles.title FROM (VALUES (1, 'article 1'), (2, 'article 2')) AS articles (id, title)

Пример

Давайте выполним запрос к базе данных SQLite в памяти и получим результат:

<+python+> from sqlalchemy import create_engine, values, column, select engine = create_engine("sqlite:///:memory:") stmt = values( column("id"), column("title"), name="articles" ).data([ (1, "article 1"), (2, "article 2"), (3, "article 3"), ]) query = select(stmt.c.id, stmt.c.title) with engine.connect() as conn: res = conn.execute(query).fetchall() print(res) <-python+>

Результат выполнения кода:

<+python+> [(1, 'article 1'), (2, 'article 2'), (3, 'article 3')] <-python+>

Пример

Давайте используем конструкцию VALUES с фильтрацией через where:

<+python+> from sqlalchemy import create_engine, values, column, select engine = create_engine("sqlite:///:memory:") stmt = values( column("id"), column("title"), column("status"), name="articles" ).data([ (1, "article 1", "published"), (2, "article 2", "draft"), (3, "article 3", "published"), ]) query = select(stmt.c.id, stmt.c.title).where(stmt.c.status == "published") with engine.connect() as conn: res = conn.execute(query).fetchall() print(res) <-python+>

Результат выполнения кода:

<+python+> [(1, 'article 1'), (3, 'article 3')] <-python+>

Смотрите также

  • функцию select,
    которая создает SELECT-запрос
  • функцию insert,
    которая создает INSERT-запрос
  • функцию update,
    которая создает UPDATE-запрос
  • функцию union,
    которая объединяет результаты запросов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить