ComeçarComece de graça

Inserindo uma única linha

Há várias maneiras de fazer um insert com SQLAlchemy; porém, vamos focar na que segue o mesmo padrão do comando select.

Ela usa uma instrução insert em que você especifica a tabela como argumento e fornece os dados que deseja inserir no valor por meio do método .values() como argumentos nomeados. Por exemplo, se my_table contém as colunas my_col_1 e my_col_2, então insert(my_table).values(my_col_1=5, my_col_2="Example") criará uma linha em my_table com o valor em my_col_1 igual a 5 e o valor em my_col_2 igual a "Example".

Observe a diferença na sintaxe: ao adicionar um where a uma instrução existente, incluímos o nome da tabela além do nome da coluna, por exemplo new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Isso é necessário porque a instrução existente pode envolver várias tabelas.

Por outro lado, você só pode fazer insert de um registro em uma única tabela, então não precisa incluir o nome da tabela ao usar values() para inserir, por exemplo stmt = insert(my_table).values(my_col = 10).

Aqui, o nome da tabela é data. Você pode executar repr(data) no console para examinar a estrutura da tabela.

Este exercício faz parte do curso

Introdução a Bancos de Dados em Python

Ver curso

Instruções do exercício

  • Importe insert e select do módulo sqlalchemy.
  • Construa uma instrução de inserção insert_stmt para a tabela data definindo name como 'Anna', count como 1, amount como 1000.00 e valid como True.
  • Execute insert_stmt com a connection e armazene em results.
  • Imprima o atributo .rowcount de results para ver quantos registros foram inseridos.
  • Construa uma instrução de seleção para consultar data pelo registro com name igual a 'Anna'.
  • Execute a solução para imprimir os resultados da execução da instrução de seleção.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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())
Editar e executar o código