En este artículo, analizaremos la operación CRUD utilizando el módulo SQLite en Python.
Operaciones CRUD
La abreviatura CRUD se expande a Crear, Leer, Actualizar y Eliminar. Estas cuatro son operaciones fundamentales en una base de datos. En la base de datos de ejemplo, la crearemos y haremos algunas operaciones. Analicemos estas operaciones una por una con la ayuda de ejemplos.
CREAR
El comando crear se utiliza para crear la tabla en la base de datos. Primero revisaremos su sintaxis y luego lo entenderemos con un ejemplo.
Sintaxis: CREATE TABLE nombre_tabla ( Attr 1 Tipo 1, Attr 2 Tipo 2, … , Attr n Tipo n ) ;
En este ejemplo, crearemos una tabla llamada «gfg» con tres atributos:
- nombre
- puntos
- precisión
Python
# Python code to create a relation # using SQLite3 # import the sqlite3 package import sqlite3 # create a database named backup cnt = sqlite3.connect("backup.dp") # create a table named gfg cnt.execute('''CREATE TABLE gfg( NAME TEXT, POINTS INTEGER, ACCURACY REAL);''')
Producción:
INSERTAR
Esto se refiere a la inserción de nuevos datos en la tabla. Los datos se insertan en forma de tupla. El número de atributos en la tupla debe ser igual al definido en el esquema de relación al crear la tabla.
1. Para insertar atributos en el orden especificado en el esquema de relación:
Sintaxis: INSERT INTO tableName VALUES ( value1, value2, … valuen )
2 . Para insertar atributos en el orden especificado en el esquema de relación o en un orden diferente:
INSERT INTO tableName ( Attribute1, Attribute3, Attribute2 . . . ) VALUES ( value1, value3, value2 . . . )
El siguiente programa demuestra la adición de tres tuplas a la relación gfg que se creó anteriormente.
Python3
# Python3 Code to insert data into # the database # Insert three tuples into the gfg table # insert in default order cnt.execute('''INSERT INTO gfg VALUES( 'Count Inversion',20,80.5);''') # insert in different order cnt.execute('''INSERT INTO gfg(ACCURACY, POINTS, NAME) VALUES( 90.5, 15, 'Kadanes Algo');''') cnt.execute('''INSERT INTO gfg(NAME, ACCURACY, POINTS) VALUES( 'REVERSE STR', 100, 5);''') # commit changes to the database cnt.commit()
Producción:
LEER
Esto se refiere a la lectura de datos de una base de datos. Una declaración de lectura tiene tres cláusulas:
- SELECT: Toma como predicado los atributos a consultar, use * para todos los atributos.
- FROM: Toma como predicado una relación.
- DONDE: Toma como predicado una condición, esta no es obligatoria.
Después de ejecutar una declaración de lectura en python SQLite3, se devuelve un objeto de cursor iterable. Esto se puede utilizar para imprimir datos.
Ejemplo: SELECCIONE NOMBRE, PUNTOS, PRECISIÓN DESDE gfg DONDE PRECISIÓN>85;
El siguiente programa demuestra el uso de la declaración de lectura.
Python3
# Python3 code to read data from a table print('Name, Points and Accuracy from ' 'records with accuracy greater than 85') cursor = cnt.execute('''SELECT * FROM gfg WHERE ACCURACY>85;''') # print data using the cursor object for i in cursor: print(i[0]+" "+str(i[1])+" "+str(i[2])) print('') # Print new line print('Name, Accuracy from ' 'records with accuracy greater than 85') cursor = cnt.execute('''SELECT NAME, ACCURACY FROM gfg WHERE ACCURACY>85;''') # print data using the cursor object for i in cursor: print(i[0]+" "+str(i[1]))
Producción:
ACTUALIZAR
Esto se refiere a la actualización de los valores de tupla ya presentes en la tabla.
Sintaxis: UPDATE tableName SET Atributo 1 = Valor 1 , Atributo2 = Valor2 , . . . DONDE condición;
Se debe incluir la cláusula WHERE, de lo contrario se actualizarán todos los registros de la tabla.
EJEMPLO: ACTUALIZAR gfg ESTABLECER PUNTOS=PUNTOS+5 DONDE PUNTOS<20;
El siguiente programa demuestra el uso de la declaración de actualización.
Python3
# Python3 code to update records in a database # Print records before updation cursor = cnt.execute('''SELECT * FROM gfg''') print('Before Updation') for i in cursor: print(i[0]+" "+str(i[1])+" "+str(i[2])) print('') # print a newline # Execute an Update statement cnt.execute('''UPDATE gfg SET POINTS=POINTS+5 WHERE POINTS<20;''') cursor = cnt.execute('''SELECT * FROM gfg''') print('After Updation') for i in cursor: print(i[0]+" "+str(i[1])+" "+str(i[2]))
Producción:
ELIMINAR
Esto se refiere a la eliminación de la tupla presente en la tabla.
SINTAXIS: DELETE FROM tableName WHERE condición
Si no se utiliza la cláusula WHERE, se eliminarán todos los registros.
EJEMPLO: ELIMINAR DE gfg DONDE PRECISIÓN>91
El programa a continuación demuestra el uso de la declaración de eliminación.
Python3
# Python3 code to delete records from database # Print records before deletion cursor = cnt.execute('''SELECT * FROM gfg''') print('Before Deletion') for i in cursor: print(i[0]+" "+str(i[1])+" "+str(i[2])) print('') # print a newline # Execute a delete statement cnt.execute('''DELETE FROM gfg WHERE ACCURACY>91;''') cursor = cnt.execute('''SELECT * FROM gfg''') print('After Deletion') for i in cursor: print(i[0]+" "+str(i[1])+" "+str(i[2]))
Producción: