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

Метод scalars класса Connection

Метод scalars класса Connection выполняет SQL-запрос и возвращает объект ScalarResult, который отдает значения первой колонки каждой строки результата. Первым параметром метод принимает SQL-выражение или текстовый запрос. Дополнительно можно передать параметры запроса через именованные аргументы. Метод удобен, когда из строки нужна только одна колонка, а не весь набор данных.

Синтаксис

Connection.scalars(statement, parameters)

Пример

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

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.scalars(text('SELECT 1 UNION SELECT 2 UNION SELECT 3')) print(list(res))

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

[1, 2, 3]

Пример

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

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article 1')")) conn.execute(text("INSERT INTO articles VALUES (2, 'article 2')")) conn.commit() res = conn.scalars(text('SELECT title FROM articles ORDER BY id')) print(list(res))

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

['article 1', 'article 2']

Пример

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

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.scalars(text('SELECT 1 UNION SELECT 2 UNION SELECT 3')) print(res.first())

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

"1"

Пример

Давайте передадим параметры в запрос через именованные аргументы:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.scalars( text('SELECT :val AS num'), {'val': 10} ) print(res.first())

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

"10"

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

  • класс Connection,
    который представляет соединение с базой данных
  • метод scalar,
    который возвращает одно скалярное значение
  • метод execute,
    который выполняет SQL-запрос и возвращает строки
  • метод commit,
    который фиксирует текущую транзакцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить