Programación

Conceptos básicos para trabajar con la base de datos SQLite en Python

Conceptos básicos para trabajar con la base de datos SQLite en Python

Una base de datos es uno de los archivos más útiles y populares para almacenar datos; Se pueden utilizar para almacenar cualquier tipo de datos, incluidos texto, números, imágenes, datos binarios, archivos, etc. SQLite es un sistema de gestión de bases de datos relacionales basado en el lenguaje SQL. Es una biblioteca C y proporciona una API para trabajar con otros lenguajes de programación, incluido Python. No requiere que se ejecute un proceso de servidor separado según sea necesario en motores de bases de datos grandes como MySQL y Postgresql.

Es rápido y liviano, y toda la base de datos se almacena en un solo archivo de disco, lo que la hace portátil como CSV u otros archivos de almacenamiento de datos. Muchas aplicaciones utilizan SQLite para el almacenamiento interno de datos, principalmente en entornos como dispositivos móviles o pequeñas aplicaciones.

Base de datos SQLite para Python

Profundicemos en SQLite con el lenguaje de programación Python. En este tutorial, aprenderemos las ventajas de usar SQLite, los conceptos básicos del módulo python sqlite3, la creación de una tabla en una base de datos, la inserción de datos en la tabla, la consulta de datos de la tabla y la actualización de datos de la tabla.

Ventajas de usar SQLite

Las principales ventajas de utilizar SQLite son:

SQLite también se utiliza en Google Chrome para almacenar las cookies, los datos del usuario y otros datos importantes, incluidas las contraseñas de los usuarios. El sistema operativo Android también usa SQLite como su motor de base de datos principal para almacenar datos.

Módulo Python SQLite3

Para usar SQLite, necesitamos que Python esté instalado en nuestro sistema. Si aún no tiene Python instalado en su sistema, puede consultar nuestra guía paso a paso para instalar Python en Linux. Podríamos usar SQLite en Python usando el sqlite3 módulo disponible en la biblioteca estándar de Python. Gerhard Häring escribió el módulo sqlite3; proporciona una interfaz SQL compatible con DB-API 2.0. Viene preinstalado con la biblioteca estándar de Python, por lo que no tenemos que preocuparnos por ninguna instalación adicional.

Crear conexión a una base de datos

El primer paso al trabajar con SQLite en Python es establecer una conexión con una base de datos. Podemos hacer esto usando el método connect () de sqlite3 para configurar una conexión. Mira el siguiente código para ver un ejemplo. Simplemente puede copiar el código en un IDE o un editor de texto y ejecutarlo. Si tiene un problema al elegir IDE para Python, puede consultar nuestra guía sobre cómo comparar el mejor IDE de Python. Se recomienda reescribir el código nuevamente en su IDE, y si desea copiar el código, verifique la sintaxis con el código presente aquí.

# importando los módulos requeridos import sqlite3 # configurando la conexión con la base de datos conn = sqlite3.conectar ("muestra.db ") print (" Conectado con éxito a la base de datos ") # cerrando la conexión conn.cerca()

El programa anterior creará una conexión con el archivo de base de datos SQLite "ejemplo.db.”Dará la siguiente salida en el terminal.

Veamos qué está sucediendo en el código anterior. En la primera línea, hemos importado el módulo sqlite3, que nos ayudará a trabajar con bases de datos SQLite en Python.

En la segunda línea, creamos una conexión con un archivo de base de datos SQLite llamado "sample.db ”usando el conectar() función. La función connect () acepta la ruta al archivo de la base de datos como argumento. Si el archivo no existe en la ruta dada, entonces él mismo creará un nuevo archivo de base de datos con el nombre dado en esa ruta. La función connect () devolverá un objeto de base de datos en nuestro programa; almacenamos el objeto devuelto en una variable llamada conectar.

La tercera línea de nuestro programa es una simple impresión declaración para mostrar un mensaje sobre una conexión exitosa. La última línea del programa rompe la conexión con la base de datos usando el cerca() función del objeto de conexión.

