2.4. SQLite¶
Nota
Propósito: es una libraría proporciona una interfaz SQL compatible con la especificación DB-API 2.0 requiere SQLite 3.7.15 o posterior.
SQLite, es una libraría de C que provee una base de datos ligera basada en disco que no requiere un proceso de servidor separado y permite acceder a la base de datos usando una variación no estándar del lenguaje de consulta SQL.
Algunas aplicaciones pueden usar SQLite para almacenamiento interno. También es posible prototipar una aplicación usando SQLite y luego transferir el código a una base de datos más grande como PostgreSQL u Oracle.
2.4.1. Instalación¶
La librería sqlite3
esta incluida en librería estándar de Python, puede probar la
instalación existe, ejecutando el siguiente comando:
$ python -c "import sqlite3 ; print(sqlite3.__package__)"
> python -c "import sqlite3 ; print(sqlite3.__package__)"
Si muestra el nombre del paquete sqlite3
, tiene instalado la librería.
Adicionalmente puedes instalar administradores de base de datos SQLite nativos para sistemas operativos Linux y Windows, a continuación se presentan alternativas:
2.4.1.1. SQLite Tools¶
Es un paquete de herramientas de línea de comandos para administrar archivos de base de datos SQLite, incluido el programa sqlite3.exe para la shell de línea de comandos, el programa sqldiff.exe y el programa sqlite3_analyzer.exe.
Para instalar el administrador de base de datos SQLite SQLite Tools
de
forma nativa para sistemas operativos Linux y Windows, a continuación se presentan
los modos de instalación:
Para instalar administradores de base de datos nativos sqlite3
para la plataforma
Unix/Linux debe seguir los siguientes pasos:
$ sudo apt install sqlite3
Puede probar si la instalación se realizo correctamente, ejecutando el siguiente comando:
$ sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>
Si muestra la consola sqlite sqlite>
, tiene correctamente instalada el administrador
de base de datos nativa sqlite3
por linea de comando.
Nota
Mas información consulte https://www.sqlite.org/cli.html
Para instalar administradores de base de datos nativos sqlite3
para la plataforma
Windows debe descargar e instalar el SQLite Tools
con los siguientes pasos:
Cree el directorio donde se va a descomprimir las utilidades del SQLite Tools
, con
los siguientes comandos:
> mkdir %HOMEPATH%\sqlite
> cd %HOMEPATH%\sqlite
Seguidamente descargue el SQLite Tools para Windows desde la siguiente
Descomprima del archivo descargado para el SQLite Tools
dentro
del directorio previamente creado.
sqlite/
├── sqldiff.exe
├── sqlite3.exe
└── sqlite3_analyzer.exe
La estructura previa es como debe quedar el luego de instalar SQLite Tools
en Windows.
Shell de línea de comandos, el proyecto SQLite proporciona un programa de línea de comandos simple llamado sqlite3.exe en Windows que permite al usuario ingresar y ejecutar instrucciones SQL manualmente en una base de datos SQLite. Para usar esta utilidad de línea de comandos, ejecute el siguiente comando:
> sqlite3.exe
Nota
Mas información consulte https://www.sqlite.org/cli.html
Diferencias de contenido, el proyecto SQLite proporciona un programa sqldiff.exe de línea de comandos que muestra las diferencias de contenido entre las bases de datos SQLite. Para usar esta utilidad de línea de comandos, ejecute el siguiente comando:
> sqldiff.exe database1.sqlite database2.sqlite
Nota
Mas información consulte https://www.sqlite.org/sqldiff.html
Analizador de base de datos, el proyecto SQLite proporciona un programa sqlite3_analyzer.exe de línea de comandos que mide y muestra la cantidad y la eficiencia del espacio utilizado por tablas e índices individuales con un archivo de base de datos SQLite. Para usar esta utilidad de línea de comandos, ejecute el siguiente comando:
> sqlite3_analyzer.exe database.sqlite
Nota
Mas información consulte https://www.sqlite.org/sqlanalyze.html
2.4.1.2. DB Browser for SQLite¶
DB Browser for SQLite (DB4S), es una herramienta de código abierto, visual y de alta calidad para crear, diseñar y editar archivos de bases de datos compatibles con SQLite.
Esta herramienta esta destinada para usuarios y desarrolladores que desean crear, buscar y editar bases de
datos. DB4S
utiliza una interfaz familiar similar a una hoja de cálculo y no es necesario aprender
complicados comandos SQL.
Los controles y asistentes están disponibles para que los usuarios:
Crear y compactar archivos de base de datos.
Crear, definir, modificar y eliminar tablas.
Crear, definir y eliminar índices.
Explorar, editar, agregar y eliminar registros.
Buscar registros.
Importar y exportar registros como texto.
Importar y exportar tablas desde/a archivos CSV.
Importar y exportar bases de datos desde/hacia archivos de volcado de SQL.
Emita consultas SQL e inspeccione los resultados.
Examinar un registro de todos los comandos SQL emitidos por la aplicación.
Trace gráficos simples basados en tablas o datos de consulta.
Nota
Mas información consulte https://sqlitebrowser.org/
Para instalar el administrador de base de datos SQLite DB Browser for SQLite (DB4S)
de forma nativa para sistemas operativos Linux y Windows, a continuación se presentan
los modos de instalación:
Para instalar el programa sqlitebrowser
para administrador de base de datos nativos
sqlite3
para la plataforma Unix/Linux debe seguir los siguientes pasos:
$ sudo apt install sqlitebrowser
Puede probar si la instalación del el administrador de base de datos nativo de sqlite3
gráfico llamado sqlitebrowser
se realizo correctamente, ejecutando el siguiente comando:
$ sqlitebrowser
El comando anterior debería mostrar la interfaz gráfica de sqlitebrowser
, como se muestra
a continuación:
Si muestra la interfaz gráfica de sqlitebrowser
, tiene correctamente instalada el administrador
de base de datos nativo de sqlite3
.
Para instalar el programa DB Browser for SQLite
para administrador de base de datos nativos
sqlite3
para la plataforma Windows debe seguir los siguientes pasos:
Debe descargar el software desde la pagina https://sqlitebrowser.org/dl/
Instalar el software instalador de DB Browser for SQLite
.
Luego valla al Menu de inicio > Aplicaciones > DB Browser (SQLite)
Si muestra la interfaz gráfica de DB Browser for SQLite
, tiene
correctamente instalada el administrador de base de datos nativo de
sqlite3
.
2.4.2. Cadenas de conexión¶
Para definir el método connect
debe definir las cadenas de conexión con
SQLite
como se describe a continuación:
DB_PATH
-
Ruta absoluta o relativa del archivo de base de datos
SQLite
. DB_FILE
-
Nombre del archivo de base de datos
SQLite
.
A continuación presento un ejemplo en Python implementando una cadena de conexión
para una base de datos SQLite
:
1 2 3 4 5 6 7 8 |
|
El ejemplo anterior se describe a continuación:
En la linea 1, se importa la librería
os
de la librería estándar Python.En la linea 2, se importa la librería
sqlite3
de la librería estándar Python.En la linea 4, se define en la constante
DB_PATH
la ruta absoluta usada para guardar la base de datos.En la linea 5, se define en la constante
DB_FILE
el nombre de la base de datos.En la linea 6, se define en la constante
DB
la ruta completa usada para leer la base de datos.
De esta forma se crea una cadena de conexión para SQLite
para ser usada por el método connect
.
2.4.3. Insertar registros¶
Si requiere insertar registro en una tabla, a continuación tiene un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
Importante
Usted puede descargar el código usado en esta sección haciendo clic en el
siguiente enlace: sqlite3_record_insert.py
.
Truco
Para ejecutar el código sqlite3_record_insert.py
abra una consola de comando, acceda al directorio donde se encuentra el programa:
leccion2/
└── sqlite/
└── crud/
└── sqlite_record_insert.py
Si tiene la estructura de archivo previa, entonces ejecute el siguiente comando:
$ python sqlite_record_insert.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
INFO:root:¡Conectado a la base de datos sistema.db!
INFO:root:¡Fueron insertado(s) 3 registro(s) correctamente en la tabla!
INFO:root:¡La conexión SQLite a la base de datos sistema.db fue cerrada!
2.4.4. Consultar registros¶
Si requiere consultar registros de tabla, a continuación tiene un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
Importante
Usted puede descargar el código usado en esta sección haciendo clic en el
siguiente enlace: sqlite3_record_select.py
.
Truco
Para ejecutar el código sqlite3_record_select.py
abra una consola de comando, acceda al directorio donde se encuentra el programa:
leccion2/
└── sqlite/
└── crud/
└── sqlite_record_select.py
Si tiene la estructura de archivo previa, entonces ejecute el siguiente comando:
$ python sqlite_record_select.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
INFO:root:¡Conectado a la base de datos sistema.db!
Total de filas son: 3
Mostrar cada fila:
Id: 1
Nombre: Leonardo
Código postal: Caballero
Teléfono: 5001
Id: 2
Nombre: Ana
Código postal: Poleo
Teléfono: 6302
Id: 3
Nombre: Pedro
Código postal: Lopez
Teléfono: 4001
INFO:root:¡La conexión SQLite a la base de datos sistema.db fue cerrada!
2.4.5. Actualizar registros¶
Si requiere actualizar registro de tabla, a continuación tiene un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
Importante
Usted puede descargar el código usado en esta sección haciendo clic en el
siguiente enlace: sqlite3_record_update.py
.
Truco
Para ejecutar el código sqlite3_record_update.py
abra una consola de comando, acceda al directorio donde se encuentra el programa:
leccion2/
└── sqlite/
└── crud/
└── sqlite_record_update.py
Si tiene la estructura de archivo previa, entonces ejecute el siguiente comando:
$ python sqlite_record_update.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
INFO:root:¡Conectado a la base de datos sistema.db!
INFO:root:¡Fueron actualizado(s) 2 registro(s) correctamente en la tabla!
INFO:root:¡La conexión SQLite a la base de datos sistema.db fue cerrada!
2.4.6. Eliminar registros¶
Si requiere eliminar registro de tabla, a continuación tiene un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
Importante
Usted puede descargar el código usado en esta sección haciendo clic en el
siguiente enlace: sqlite3_record_delete.py
.
Truco
Para ejecutar el código sqlite3_record_delete.py
abra una consola de comando, acceda al directorio donde se encuentra el programa:
leccion2/
└── sqlite/
└── crud/
└── sqlite_record_delete.py
Si tiene la estructura de archivo previa, entonces ejecute el siguiente comando:
$ python sqlite_record_delete.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
INFO:root:¡Conectado a la base de datos sistema.db!
INFO:root:¡Registro eliminado correctamente!
INFO:root:¡La conexión SQLite a la base de datos sistema.db fue cerrada!
Asi de esta forma puede ingresar, consultar, actualizar y eliminar
registro en una tabla en una base de datos SQLite
.
2.4.7. Práctica - Caso real¶
A continuación se presenta una práctica más real de implementar el uso de proyectos
con sqlite3
, a continuación la estructura de proyecto llamado sqlite
:
A continuación se presenta y explica el uso de cada archivo para este proyecto:
Archivo .env.example
Archivo plantilla dotenv del paquete adicional python-dotenv.
1 2 |
|
Archivo main.py
Modulo de configuraciones del programa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
|
Archivo requirements.txt
Archivo de requirements.txt de la herramienta de gestión de paquetes pip.
1 2 |
|
Archivo settings.py
Modulo de principal del programa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
Archivo sistema.db
Archivo de base de datos de SQLite llamado sistema.db
la cual no se incluye ya que cada vez que se inicia el programa main.py
se elimina y crea
nuevamente, para cuidar la creación de los datos iniciales.
Teniendo creada la anterior estructura de proyecto, vuelva a ejecutar ahora el modulo con el siguiente comando, el cual a continuación se presentan el correspondiente comando de tu sistema operativo:
Antes de ejecutar debes instalar sus dependencias, con el siguiente comando:
$ pip install -r requirements.txt
Ademas debe instalar y editar el archivo .env
, con el siguiente comando:
$ cp .env.example .env
$ nano .env
Truco
El archivo .env
se definen las configuraciones de conexión a la base de datos,
puede modificarlo cambiar valores de la conexión.
Truco
Para ejecutar el código fuente de esta practica debe invocar al modulo main.py
,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
$ python main.py
Antes de ejecutar debes instalar sus dependencias, con el siguiente comando:
> pip install -r requirements.txt
Ademas debe instalar y editar el archivo .env
, con el siguiente comando:
> copy .env.example .env
> notepad.exe .env &
Truco
El archivo .env
se definen las configuraciones de conexión a la base de datos,
puede modificarlo cambiar valores de la conexión.
Truco
Para ejecutar el código fuente de esta practica debe invocar al modulo main.py
,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
> python main.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
INFO:root:¡Conexión a la base de datos 'sistema.db' fue exitosa!
INFO:root:¡Fueron insertado(s) 3 registro(s) correctamente en la tabla!
Total de filas son: 3
Mostrar cada fila:
Id: 1
Nombre: Leonardo
Código postal: Caballero
Teléfono: 5001
Id: 2
Nombre: Ana
Código postal: Poleo
Teléfono: 6302
Id: 3
Nombre: Pedro
Código postal: Lopez
Teléfono: 4001
INFO:root:¡Fueron actualizado(s) 2 registro(s) correctamente en la tabla!
INFO:root:¡Registro eliminado correctamente!
Asi de esta forma puede ingresar, consultar, actualizar y eliminar registro en una
tabla usando sqlite
.
Importante
Usted puede descargar el código usado en esta sección haciendo clic en los siguientes enlaces:
Truco
Para ejecutar el código del proyecto llamado sqlite
abra una consola de comando,
acceda al directorio donde se encuentra el programa:
leccion2/
└── sqlite/
└── sistema/
├── __init__.py
├── .env.example
├── main.py
├── requirements.txt
├── settings.py
└── sistema.db
Si tiene la estructura de archivo previa, entonces ejecute el siguiente comando:
$ python main.py
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.