In [6]:
import sqlite3
conexion = sqlite3.connect('usuarios_autoincremental.db')
cursor = conexion.cursor()
# Recuperamos un registro de la tabla de usuarios
cursor.execute("SELECT * FROM usuarios WHERE id=1")
usuario = cursor.fetchone()
print(usuario)
conexion.close()
También podemos buscar sólo algunos campos específicos utilizando el DNI:
In [12]:
import sqlite3
conexion = sqlite3.connect('usuarios_autoincremental.db')
cursor = conexion.cursor()
# Recuperamos un registro de la tabla de usuarios
cursor.execute("SELECT nombre, edad, email FROM usuarios WHERE dni='22222222B'")
usuario = cursor.fetchone()
print(usuario)
conexion.close()
In [18]:
import sqlite3
conexion = sqlite3.connect('usuarios_autoincremental.db')
cursor = conexion.cursor()
# Actualizamos un registro
cursor.execute("UPDATE usuarios SET nombre='Hector Costa' WHERE dni='11111111A'")
# Ahora lo consultamos de nuevo
cursor.execute("SELECT * FROM usuarios WHERE dni='11111111A'")
usuario = cursor.fetchone()
print(usuario)
conexion.commit()
conexion.close()
Importantísimo: No olvidar la cláusula WHERE o podéis acabar actualizando todos los registros
In [24]:
import sqlite3
conexion = sqlite3.connect('usuarios_autoincremental.db')
cursor = conexion.cursor()
# Creamos un registro de prueba
cursor.execute("INSERT INTO usuarios VALUES (null, '55555555E', 'Fernando', 31, 'fernando@ejemplo.com')")
# Consultamos los usuarios
for usuario in cursor.execute("SELECT * FROM usuarios"):
print(usuario)
# Ahora lo borramos
cursor.execute("DELETE FROM usuarios WHERE dni='55555555E'")
print() # Espacio en blanco
# Consultamos de nuevo los usuarios
for usuario in cursor.execute("SELECT * FROM usuarios"):
print(usuario)
conexion.commit()
conexion.close()
En SQL es posible realizar actualizaciones y borrados en masa, pero las dos últimas son un poco peligrosas. Sin embargo realizarlas es tan sencillo como olvidarnos la cláusula WHERE en el UPDATE o el DELETE.
Canción: No te olvides el WHERE en el DELETE FROM: https://www.youtube.com/watch?v=i_cVJgIz_Cs
In [29]:
import sqlite3
conexion = sqlite3.connect('usuarios_autoincremental.db')
cursor = conexion.cursor()
# Borramos sin el WHERE
cursor.execute("DELETE FROM usuarios")
# Consultamos de nuevo los usuarios
usuarios = cursor.execute("SELECT * FROM usuarios").fetchall()
print(usuarios)
conexion.commit()
conexion.close()
SQL es un lenguaje muy extenso con muchísimas posibilidades. Ya que esta unidad no deja de ser una introducción, te animo a seguir aprendiendo por tu cuenta conceptos tan importantes como: