En este blog hay una Guía Rápida de SQLite para conocer sus fundamentos.
También, en el sitio oficial de SQLite hay abundante documentación y en otros sitios hay herramientas gráficas como SQLiteman y Sqlite Database Browser que facilitan mucho el trabajo con las bases de datos.
.
En Python 3 el módulo sqlite3 permite crear bases de datos y operar con tablas y registros. Para ello, es necesario importar dicho módulo:
import sqlite3
A continuación, basándonos en ejemplos, mostraremos las operaciones más comunes sobre una base de datos SQLite. Antes, crearemos la base de datos y una tabla desde la línea de comandos.
Crear base de datos
sqlite3 contactos.db
Crear tabla
sqlite3 CREATE TABLE agenda (ident INTEGER PRIMARY KEY, nombre VARCHAR(30) UNIQUE, ecorreo VARCHAR(40), telefono INT(9));
Iniciar y cerrar una conexión con la base de datos
con_bd = sqlite3.connect('contactos.db')
con_bd.close()
Declarar y cerrar un cursor
cursor_agenda = con_bd.cursor() cursor_agenda.close()
Añadir registro a la tabla agenda
reg = (1, "A", "a@a.a", 1)
cursor_agenda.execute("INSERT INTO agenda VALUES(?,?,?,?)", reg)
Completar la transacción de inserción de registro
con_bd.commit()
Consultar todos los registros de la tabla agenda
cursor_agenda.execute("SELECT * FROM agenda")
for registro in cursor_agenda:
print(registro)
Consultar registro con parámetro
par = (1,)
cursor_agenda.execute("SELECT * FROM agenda WHERE ident=?", par)
for registro in cursor_agenda:
print(registro)
Consultar los registros, uno a uno, con fetchone()
cursor_agenda.execute("SELECT * FROM agenda WHERE ident>?", par)
registro = cursor_agenda.fetchone() # Lee el primer registro
print(registro)
Consultar un nº de registros concretos con fetchmany()
par = (0,)
cursor_agenda.execute("SELECT * FROM agenda WHERE ident>?", par)
registros = cursor_agenda.fetchmany(2) # 2 registros
for registro in registros: print(registro)
Consultar todos los registros, con fetchall()
cursor_agenda.execute("SELECT * FROM agenda WHERE ident>?", par)
registros = cursor_agenda.fetchall()
for registro in registros:
print(registro)
Mostrar los campos de un registro por su posición
par = (2,)
cursor_agenda.execute("SELECT * FROM agenda WHERE ident=?", par)
for campo in cursor_agenda:
print("Identificador:", campo[0])
print("Nombre.......:", campo[1])
Consultar registros por nombre de campos
con_bd = sqlite3.connect("contactos.db")
con_bd.row_factory = sqlite3.Row
cursor_agenda = con_bd.cursor()
cursor_agenda.execute("SELECT * FROM agenda WHERE ident=?", par)
registro = cursor_agenda.fetchone()
print("Nombre", registro['nombre'])
print("Correo", registro['ecorreo'])
Borrar registro
values = (1,)
cursor_agenda.execute('DELETE FROM agenda WHERE ident=?',
values)
con_bd.commit()
Modificar campos
cursor_agenda.execute("UPDATE agenda SET ecorreo='a@b' WHERE ident=3")
con_bd.commit()
Deshacer modificación
con_bd.rollback()
Relacionado:
Ir al índice del tutorial de Python
