ПочатиПочніть безкоштовно

Вибір даних з Table за допомогою SQLAlchemy

Чудова робота! Тепер час зібрати свій перший вираз select у SQLAlchemy. SQLAlchemy надає зручний «пайтонівський» спосіб взаємодії з базами даних. У попередній вправі, використовуючи «сирий» SQL, ви зверталися до бази даних безпосередньо. Коли ж ви працюєте з SQLAlchemy, ви взаємодієте через об'єкт Table, а SQLAlchemy подбає про переклад вашого запиту у відповідну SQL-інструкцію. Завдяки цьому вам не доведеться зважати на відмінності між діалектами традиційного SQL, як-от MySQL чи PostgreSQL, — ви скористаєтеся пайтонівським фреймворком SQLAlchemy, щоб спростити робочий процес і ефективніше виконувати запити до даних. Саме тому 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)
Редагувати та запускати код