Beruflich Dokumente
Kultur Dokumente
SQLite (para los que no la conocen) es una pequea librera que nos permite manejar bases de datos
relacionales y transaccionales, sin necesidad de servidor, sin configuracin y almacenadas en un solo archivo
en la mquina host.
En otras palabras, nuestra base de datos no es ms que un archivo almacenado localmente al que nuestra
Pysqlite2 es un binding de SQLite para python y el sqlitebrowser es una aplicacin que nos permitir
$ sqlitebrowser
Vamos al men File -> New Database para crear una nueva base de datos, le indicamos la ruta y el
siguientes campos:
Imaginemos que esta tabla es para manejar un sistema donde registraremos a los usuarios que visitan
Database.
Lo primero que necesitamos para conectarnos a esa base de datos es importar la librera:
import sqlite3
Hacemos la conexin:
connection = sqlite3.connect('test.db')
La mayora de las operaciones sobre la base de datos se hacen usando un cursor; un objeto que apunta a la
base de datos y a travs del cual podemos ejecutar instrucciones similares al SQL estndar (pero no
cursor = connection.cursor()
La forma recomendada es usar placeholders (marcadores de posicin) puesto que si armamos la cadena
usando variables de Python corremos el riesgo de que nos hagan SQL Injection. Es decir, en lugar de hacer
esto:
user = 'pedro'
cursor.execute("SELECT * FROM tabla WHERE usuario = '%s'" % user)
user = ('pedro',)
cursor.execute('SELECT * FROM tabla WHERE usuario =?', t)
Insertemos entonces algunos datos para rellenar esa inspida tabla. Primero creamos un arreglo donde est
toda la informacin a insertar (en este caso es as porque vamos a insertar muchos datos, pero tambin
datos = [
('Pedro Perez', 34, 'pperez@tucorreo.com', '', 4),
('Maria Gomez', 25, 'maria@sucorreo.com', '', 7),
('Pablo Rodriguez', 41, 'pablor@elcorreo.com',
'www.pablo.com', 3),
]
Pero esperen, an no hemos completado la tarea. SQLite es un gestor transaccional por lo que debemos
realizar "la transaccin" usando el comando commit, de lo contrario ningn cambio se har efectivo sobre el
archivo. Esto aplica para todas las operaciones que modifican la base de datos (lase INSERT, UPDATE,
DELETE, etc).
connection.commit()
Ahora veamos como obtener la informacin que acabamos de guardar. Esto es tan sencillo como estructurar
la bsqueda y ejecutarla.
Y si queremos una bsqueda ms especfica podemos hacer algo como lo siguiente para buscar el nombre y
Para obtener:
Vamos ahora a actualizar un registro. Es tan fcil como realizar una bsqueda pero usando el comando
UPDATE; le decimos qu tabla vamos a actualizar, los campos con sus nuevos valores y la condicin que
Donde values es la tupla que se reemplazar donde estn los placeholders. El motor de SQLite interpretar
La ventaja de los placeholders es que nos permiten crear instrucciones dinmicas y cambiar el contenido de
la misma sin tener que estructurarla nuevamente (muy til para usarla en bucles).
Pero cmo sabemos que realmente se actualiz el registro? Pues sencillo, listemos de nuevo todos los
registros:
Para borrar un registro se utiliza la instruccin DELETE seguida de la tabla y de la condicin que identifica al
value = (34,)
cursor.execute("DELETE FROM Usuarios WHERE edad >= ?", value)
connection.commit()
Obteniendo:
Programa final:
# Creamos la conexion
connection = sqlite3.connect('test.db')
# Creamos el cursor
cursor = connection.cursor()