Conexion a Bases de Datos SQL

Conexion a Bases de Datos SQL

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.

Enlace Patrocinado

Respondent.io

Respondent.io es una plataforma en línea que conecta investigadores y empresas con participantes para estudios de mercado y encuestas remuneradas. Su objetivo es facilitar la recopilación de datos cualitativos y cuantitativos mediante entrevistas, encuestas y pruebas de usuario

? 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

Curso Agente IA texto a sql

Capitulo anterior

Introducción a la IA para SQL