Conectándote y Trabajando con SQL Server en Python: Un Tutorial Completo
Introducción
En este blog, exploraremos cómo conectarte a una base de datos de SQL Server desde Python utilizando el módulo pyodbc. Además, aprenderás cómo insertar datos en una tabla y leer datos de la misma. Ya sea que seas un principiante que busca iniciar su viaje en bases de datos o un desarrollador experimentado que busca trabajar con SQL Server, ¡este tutorial es para ti!
Sección 1: Configurando el Entorno
# Instalación del módulo pyodbc
!pip install pyodbc
import pyodbc
server = "tu_servidor"
database = "tu_base_de_datos"
username = "tu_usuario"
password = "tu_contraseña"
connection_string = (
f'DRIVER=ODBC Driver 18 for SQL Server;SERVER={server};'
f'DATABASE={database};UID={username};PWD={password};'
'TrustServerCertificate=yes;'
)
Sección 2: Escribir Datos en una Tabla de SQL Server
def insertar_datos(conn, nombre, edad):
try:
cursor = conn.cursor()
conn.autocommit = False # Desactivar el modo de confirmación automática
# Iniciar la transacción
cursor.execute("BEGIN TRANSACTION")
sql_query = f"INSERT INTO TuTabla (Nombre, Edad) VALUES (?, ?)"
cursor.execute(sql_query, (nombre, edad))
# Confirmar la transacción si no hay errores
conn.commit()
print("Datos insertados con éxito.")
except Exception as e:
conn.rollback() # Revertir la transacción en caso de error
print(f"Error al insertar datos: {str(e)}")
finally:
conn.autocommit = True # Restaurar el modo de confirmación automática
Sección 3: Leer Datos de una Tabla de SQL Server
def leer_datos_paginados(conn, page_size=10):
try:
cursor = conn.cursor()
page_number = 1
while True:
cursor.execute(f"SELECT Nombre, Edad FROM TuTabla ORDER BY Nombre OFFSET {page_size * (page_number - 1)} ROWS FETCH NEXT {page_size} ROWS ONLY")
rows = cursor.fetchall()
if not rows:
break
print(f"=== Página {page_number} ===")
for row in rows:
nombre, edad = row.Nombre, row.Edad
print(f"Nombre: {nombre}, Edad: {edad}")
page_number += 1
except Exception as e:
print(f"Error al leer datos: {str(e)}")
Sección 4: Ventajas de Trabajar con Bases de Datos
def optimizar_consulta(conn):
try:
cursor = conn.cursor()
cursor.execute("CREATE INDEX IX_Nombre ON TuTabla (Nombre)") # Crear un índice en la columna Nombre
print("Índice creado con éxito para optimizar consultas.")
except Exception as e:
print(f"Error al crear el índice: {str(e)}")
def ejecutar_procedimiento(conn):
try:
cursor = conn.cursor()
cursor.execute("EXEC TuProcedimientoAlmacenado @Parametro1, @Parametro2") # Ejecutar un procedimiento almacenado con parámetros
print("Procedimiento almacenado ejecutado con éxito.")
except Exception as e:
print(f"Error al ejecutar el procedimiento almacenado: {str(e)}")
Sección 5: Ventajas de Python para Bases de Datos
def interactuar_con_otra_base_de_datos():
try:
# Conexión a una base de datos diferente (por ejemplo, MySQL)
# Establecer la conexión
# Realizar operaciones como consultas, inserciones, etc.
# Cerrar la conexión
print("Interacción exitosa con otra base de datos utilizando Python.")
except Exception as e:
print(f"Error al interactuar con otra base de datos: {str(e)}")
Conclusión
La combinación de Python y SQL Server ofrece una poderosa sinergia para aquellos que buscan trabajar con bases de datos. Al aprovechar la versatilidad de Python y sus capacidades para trabajar con SQL Server, los desarrolladores pueden optimizar sus procesos y maximizar la eficiencia en sus proyectos.