En este mรณdulo aprenderรกs cรณmo conectar tu aplicaciรณn con una base de datos SQL. Configuraremos la conexiรณn a diferentes motores de bases de datos, aprenderemos a extraer el esquema de las tablas y verificaremos que las consultas generadas por IA sean vรกlidas.
๐น 2.1 Introducciรณn a los Motores de Bases de Datos SQL
- ยฟQuรฉ es un motor de base de datos y cรณmo funciona?
- Comparaciรณn entre SQL Server, MySQL, PostgreSQL y SQLite.
- Conexiรณn desde Python a cada uno de estos motores.
๐น 2.2 Configuraciรณn de la Conexiรณn a SQL Server
Para conectarnos a una base de datos SQL Server desde Python, utilizamos pyodbc.
Primero, instalamos la librerรญa:
pip install pyodbc
Luego, creamos la conexiรณn:
import pyodbc conexion = pyodbc.connect("DRIVER={SQL Server};SERVER=localhost;DATABASE=mi_base;Trusted_Connection=yes;") cursor = conexion.cursor() print("Conexiรณn exitosa a SQL Server")
๐น 2.3 Configuraciรณn de la Conexiรณn a MySQL
Para MySQL, utilizamos mysql-connector-python:
pip install mysql-connector-python
Y creamos la conexiรณn:
import mysql.connector conexion = mysql.connector.connect( host="localhost", user="root", password="mi_contraseรฑa", database="mi_base" ) cursor = conexion.cursor() print("Conexiรณn exitosa a MySQL")
๐น 2.4 Configuraciรณn de la Conexiรณn a PostgreSQL
Para PostgreSQL, utilizamos psycopg2:
pip install psycopg2
Y establecemos la conexiรณn:
import psycopg2 conexion = psycopg2.connect( host="localhost", database="mi_base", user="postgres", password="mi_contraseรฑa" ) cursor = conexion.cursor() print("Conexiรณn exitosa a PostgreSQL")
๐น 2.5 Extracciรณn del Esquema de la Base de Datos
Para mejorar la generaciรณn de consultas SQL con IA, necesitamos obtener el esquema de la base de datos (tablas y columnas).
โ Obtener el Esquema en SQL Server
cursor.execute("SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS") for fila in cursor.fetchall(): print(fila)
โ Obtener el Esquema en MySQL
cursor.execute("SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'mi_base'") for fila in cursor.fetchall(): print(fila)
โ Obtener el Esquema en PostgreSQL
cursor.execute("SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_schema = 'public'") for fila in cursor.fetchall(): print(fila)
๐น 2.6 Validaciรณn de Consultas Generadas por IA
Antes de ejecutar una consulta SQL generada por IA, es recomendable validarla. Podemos usar la siguiente funciรณn para verificar errores:
def validar_sql(query, cursor): try: cursor.execute("EXPLAIN " + query) return "Consulta vรกlida" except Exception as e: return f"Error en la consulta: {e}"
๐น 2.7 Prueba de Conexiรณn con un Chatbot SQL
Ahora, conectamos la IA con la base de datos para probar consultas generadas automรกticamente.
import ollama def generar_consulta(pregunta): prompt = f"Genera una consulta SQL basada en la pregunta: {pregunta}. Solo devuelve la consulta SQL sin explicaciones." respuesta = ollama.chat(model="sqlcoder", messages=[{"role": "user", "content": prompt}]) return respuesta['message']['content'] pregunta_usuario = "ยฟCuรกntos productos hay en la tabla Productos?" consulta_sql = generar_consulta(pregunta_usuario) print("Consulta generada:", consulta_sql) cursor.execute(consulta_sql) resultados = cursor.fetchall() print(resultados)
๐ Conclusiรณn del Mรณdulo 2. Conexion a Bases de Datos SQL
- Aprendiste a conectar Python con SQL Server, MySQL y PostgreSQL.
- Extrajiste el esquema de la base de datos para ayudar a la IA.
- Implementaste una validaciรณn de consultas SQL.
- Probaste una consulta generada automรกticamente con IA.
Indice del curso
Capitulo anterior
Introducciรณn a la IA para SQL