En el ejemplo anterior, hemos creado la base de datos en el disco, pero también podemos crear una base de datos en la memoria RAM principal. La creación de una base de datos en la RAM hace que la ejecución de la base de datos sea más rápida de lo habitual. Aún así, la base de datos se creará temporalmente y, cuando se detenga la ejecución del programa, eliminará la base de datos de la memoria. Podemos crear una base de datos en la memoria proporcionando el nombre particular: memoria: como argumento a la conectar() función. Vea el programa a continuación como una ilustración.

importar sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] La base de datos se ha creado con éxito en la memoria") conn.cerca()

El programa anterior creará una base de datos en la RAM, y podemos usarlo para realizar casi todas las tareas que podamos hacer con las bases de datos creadas en el disco. Este método es útil al crear una base de datos virtual temporal por alguna razón.

Cursor SQLite3

Acursor el objeto es nuestra interfaz a la base de datos, que permite ejecutar cualquierConsulta SQL en la base de datos. Para ejecutar cualquier script SQL usando sqlite3, debemos crear un objeto de cursor. Para crear un objeto de cursor, necesitamos usar el cursor() método del conexión objeto. Podemos crear un objeto cursor de nuestra base de datos usando el siguiente código.

# importando los módulos requeridos import sqlite3 # configurando la conexión a la base de datos conn = sqlite3.conectar ("muestra.db ") print (" \ n [+] Conectado con éxito a la base de datos ") cur = conn.cursor () print ("\ n [+] El cursor se ha configurado correctamente") cur.close () # cerrando la conexión conn.cerca()

Cuando se ejecuta el programa, la salida se verá como se muestra en la imagen de abajo.

Veamos cómo funciona el código anterior. En el código anterior, el primero, segundo, tercero, es establecer una conexión con la base de datos, como se mostró anteriormente. En la cuarta línea, hemos utilizado el cursor() método del objeto de conexión para crear un objeto de cursor y almacenar el objeto de cursor devuelto en una variable llamada "cur". La quinta línea es un general impresión() declaración. En la sexta línea, destruimos el objeto cursor de la memoria usando el cerca() método del objeto cursor.

Tipos de datos SQLite

Antes de continuar, comprendamos primero los tipos de datos SQLite. El motor de base de datos SQLite tiene varias clases de almacenamiento para almacenar muchos tipos de datos, incluidos texto, datos binarios, números enteros, etc. Cada valor tiene uno de los siguientes tipos de datos.

Tipos de datos SQLite:

Comparación de tipos de datos SQLite y Python

Habrá muchas ocasiones en las que necesitemos usar tipos de datos de Python para almacenar algunos datos SQL y realizar algunas actividades. Para que esto suceda, necesitamos saber qué tipos de datos SQL se relacionan con qué tipos de datos de Python.

Los siguientes tipos de Python son algo similares a los tipos de datos de SQLite:

Tipo de Python Tipo SQLite
Ninguno NULO
En t ENTERO
flotador VERDADERO
str TEXTO
bytes GOTA

Creando una tabla usando SQLite

Para crear una tabla usando SQLite, necesitamos usar el CREAR MESA declaración de SQL en el ejecutar() método del objeto cursor. La sintaxis básica de la instrucción CREATE TABLE en SQL se muestra a continuación:

CREATE TABLE nombre_tabla (restricción de tipo de datos de nombre de columna,… restricción de tipo de datos de nombre de columna);

Para usar la declaración SQLite anterior en Python, necesitamos ejecutar el siguiente programa de ejemplo. Creará una tabla llamada empleado en nuestra base de datos.

importar sqlite3 conn = sqlite3.conectar ("muestra.db ") print (" \ n [+] Conectado con éxito a la base de datos ") cur = conn.cursor () print ("\ n [+] El cursor se ha configurado correctamente") table = cur.execute ("" "CREATE TABLE employee (id INT PRIMARY KEY, nombre CHAR (25), salario CHAR (25), join_date DATE);" "") print ("\ n [+] La tabla se ha creado correctamente") canalla.cerrar () conn.cerca()

En el programa anterior, creamos un empleado tabla con los atributos identificación, nombre, salario, y dia de ingreso. Esta tabla ahora se puede utilizar para almacenar datos o consultar datos según los requisitos. Verá la siguiente salida en el terminal.

En el código anterior, hemos utilizado el ejecutar() método del objeto cursor para ejecutar el comando SQL para crear una tabla con las columnas dadas.

