Вибір даних з таблиці: сирий SQL
Як ви бачили у відео, щоб отримувати доступ до даних у базі та працювати з ними, спершу потрібно встановити з'єднання, застосувавши метод .connect() до двигуна (engine). Це тому, що функція create_engine(), яку ви використовували раніше, повертає екземпляр двигуна, але фактичне з'єднання не відкривається, доки не буде виконана дія, що його потребує, наприклад запит.
Використовуючи щойно вивчене про SQL і застосувавши метод .execute() до нашого з'єднання, ми можемо виконати сирий SQL‑запит, щоб отримати всі записи з таблиці census. Об'єкт, який повертає метод .execute(), — це ResultProxy. До цього ResultProxy ми можемо застосувати метод .fetchall(), щоб отримати результати — тобто ResultSet.
У цій вправі ви використаєте традиційний SQL‑запит. Зверніть увагу: коли ви виконуєте запит за допомогою сирого SQL, ви звертаєтеся до таблиці безпосередньо в базі даних. Зокрема, крок рефлексії тут не потрібен.
У наступній вправі ви перейдете до SQLAlchemy і почнете розуміти його переваги. Успіхів!
Ця вправа є частиною курсу
Вступ до баз даних у Python
Інструкції до вправи
- Використайте метод
.connect()об'єктаengine, щоб створити з'єднання. - Складіть SQL‑інструкцію, що вибирає всі стовпці з
census, і збережіть її вstmt. Зверніть увагу: SQL‑інструкція має бути рядком. - Застосуйте методи
.execute()і.fetchall()доconnectionта збережіть результат уresults. Пам'ятайте: спочатку.execute(), потім.fetchall(), іstmtпотрібно передати до.execute(). - Виведіть
results.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///census.sqlite')
# Create a connection on engine
connection = ___
# Build select statement for census table: stmt
stmt = ____
# Execute the statement and fetch the results: results
results = ____
# Print results
print(____)