Метод 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,
который фиксирует текущую транзакцию