Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Actualización en la BD | SQLAlchemy
Bases de Datos en Python

bookActualización en la BD

En este capítulo, aprenderemos cómo actualizar registros en una base de datos utilizando SQLAlchemy. La actualización de registros es fundamental al modificar datos existentes en tus tablas, como cambiar descripciones u otros campos. SQLAlchemy proporciona métodos eficientes y sencillos para realizar actualizaciones.

Actualización de un solo registro

La operación de actualización más común es la modificación de un solo registro. Para ello, es necesario obtener el objeto, actualizar sus atributos y luego guardar los cambios.

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

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

Para recuperar un producto por su ID, se utiliza una consulta con un filtro que especifica el ID deseado. Después de actualizar el description del producto, al llamar a session.commit() se guardan los cambios en la base de datos.

Actualización de múltiples registros

En ocasiones, es necesario actualizar varios registros a la vez. SQLAlchemy permite utilizar filter() junto con el método update() para modificar registros de manera eficiente.

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

Para filtrar productos con un precio superior a $1000, se utiliza una consulta con una condición sobre el precio. El método update aplica los cambios deseados a todos los registros coincidentes, mientras que el argumento synchronize_session="fetch" asegura que la sesión permanezca sincronizada después de la actualización.

Actualizaciones masivas

Para cambios a gran escala, las actualizaciones masivas son más eficientes, ya que modifican directamente los registros de la base de datos sin cargar los objetos en memoria. Esto las hace ideales para actualizar muchas filas a la vez.

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

Este código actualiza de manera eficiente la description de todos los productos con un precio inferior a $500 en una sola operación. Las actualizaciones masivas son más rápidas y ahorran memoria en comparación con la actualización individual de registros.

Tarea

Swipe to start coding

  1. Recuperar todos los productos de la base de datos.
  2. Calcular el nuevo precio para cada producto reduciéndolo en un 20%.
  3. Guardar los precios actualizados en la base de datos.

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 7
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

close

Awesome!

Completion rate improved to 4.76

bookActualización en la BD

Desliza para mostrar el menú

En este capítulo, aprenderemos cómo actualizar registros en una base de datos utilizando SQLAlchemy. La actualización de registros es fundamental al modificar datos existentes en tus tablas, como cambiar descripciones u otros campos. SQLAlchemy proporciona métodos eficientes y sencillos para realizar actualizaciones.

Actualización de un solo registro

La operación de actualización más común es la modificación de un solo registro. Para ello, es necesario obtener el objeto, actualizar sus atributos y luego guardar los cambios.

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

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

Para recuperar un producto por su ID, se utiliza una consulta con un filtro que especifica el ID deseado. Después de actualizar el description del producto, al llamar a session.commit() se guardan los cambios en la base de datos.

Actualización de múltiples registros

En ocasiones, es necesario actualizar varios registros a la vez. SQLAlchemy permite utilizar filter() junto con el método update() para modificar registros de manera eficiente.

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

Para filtrar productos con un precio superior a $1000, se utiliza una consulta con una condición sobre el precio. El método update aplica los cambios deseados a todos los registros coincidentes, mientras que el argumento synchronize_session="fetch" asegura que la sesión permanezca sincronizada después de la actualización.

Actualizaciones masivas

Para cambios a gran escala, las actualizaciones masivas son más eficientes, ya que modifican directamente los registros de la base de datos sin cargar los objetos en memoria. Esto las hace ideales para actualizar muchas filas a la vez.

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

Este código actualiza de manera eficiente la description de todos los productos con un precio inferior a $500 en una sola operación. Las actualizaciones masivas son más rápidas y ahorran memoria en comparación con la actualización individual de registros.

Tarea

Swipe to start coding

  1. Recuperar todos los productos de la base de datos.
  2. Calcular el nuevo precio para cada producto reduciéndolo en un 20%.
  3. Guardar los precios actualizados en la base de datos.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 7
single

single

some-alt