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

Метод execute

Метод execute класса Connection выполняет SQL-запрос к базе данных и возвращает объект результата. Первым параметром метод принимает SQL-запрос в виде текста или конструкции SQLAlchemy. Вторым необязательным параметром передаются словарь параметров для подстановки в запрос.

Синтаксис

connection.execute(statement, [parameters])

Пример

Давайте выполним простой SQL-запрос и получим объект результата:

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

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

<sqlalchemy.engine.cursor.CursorResult object at 0x...>

Пример

Давайте создадим таблицу и вставим в нее данные с помощью метода execute:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT)')) conn.execute( text('INSERT INTO articles (title) VALUES (:title)'), {'title': 'article'} ) conn.commit() res = conn.execute(text('SELECT title FROM articles')) print(res.fetchall())

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

[('article',)]

Пример

Давайте выполним запрос с несколькими параметрами и выведем строки по одной:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT, status TEXT)')) conn.execute( text('INSERT INTO articles (title, status) VALUES (:title, :status)'), {'title': 'article', 'status': 'published'} ) conn.commit() res = conn.execute( text('SELECT id, title FROM articles WHERE status = :status'), {'status': 'published'} ) for row in res: print(row)

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

(1, 'article')

Пример

Давайте посмотрим, какой SQL-запрос выполняется при вызове метода execute с конструкцией SQLAlchemy:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:', echo=True) with engine.connect() as conn: conn.execute(text('SELECT id, title FROM articles'))

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

SELECT id, title FROM articles

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

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