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

Выборка данных из таблицы: чистый SQL

Как вы видели в видео, чтобы получить доступ к данным в базе данных и работать с ними, сначала необходимо установить соединение с помощью метода .connect(), вызванного на объекте engine. Это связано с тем, что функция create_engine(), которую вы использовали ранее, возвращает экземпляр engine, но не открывает соединение до тех пор, пока не будет вызвано действие, требующее подключения, — например, выполнение запроса.

Используя полученные знания о SQL и метод .execute() на объекте соединения, мы можем выполнить «сырой» SQL-запрос и получить все записи из таблицы census. Метод .execute() возвращает объект ResultProxy. На нём можно вызвать метод .fetchall(), чтобы получить результаты — то есть ResultSet.

В этом упражнении вы будете использовать традиционный SQL-запрос. Обратите внимание: при выполнении запроса через «сырой» SQL вы обращаетесь к таблице непосредственно в базе данных, поэтому шаг отражения (reflection) не нужен.

В следующем упражнении вы перейдёте к SQLAlchemy и познакомитесь с его преимуществами. Вперёд!

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

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

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

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

  • С помощью метода .connect() объекта engine установите соединение с базой данных.
  • Составьте SQL-запрос, который выбирает все столбцы из таблицы census, и сохраните его в переменную stmt. Обратите внимание: SQL-запрос должен быть строкой.
  • Вызовите методы .execute() и .fetchall() на объекте connection и сохраните результат в переменную results. Помните, что .execute() вызывается перед .fetchall(), а в .execute() нужно передать stmt.
  • Выведите 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(____)
Редактировать и запускать код