viernes, 20 de octubre de 2023

Manejo de bases de datos SQL con Python y SQLite (Update y Delete)

Conteo de vocales de un texto con Python

En esta entrada vamos a revisar tareas adicionales con la base de datos de SQLite de el artículo anterior en la que vimos como crear una base de datos, crear una tabla e ingresar datos de ejemplo.

Actualización de datos en SQLite

Para actualizar datos se deje ejecutar una sentencia SQL en la que se indica el registro que se quiere actualizar, y los valores que se van a cambiar. Esta sentencia SQL tiene la siguiente estructura:

UPDATE [table_name]
SET field1=value, field2='value'
WHERE [condition_statment]

Para nuestro ejemplo de las películas, vamos a realizar la actualización del rating de varios registros.

Vamos a seguir utilizando el cursor creado en nuestro artículo anterior

Actualizar el rating a 5 de las películas que contengan hielo en su título

Los datos antes de la actualización tienen estos valores:

(1, 'La era del hielo', 5)
(15, 'Pasión por el triunfo: Fuego y hielo', 2)
(18, 'Frozen: El reino del hielo', 1)
(22, 'Amor sobre hielo', 4)

Para realizar la actualización, vamos a ejecutar el siguiente comando, en el que indicamos que queremos actualizar la tabla movies, para asignar el valor de 5 a los registros cuyo título (title) contenga la palabra hielo.

cursor.execute("""UPDATE movies
            SET rating = 5
            WHERE title like '%hielo%'
            """)

Despues de ejecutar el comando, vemos que nuestros datos ahora tienen todos el valor de 5 para su rating:

(1, 'La era del hielo', 5)
(15, 'Pasión por el triunfo: Fuego y hielo', 5)
(18, 'Frozen: El reino del hielo', 5)
(22, 'Amor sobre hielo', 5)

Restar un punto al rating de las películas que tengan un valor superior a 3

Los datos con el valor del rating mayor a 3 antes de ejecutar la actualización son los siguientes:

(1, 'La era del hielo', 5)
(2, 'Shrek', 4)
(7, 'Malcom X', 4)
(8, 'El mito', 4)
(10, 'Avatar', 5)
(11, 'Avengers', 5)
(15, 'Pasión por el triunfo: Fuego y hielo', 5)
(17, 'Super Mario Bros', 5)
(18, 'Frozen: El reino del hielo', 5)
(21, 'Iron Man', 4)
(22, 'Amor sobre hielo', 5)

La sentencia de actualización que vamos a ejecutar, contiene la misma estructura, lo que cambia es el valor a asignar, en el cual reutilizamos el propio valor del campo rating para restarle una unidad antes de asignarlo, la sentencia es la siguiente:

cursor.execute("""UPDATE movies
            SET rating = rating -1
            WHERE rating > 3
            """)

Luego de ejecutar el script tenemos los siguientes registros, con el valor de rating mayor a 3:

(1, 'La era del hielo', 4)
(10, 'Avatar', 4)
(11, 'Avengers', 4)
(15, 'Pasión por el triunfo: Fuego y hielo', 4)
(17, 'Super Mario Bros', 4)
(18, 'Frozen: El reino del hielo', 4)
(22, 'Amor sobre hielo', 4)

Actualizar el título del registro con el id 7 a “Gran Turismo”

En este ejemplo vamos a actualizar un registro específico por su id. El registro en cuestión antes de la actualización es el siguiente:

(7, 'Malcom X', 3)

La sentencia SQL para actualizar el valor del title del registro es la siguiente:

cursor.execute("""UPDATE movies
            SET title = 'Gran Turismo'
            WHERE id = 7
            """)

Y el resultado del registro actualizado luego de ejecutar la sentencia se muestra a continuación:

(7, 'Gran Turismo', 3)

Borrar datos en SQLite

La sentencia SQL para el borrado de datos tiene la siguiente estructura:

DELETE FROM [tanle_name]
WHERE [condition_statment];

Borrar los registros cuyo valor de rating es 4

Por ejemplo, sabemos que en nuestra base de datos en la tabla movies tenemos 22 registros, lo que podemos comprobar ejecutando la sentencia:

res = cursor.execute("""
			SELECT count(*)
            FROM movies
            """)
ans = res.fetchone()
print(ans)

Ahora, para borrar los datos vamos a ejecutar la siguiente sentencia, en la cual indicamos que los datos a borrar son los que cumplen la condición de que el valor del rating sea igual a 4.

cursor.execute("""
            DELETE FROM movies
            WHERE rating = 4
            """)

Ahora si ejecutamos nuevamente el comando para contar los registros, comprobamos que ya no tenemos los 22 iniciales, sino solamente 15, porque se borraron los 7 registros con el valor de rating igual a 4.

Y con esto terminamos este segundo artículo para gestión de base de datos con Python y SQLite.

No hay comentarios.:

Publicar un comentario