SQLite3 en Python

SQLite es el sistema de bases de datos más utilizado del mundo y ofrece la posibilidad de configurar una base de datos de SQL que se pueda integrar directamente con aplicaciones de diversos tipos. Python también soporta SQLite3 con su propio módulo.

Utilizar SQLite3 en Python

Puedes integrar SQLite dentro de Python en forma de módulo. Si quieres trabajar eficazmente con bases de datos dentro de Python, te recomendamos tener conocimientos previos en SQL y Python, los cuales harán que te sea más fácil tanto configurar como usar la base de datos.

Consejo

Si quieres refrescar tus conocimientos de Python, merece la pena que eches un vistazo a nuestro tutorial de Python.

Crea tu propia base de datos: paso a paso

Configurar tu propia base de datos SQLite3 en Python apenas requiere unos pocos pasos. Una vez hayas terminado de configurar tu base de datos, puedes comunicarte con ella utilizando comandos SQL.

Paso 1. Importar SQLite3 a Python

Importa el módulo SQLite3 para tener acceso a las funciones específicas de SQLite3 en Python:

import sqlite3
python

Paso 2. Crear la base de datos

Utiliza la función SQLite “connect()” para crear tu propia base de datos. La función retorna un objeto llamado “connection”, que puedes utilizar para comunicarte con tu base de datos. A continuación, tienes un ejemplo que muestra cómo utilizar la función connect para establecer una conexión con una base de datos llamada “test”:

connection = sqlite3.connect("test.db")
python

El parámetro de conexión de la función es un archivo de la base de datos. Si aún no has creado un archivo en la base de datos llamado “test.db”, la propia función connect lo hará al ser ejecutada.

Paso 3. Comprobar que la base de datos se ha creado correctamente

Comprueba si tu base de datos SQLite3 se ha creado correctamente. Para ello, utiliza la función “total_changes” para llamar al objeto connection. La función te mostrará el número total de filas modificadas desde que se estableció una conexión con tu base de datos relacional:

print(connection.total_changes)
python

En nuestro caso, la función debería devolver el valor “0”, ya que aún no hemos utilizado ningún comando SQL y, por tanto, la base de datos sigue vacía e intacta. Si se da el caso de que ya has almacenado información en tu base de datos, el valor que obtendrás de la función “total_changes” será distinto, por supuesto.

Paso 4. Crear la estructura básica de tu base de datos

Si quieres añadir información a tu base de datos SQLite3 en Python, primero debes crear una tabla en la que almacenarla, de la misma forma que se suele hacer con las bases de datos relacionales.

Para ello, primero debes utilizar la función “cursor” de SQLite3 en Python, de esta forma creas un cursor que te permite enviar comandos SQL a tu base de datos. El código que necesitas introducir tiene el siguiente aspecto:

cursor = connection.cursor()
python

A continuación, puedes utilizar la función “execute” del módulo SQLite3 para enviar comandos SQL a tu base de datos. El código Python para crear una base de datos con el nombre “example” y las columnas “id”, “name” y “age” es el siguiente:

cursor.execute("CREATE TABLE IF NOT EXISTS example (id INTEGER, name TEXT, age INTEGER)")
python

Paso 5. Añadir datos

La sintaxis que se utiliza para añadir datos a una tabla es la misma que has utilizado en el paso 4 para crearla:

cursor.execute("INSERT INTO example VALUES (1, 'alice', 20)")
cursor.execute("INSERT INTO example VALUES (2, 'bob', 30)")
cursor.execute("INSERT INTO example VALUES (3, 'eve', 40)")
python

Si utilizas el código Python anterior, añades tres entradas a la tabla de tu base de datos llamada “example”.

Utiliza la función “commit” para guardar los cambios que has efectuado en tu base de datos:

connection.commit()
python
Consejo

¿Quieres hacer copias de seguridad de tu base de datos SQLite3 en tu propio servidor? Puedes elegir entre varios tipos de servidores. VPS es un servidor en la nube, idóneo para programas y volúmenes de datos pequeños. Si necesitas un servidor para aplicaciones empresariales, tu mejor opción sería el servidor dedicado.

Leer datos

SQLite3 enPython no solo te sirve para crear tus propias bases de datos, sino también para leer y extraer información de otras bases de datos. Para ello, primero debes conectarte a la base de datos que quieres y, como te hemos mostrado anteriormente, crear un objeto connection y un cursor. Una vez establecida la conexión puedes realizar tu consulta SQL, enviar el resultado a tu base de datos con “execute” y mostrar las filas obtenidas con la función “fetchall”:

cursor.execute("SELECT * FROM example")
rows = cursor.fetchall()
for row in rows:
    print(row)
python

La función “fetchall” te muestra una lista con las filas que coinciden con tu consulta. Puedes combinar un bucle for en Python con una sentencia print para que aparezcan todas las líneas en la consola.

Modificar los datos almacenados

También puedes modificar o borrar el contenido de tu base de datos, ya que SQLite3 soporta el conjunto de comandos SQL. Para ello, envía los comandos SQL a tu base de datos. No olvides que, al igual que antes, primero necesitarás establecer una conexión creando un objeto connection y un cursor.

Borrar datos

Puedes utilizar el siguiente comando para borrar la línea con ID 1:

cursor.execute("DELETE FROM example WHERE id = 1")
python

Modificar datos

Utiliza el siguiente comando para cambiar la edad en la línea con ID 2:

cursor.execute("UPDATE example SET age = 31 WHERE id = 2")
python

Utilizar marcadores de posición

Nunca debes utilizar Python strings para hacer consultas SQL dinámicas con operadores, ya que los hackers pueden explotarlos y atacar a tu programa con inyecciones SQL. Evita utilizar valores, utiliza el marcador de posición “?” cuando hagas una consulta SQL y hazla con “execute”. Introduce una tupla de Python en la función “execute” para que las variables sustituyan cada marcador de posición que tenga un signo de interrogación.

Las siguientes consultas obtienen el mismo resultado, pero te recomendamos utilizar los marcadores de posición:

# Consulta SQL directa
cursor.execute("UPDATE example SET age = 31 WHERE id = 2")
# Consulta SQL con marcadores de posición
age_var = 31
id_var = 2
cursor.execute("UPDATE example SET age = ? WHERE id = ?", (age_var, id_var))
python

Ten en cuenta que los signos de interrogación de la consulta SQL se sustituyen por las variables de la tupla en el mismo orden que aparecen.

Cierra la conexión a tu base de datos

Una vez realizadas todas las operaciones que querías, debes cerrar la conexión a tu base de datos. El módulo SQLite3 en Python también cuenta con una función que puedes llamar directamente desde tu objeto connection:

connection.close()
python
¿Le ha resultado útil este artículo?
Page top