Python SQLite - Eliminar datos
Para eliminar registros de una tabla SQLite, debe usar la instrucción DELETE FROM. Para eliminar registros específicos, debe usar la cláusula WHERE junto con ella.
Para actualizar filas específicas, debe usar la cláusula WHERE junto con ella.
Sintaxis
A continuación se muestra la sintaxis de la consulta DELETE en SQLite:
DELETE FROM table_name [WHERE Clause]
Ejemplo
Supongamos que hemos creado una tabla con el nombre CRICKETERS utilizando la siguiente consulta:
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
Y si hemos insertado 5 registros usando instrucciones INSERT como:
sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>
La siguiente declaración borra el registro del jugador de críquet cuyo apellido es 'Sangakkara'.
sqlite> DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
sqlite>
Si recupera el contenido de la tabla usando la instrucción SELECT, puede ver solo 4 registros ya que hemos eliminado uno.
sqlite> SELECT * FROM CRICKETERS;
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- -------------
Shikhar Dhawan 46 Delhi India
Jonathan Trott 39 CapeTown SouthAfrica
Virat Kohli 31 Delhi India
Rohit Sharma 33 Nagpur India
sqlite>
Si ejecuta la instrucción DELETE FROM sin la cláusula WHERE, se eliminarán todos los registros de la tabla especificada.
sqlite> DELETE FROM CRICKETERS;
sqlite>
Dado que ha eliminado todos los registros, si intenta recuperar el contenido de la tabla CRICKETERS, utilizando la instrucción SELECT obtendrá un conjunto de resultados vacío como se muestra a continuación:
sqlite> SELECT * FROM CRICKETERS;
sqlite>
Eliminar datos usando Python
Para agregar registros a una tabla existente en la base de datos SQLite:
Importar paquete sqlite3.
Cree un objeto de conexión utilizando el método connect () pasando el nombre de la base de datos como parámetro.
los cursor()El método devuelve un objeto de cursor con el que puede comunicarse con SQLite3. Cree un objeto cursor invocando el objeto cursor () en el objeto Connection (creado anteriormente).
Luego, invoque el método execute () en el objeto cursor, pasándole una instrucción DELETE como parámetro.
Ejemplo
El siguiente ejemplo de Python elimina los registros de la tabla EMPLOYEE con un valor de edad superior a 25.
import sqlite3
#Connecting to sqlite
conn = sqlite3.connect('example.db')
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving contents of the table
print("Contents of the table: ")
cursor.execute('''SELECT * from EMPLOYEE''')
print(cursor.fetchall())
#Deleting records
cursor.execute('''DELETE FROM EMPLOYEE WHERE AGE > 25''')
#Retrieving data after delete
print("Contents of the table after delete operation ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())
#Commit your changes in the database
conn.commit()
#Closing the connection
conn.close()
Salida
Contents of the table:
[('Ramya', 'Rama priya', 27, 'F', 9000.0),
('Vinay', 'Battacharya', 21, 'M', 6000.0),
('Sharukh', 'Sheik', 26, 'M', 8300.0),
('Sarmista', 'Sharma', 26, 'F', 10000.0),
('Tripthi', 'Mishra', 24, 'F', 6000.0)]
Contents of the table after delete operation
[('Vinay', 'Battacharya', 21, 'M', 6000.0),
('Tripthi', 'Mishra', 24, 'F', 6000.0)]