En esta parte del tutorial nos centraremos en ver aspectos básicos para trabajar con bases de datos sqlite3, para ello Python nos ofrece un módulo llamado sqlite3.
Este tipo de base de datos es muy popular y totalmente válida y eficiente para cualquier tipo de proyectos, basados en la web o aplicaciones de escritorio.
Para trabajar con sqlite3 es requisito tener al menos unos conceptos básicos del lenguaje SQL.
Para poder utilizar sqlite3 necesitamos importarlo ...
import sqlite3
En el capítulo del vídeo tutorial se muestra como crear una base de datos sqlite3, simplemente creas un archivo, con extensión: .db .sqlite o .sqlite3, por ejemplo, test.sqlite3. Desde este mismo instante ya tienes disponible una base de datos sqlite3 disponible para trabajar con ella.
Esta base de datos está vacía, ahora lo lógico es ir creando las tablas, para ello lo primero que haremos es establecer una conexión a la base de datos ...
import sqlite3 #Conectar a la base de datos conexion = sqlite3.connect("test.sqlite3")
Lo siguiente es seleccionar el cursor para poder realizar una consulta ...
import sqlite3 #Conectar a la base de datos conexion = sqlite3.connect("test.sqlite3") #Seleccionar el cursor para realizar la consulta consulta = conexion.cursor()
Preparar la consulta sql, por ejemplo como la base de datos test.sqlite3 está vacía, lo lógico es agregarle alguna tabla, en una variable guardar la consulta SQL ...
import sqlite3 #Conectar a la base de datos conexion = sqlite3.connect("test.sqlite3") #Seleccionar el cursor para realizar la consulta consulta = conexion.cursor() #String con la consulta para crear la tabla sql = """CREATE TABLE IF NOT EXISTS test( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, cadena_texto VARCHAR(50) NOT NULL, entero INTEGER NOT NULL, decimal FLOAT NOT NULL, fecha DATE NOT NULL) """
La siguiente fase es generar la consulta a través del método execute(sql) y cerrarla con el método close() ...
import sqlite3 #Conectar a la base de datos conexion = sqlite3.connect("test.sqlite3") #Seleccionar el cursor para realizar la consulta consulta = conexion.cursor() #String con la consulta para crear la tabla sql = """CREATE TABLE IF NOT EXISTS test( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, cadena_texto VARCHAR(50) NOT NULL, entero INTEGER NOT NULL, decimal FLOAT NOT NULL, fecha DATE NOT NULL) """ #Ejecutamos la consulta if (consulta.execute(sql)): print("Tabla creada con éxito") else: print("Ha ocurrido un error al crear la tabla") #Cerramos la consulta consulta.close()
Finalemente guardamos los cambios en la base de datos con commit() y cerramos la conexión a la base de datos con close() ...
#IMPORTANTE codificar el script en UTF-8 import sqlite3 #Conectar a la base de datos conexion = sqlite3.connect("test.sqlite3") #Seleccionar el cursor para realizar la consulta consulta = conexion.cursor() #String con la consulta para crear la tabla sql = """CREATE TABLE IF NOT EXISTS test( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, cadena_texto VARCHAR(50) NOT NULL, entero INTEGER NOT NULL, decimal FLOAT NOT NULL, fecha DATE NOT NULL) """ #Ejecutamos la consulta if (consulta.execute(sql)): print("Tabla creada con éxito") else: print("Ha ocurrido un error al crear la tabla") #Cerramos la consulta consulta.close() #Guardamos los cambios conexion.commit() #Cerramos la conexión conexion.close()
Si ahora ejecutas este escript la tabla se creará en la base de datos test.sqlite3.
En el capítulo del vídeo tutorial, se muestra paso a paso cada proceso a seguir, desde crear la base de datos, crear la tabla como hemos visto en el ejemplo anterior y también como insertar registros en la tabla.
Archivos del capítulo del vídeo tutorial:
crear-tabla.py
#IMPORTANTE convertir el script a la codificación UTF-8 import sqlite3 #Conectamos a la base de datos conexion = sqlite3.connect("sqlite3/test.sqlite3") #Seleccionamos el cursor para realizar la consulta consulta = conexion.cursor() #String con la consulta para crear la tabla sql = """CREATE TABLE IF NOT EXISTS test( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, cadena_texto VARCHAR(50) NOT NULL, entero INTEGER NOT NULL, decimal FLOAT NOT NULL, fecha DATE NOT NULL) """ #Ejecutamos la consulta if (consulta.execute(sql)): print("Tabla creada con éxito") else: print("Ha ocurrido un error al crear la tabla") #Cerramos la consulta consulta.close() #Guardamos los cambios conexion.commit() #Cerramos la conexión conexion.close()
insertar-datos.py
#IMPORTANTE convertir el script a la codificación UTF-8 import sqlite3, datetime print ("**** Programa para insertar datos en bases de datos sqlite3 ****") cadena_texto = input("Introduzca una cadena de texto: ") entero = input("Introduzca un número entero: ") decimal = input("Introduzca un número decimal: ") #Capturar excepciones para los números enteros y decimal #Sólo números enteros try: entero = int(entero) except ValueError: print(entero, "no es un número entero") exit() #Sólo numeros decimales try: decimal = float(decimal) or int(decimal) except ValueError: print(decimal, "no es un número decimal") exit() #Establecer la conexión conexion = sqlite3.connect("sqlite3/test.sqlite3") #Seleccionar el cursor para iniciar una consulta consulta = conexion.cursor() #Valor de los argumentos argumentos = (cadena_texto, entero, decimal, datetime.date.today()) #consulta SQL con argumentos ?, ?, ?, ? sql = """INSERT INTO test(cadena_texto, entero, decimal, fecha) VALUES (?, ?, ?, ?)""" #Realizar la consulta if (consulta.execute(sql, argumentos)): print("Registro guardado con éxito") else: print("Ha ocurrido un error al guardar los datos") #Cerrar la consulta consulta.close() #Guardar los cambios en la base de datos conexion.commit() #Cerrar la conexión conexion.close()
No hay comentarios:
Publicar un comentario