Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Atualizando no BD | SQLAlchemy
Bancos de Dados em Python

bookAtualizando no BD

Neste capítulo, será abordado como atualizar registros em um banco de dados utilizando o SQLAlchemy. A atualização de registros é fundamental ao modificar dados existentes em suas tabelas, como alterações em descrições ou outros campos. O SQLAlchemy oferece métodos eficientes e diretos para realizar atualizações.

Atualizando um Único Registro

A operação de atualização mais comum é a modificação de um único registro. Para isso, é necessário buscar o objeto, atualizar seus atributos e então salvar as alterações.

product = session.query(Product).filter(Product.id == 1).first()

if product:
    product.description = "Updated description for high-end gaming laptop"
    session.commit()

Para recuperar um produto pelo seu ID, utiliza-se uma consulta com filtro especificando o ID desejado. Após atualizar o campo description do produto, a chamada de session.commit() salva as alterações no banco de dados.

Atualizando Múltiplos Registros

Em alguns casos, é necessário atualizar múltiplos registros simultaneamente. O SQLAlchemy permite o uso de filter() com o método update() para modificar registros de forma eficiente.

session.query(Product).filter(Product.price > 1000).update(
    {Product.description: "Updated description for premium products"}, 
    synchronize_session="fetch"
)
session.commit()

Para filtrar produtos com preço acima de $1000, utiliza-se uma consulta com condição sobre o preço. O método update aplica as alterações desejadas a todos os registros correspondentes, enquanto o argumento synchronize_session="fetch" garante que a sessão permaneça sincronizada após a atualização.

Atualizações em Lote

Para alterações em grande escala, atualizações em lote são mais eficientes, pois modificam diretamente os registros no banco de dados sem carregar objetos na memória. Isso as torna ideais para atualizar várias linhas de uma só vez.

session.query(Product).filter(Product.price < 500).update(
    {Product.description: "Generic description for affordable products"}, 
    synchronize_session="fetch"
)
session.commit()

Este código atualiza de forma eficiente a descrição de todos os produtos com preço inferior a $500 em uma única operação. Atualizações em lote são mais rápidas e economizam memória em comparação com a atualização individual de registros.

Tarefa

Swipe to start coding

  1. Recuperar todos os produtos do banco de dados.
  2. Calcular o novo preço para cada produto, reduzindo-o em 20%.
  3. Salvar os preços atualizados no banco de dados.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 7
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

Awesome!

Completion rate improved to 4.76

bookAtualizando no BD

Deslize para mostrar o menu

Neste capítulo, será abordado como atualizar registros em um banco de dados utilizando o SQLAlchemy. A atualização de registros é fundamental ao modificar dados existentes em suas tabelas, como alterações em descrições ou outros campos. O SQLAlchemy oferece métodos eficientes e diretos para realizar atualizações.

Atualizando um Único Registro

A operação de atualização mais comum é a modificação de um único registro. Para isso, é necessário buscar o objeto, atualizar seus atributos e então salvar as alterações.

product = session.query(Product).filter(Product.id == 1).first()

if product:
    product.description = "Updated description for high-end gaming laptop"
    session.commit()

Para recuperar um produto pelo seu ID, utiliza-se uma consulta com filtro especificando o ID desejado. Após atualizar o campo description do produto, a chamada de session.commit() salva as alterações no banco de dados.

Atualizando Múltiplos Registros

Em alguns casos, é necessário atualizar múltiplos registros simultaneamente. O SQLAlchemy permite o uso de filter() com o método update() para modificar registros de forma eficiente.

session.query(Product).filter(Product.price > 1000).update(
    {Product.description: "Updated description for premium products"}, 
    synchronize_session="fetch"
)
session.commit()

Para filtrar produtos com preço acima de $1000, utiliza-se uma consulta com condição sobre o preço. O método update aplica as alterações desejadas a todos os registros correspondentes, enquanto o argumento synchronize_session="fetch" garante que a sessão permaneça sincronizada após a atualização.

Atualizações em Lote

Para alterações em grande escala, atualizações em lote são mais eficientes, pois modificam diretamente os registros no banco de dados sem carregar objetos na memória. Isso as torna ideais para atualizar várias linhas de uma só vez.

session.query(Product).filter(Product.price < 500).update(
    {Product.description: "Generic description for affordable products"}, 
    synchronize_session="fetch"
)
session.commit()

Este código atualiza de forma eficiente a descrição de todos os produtos com preço inferior a $500 em uma única operação. Atualizações em lote são mais rápidas e economizam memória em comparação com a atualização individual de registros.

Tarefa

Swipe to start coding

  1. Recuperar todos os produtos do banco de dados.
  2. Calcular o novo preço para cada produto, reduzindo-o em 20%.
  3. Salvar os preços atualizados no banco de dados.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 7
single

single

some-alt