НачатьНачать бесплатно

Выборка данных из таблицы с помощью SQLAlchemy

Отличная работа! Пришло время создать ваш первый оператор выборки с помощью SQLAlchemy. SQLAlchemy предлагает удобный «питонический» способ взаимодействия с базами данных. В прошлом упражнении вы обращались к базе данных напрямую через SQL. В SQLAlchemy вы будете работать через объект Table, а SQLAlchemy самостоятельно преобразует ваш запрос в подходящий SQL-оператор. Таким образом, вам не нужно разбираться в различиях между диалектами SQL, такими как MySQL или PostgreSQL: питонический фреймворк SQLAlchemy упрощает рабочий процесс и делает работу с данными более эффективной. Именно поэтому его стоит изучить, даже если вы уже знакомы с традиционным SQL.

В этом упражнении вы снова создадите запрос для получения всех записей из таблицы census. На этот раз вы воспользуетесь функцией select() из модуля sqlalchemy. Эта функция принимает обязательный аргумент — список таблиц или столбцов. Например: select([my_table]).

Кроме того, вы получите лишь несколько записей из ResultProxy с помощью метода .fetchmany(), передав аргумент size с нужным количеством записей.

Table и MetaData уже импортированы. Метаданные доступны как metadata, а соединение с базой данных — как connection.

Это упражнение является частью курса

Введение в базы данных на Python

Посмотреть курс

Инструкции к упражнению

  • Импортируйте select из модуля sqlalchemy.
  • Выполните отражение таблицы census. Этот код уже написан за вас.
  • Создайте запрос с помощью функции select(), чтобы получить все записи из таблицы census. Для этого передайте в select() список с одним элементом: census.
  • Выведите stmt на экран, чтобы увидеть сформированный SQL-запрос. Этот код уже написан за вас.
  • Получите 10 записей из таблицы census и сохраните их в results. Для этого:
    • Вызовите метод .execute() на объекте connection, передав stmt в качестве аргумента, чтобы получить ResultProxy.
    • Вызовите .fetchmany() с нужным значением аргумента size на connection.execute(stmt), чтобы получить ResultSet.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Import select
from ____ import ____

# Reflect census table via engine: census
census = Table('census', metadata, autoload=True, autoload_with=engine)

# Build select statement for census table: stmt
stmt = ____

# Print the emitted statement to see the SQL string
print(stmt)

# Execute the statement on connection and fetch 10 records: result
results = ____.____(____).____(size=___)

# Execute the statement and print the results
print(results)
Редактировать и запускать код