Insertar datos en una tabla

Hemos creado una tabla en nuestra base de datos SQLite. Ahora insertemos algunos datos usando SQL. La sintaxis básica de la instrucción INSERT de SQL es:

INSERT INTO nombre_tabla (nombre_columnas_1, nombre_columnas_2,…) VALORES (datos_columnas_1, datos_columnas_1,…)

En la sintaxis anterior, el nombre de la tabla es el nombre de la tabla en la que queremos insertar nuestros datos. La column_name_1, column_name_2,.. son el nombre de las columnas presentes en la tabla. La column_data_1, column_data_2,… son los datos que queremos insertar en las columnas dadas.

Veamos una demostración práctica para insertar datos en una tabla. Agregaremos algunos datos a nuestra tabla llamada empleado usando SQLite y Python. Ejecute el siguiente código para insertar algunos datos en la tabla.

importar sqlite3 conn = sqlite3.conectar ("muestra.db ") print (" \ n [+] Conectado con éxito a la base de datos ") cur = conn.cursor () print ("\ n [+] El cursor se ha configurado correctamente") cur.execute ("INSERT INTO employee (id, name, salary, join_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO employee (id, name, salary, join_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INSERT INTO employee (id, name, salary, join_date) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO employee (id, name, salary, join_date) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO employee (id, name, salary, join_date) VALUES (1005, 'Ankit', 111000, '10-05-2019 ')") print ("\ n [+] Los datos se han insertado correctamente" ) cur.cerrar () conn.commit () conn.cerca()

El código anterior insertará algunos datos en el empleado tabla que hemos creado anteriormente. Veamos qué está pasando en el código. Las primeras cinco líneas se utilizan para crear una conexión con la base de datos y configurar el cursor. En las líneas del seis al diez, tenemos que usar el comando INSERT de SQL para insertar datos en la tabla de empleados. Tenemos que usar el nombre de las columnas de la tabla de empleados en el primer paréntesis y los datos de las columnas en el segundo paréntesis. Solo necesitamos usar el cometer() método del objeto de conexión antes de desconectarse de la base de datos; de lo contrario, los cambios que hicimos no se guardarán en la base de datos.

Consultar datos de una tabla

Hemos aprendido a insertar datos en una base de datos SQLite, pero también necesitamos consultar datos de la base de datos para que los utilicen nuestro programa o los usuarios. Para consultar datos, podemos usar la instrucción SELECT del SQL bajo el método execute (). La sintaxis básica de la instrucción SELECT se muestra a continuación.

SELECT nombres_columnas FROM nombre_tabla

La nombres_columnas en la sintaxis estará el nombre de las columnas que necesitamos consultar. Estas columnas deben estar presentes en la tabla cuyo nombre se da en lugar de nombre de la tabla. Ahora veamos cómo podríamos usar esta sintaxis para consultar datos de nuestra tabla de empleados. Simplemente ejecute el siguiente código para ver una ilustración.

importar sqlite3 conn = sqlite3.conectar ("muestra.db ") print (" \ n [+] Conectado con éxito a la base de datos ") cur = conn.cursor () print ("\ n [+] El cursor se ha configurado correctamente") cur.execute ("SELECT id, name FROM employee") table = cur.fetchall () para i en la tabla: print (i) cur.cerrar () conn.commit () conn.cerca()

La salida proporcionada por el programa anterior se muestra a continuación.

El programa anterior consultará la tabla de empleados para las columnas identificación y nombre. Podemos recopilar los datos que se han devuelto utilizando el fetchall () método del objeto cursor. Los datos devueltos son una lista de Python que contiene las filas que consultamos. Para mostrar filas individuales, tenemos que usar el bucle for de Python para iterar sobre la lista; puedes leer más sobre el bucle for de Python aquí. Ahora veamos algunas cosas útiles que podemos realizar con la instrucción SELECT.

Obtener todos los datos de una tabla

A veces existe la necesidad de recuperar todos los registros de una tabla de base de datos. Para obtener todos los registros utilizando la instrucción SELECT de SQL, debemos seguir la sintaxis básica que se indica a continuación:

SELECT * FROM table_name

