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

Вставка одной строки

В SQLAlchemy существует несколько способов выполнить вставку данных, однако мы сосредоточимся на том, который следует той же логике, что и инструкция select.

Он использует инструкцию insert, где таблица указывается в качестве аргумента, а данные для вставки передаются через метод .values() в виде именованных аргументов. Например, если таблица my_table содержит столбцы my_col_1 и my_col_2, то insert(my_table).values(my_col_1=5, my_col_2="Example") создаст в my_table строку со значением 5 в столбце my_col_1 и значением "Example" в столбце my_col_2.

Обратите внимание на разницу в синтаксисе: при добавлении условия where к существующей инструкции необходимо указывать имя таблицы вместе с именем столбца, например: new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Это необходимо, так как существующая инструкция может затрагивать несколько таблиц.

С другой стороны, вставка через insert выполняется только в одну таблицу, поэтому при использовании values() имя таблицы указывать не нужно, например: stmt = insert(my_table).values(my_col = 10).

В данном упражнении таблица называется data. Вы можете выполнить repr(data) в консоли, чтобы изучить структуру таблицы.

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

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

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

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

  • Импортируйте insert и select из модуля sqlalchemy.
  • Создайте инструкцию вставки insert_stmt для таблицы data, задав следующие значения: name'Anna', count1, amount1000.00, validTrue.
  • Выполните insert_stmt через connection и сохраните результат в переменную results.
  • Выведите атрибут .rowcount объекта results, чтобы узнать, сколько записей было вставлено.
  • Создайте инструкцию SELECT для запроса к таблице data, чтобы найти запись со значением 'Anna' в столбце name.
  • Запустите решение, чтобы вывести результаты выполнения инструкции SELECT.

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

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

# Import insert and select from sqlalchemy
from sqlalchemy import ____, ____

# Build an insert statement to insert a record into the data table: insert_stmt
insert_stmt = insert(____).values(name=____, ____, ____, ____)

# Execute the insert statement via the connection: results
results = connection.execute(____)

# Print result rowcount
print(____)

# Build a select statement to validate the insert: select_stmt
select_stmt = select([data]).where(____ == ____)

# Print the result of executing the query.
print(connection.execute(select_stmt).first())
Редактировать и запускать код