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