La * El símbolo se usará para denotar todas las columnas, y al usar esto, podemos consultar todas las columnas de una tabla SQLite. Para obtener todos los registros del empleado de la tabla que hemos creado anteriormente, necesitamos ejecutar el siguiente código.

importar sqlite3 conn = sqlite3.conectar ("muestra.db ") print (" \ n [+] Conectado con éxito a la base de datos ") cur = conn.cursor () print ("\ n [+] El cursor se ha configurado correctamente") cur.ejecutar ("SELECCIONAR * DEL empleado") filas = cur.fetchall () print ("\ n [+] Consultando los datos \ n") para i en filas: print (i) cur.cerrar () conn.commit () conn.cerca()

El código anterior mostrará todos los registros presentes en la tabla de empleados que hemos creado anteriormente. La salida del programa será algo como esto:

Consultar datos en orden específico

A veces necesitamos consultar datos de una tabla en un orden definido como Ascendente o Descendente. Podemos usar la instrucción SELECT con la palabra clave ORDER BY para mostrar los datos en orden. La sintaxis básica de la palabra clave ORDER BY en la instrucción SELECT es:

SELECCIONAR nombre_columnas FROM nombre_tabla ORDER BY nombre_columnas

Veamos cómo podemos usar la palabra clave ORDER BY para mostrar los datos del orden de la tabla de empleados por el nombre.

importar sqlite3 conn = sqlite3.conectar ("muestra.db ") print (" \ n [+] Conectado con éxito a la base de datos ") cur = conn.cursor () print ("\ n [+] El cursor se ha configurado correctamente") cur.ejecutar ("SELECCIONAR * DE PEDIDO DE empleado POR nombre") tabla = cur.fetchall () para i en la tabla: print (i) cur.cerrar () conn.commit () conn.cerca()

Puede ver la salida del código anterior, como se muestra a continuación.

Puede notar en la salida que los datos se han mostrado en el orden ascendente de la columna nombre.

Actualizar registros en una tabla

Hay muchas situaciones en las que queremos actualizar la tabla de nuestras bases de datos. Por ejemplo, si estamos usando la base de datos para una aplicación escolar, entonces necesitaremos actualizar los datos si un estudiante se transfirió a una nueva ciudad. Podemos actualizar rápidamente una fila de cualquier tabla de nuestra base de datos usando el ACTUALIZAR declaración de SQL en el método execute (). Necesitaremos usar la cláusula WHERE de SQL como condición para seleccionar al empleado. La sintaxis básica del ACTUALIZAR la declaración se muestra a continuación.

ACTUALIZAR nombre_tabla SET update_required DONDE Algun_condición

Vea el siguiente ejemplo como una ilustración de la instrucción UPDATE.

importar sqlite3 conn = sqlite3.conectar ("muestra.db ") print (" \ n [+] Conectado con éxito a la base de datos ") cur = conn.cursor () print ("\ n [+] El cursor se ha configurado correctamente") print ("\ n [+] Datos antes de la actualización \ n") cur.ejecutar ("SELECT * FROM employee") before = cur.fetchall () para i en antes: print (i) cur.ejecutar ("ACTUALIZAR el SET del empleado nombre = 'Aditya' donde nombre = 'Sam'") imprimir ("\ n [+] Datos después de la actualización \ n") cur.ejecutar ("SELECT * FROM employee") after = cur.fetchall () para i en after: print (i) cur.cerrar () conn.commit () conn.cerca()

El programa anterior actualizará la tabla de empleados. Reemplaza el nombre Sam con el nombre Aditya dondequiera que aparezca en la tabla. Vea la imagen de abajo para ver la salida del programa.

Conclusión

Esa es nuestra guía completa para realizar algunas tareas básicas relacionadas con la base de datos SQLite usando Python. En el próximo tutorial, veremos algunos usos más avanzados que deberían llevarlo al siguiente nivel de aprendizaje de la base de datos SQLite para Python. Estén atentos a FOSSLinux.

Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....
SuperTuxKart para Linux
SuperTuxKart es un gran título diseñado para ofrecerte la experiencia Mario Kart de forma gratuita en tu sistema Linux. Es bastante desafiante y diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth es uno de los juegos de estrategia de código abierto más populares que puedes jugar en este momento. Este juego no solo ha esta...