*SQLAlchemy* es una librería de Python que proporciona una manera flexible y eficiente de interactuar con bases de datos relacionales. Algunas características clave de SQLAlchemy incluyen:


1. *ORM (Object-Relational Mapping)*: Permite mapear objetos de Python a tablas en la base de datos, facilitando la manipulación de datos de manera orientada a objetos.


2. *Lenguaje SQL expresivo*: Proporciona un lenguaje SQL en Python, lo que facilita la creación y ejecución de consultas SQL de manera programática.


3. *Conexiones y sesiones*: Ofrece una gestión eficiente de conexiones a la base de datos y sesiones para transacciones.


4. *Compatibilidad con múltiples bases de datos*: Soporta una variedad de motores de bases de datos como PostgreSQL, MySQL, SQLite, y má…

 Ejemplo básico de uso con SQL Server:

python

import pyodbc

# Conexión a la base de datos

connection_string = 'DRIVER={SQL Server};SERVER=nombre_servidor;DATABASE=nombre_base_datos;UID=nombre_usuario;PWD=contraseña'

connection = pyodbc.connect(connection_string)

# Crear un cursor

cursor = connection.cursor()

# Ejecutar una consulta

cursor.execute("SELECT * FROM TableName")

# Obtener resultados

rows = cursor.fetchall()

for row in rows:

    print(row)

# Cerrar conexión

connection.close()

*1. Crear una Tabla y Agregar Datos:*


python

from sqlalchemy import create_engine, Column, Integer, String, Sequence

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import sessionmaker


# Definir modelo

Base = declarative_base()


class Person(Base):

    __tablename__ = 'people'

    id = Column(Integer, Sequence('person_id_seq'), primary_key=True)

    name = Column(String(50))

    age = Column(Integer)


# Crear motor de base de datos en memoria

engine = create_engine('sqlite:///:memory:')


# Crear tablas

Base.metadata.create_all(engine)


# Crear sesión

Session = sessionmaker(bind=engine)

session = Session()


# Agregar datos

person1 = Person(name='Alice', age=25)

person2 = Person(name='Bob', age=30)


session.add_all([person1, person2])

session.commit()


# Consultar y mostrar datos

people = session.query(Person).all()

for person in people:

    print(person.name, person.age)



*2. Consulta con Filtros:*


python

# Consultar personas mayores de 25 años

query = session.query(Person).filter(Person.age > 25)

results = query.all()


for person in results:

    print(person.name, person.age)



*3. Actualizar Datos:*


python

# Actualizar la edad de Alice

alice = session.query(Person).filter_by(name='Alice').first()

alice.age = 26

session.commit()


# Consultar y mostrar datos actualizados

updated_people = session.query(Person).all()

for person in updated_people:

    print(person.name, person.age)


*PyODBC* es una librería de Python que proporciona una interfaz para acceder a bases de datos a través de ODBC (Open Database Connectivity). ODBC es un estándar que permite a las aplicaciones acceder a diversas bases de datos utilizando un conjunto común de funciones. Algunas características de PyODBC son:

1. *Conectividad universal*: Permite conectarse a una variedad de bases de datos compatibles con ODBC, como Microsoft SQL Server, MySQL, PostgreSQL, Oracle, y más.

2. *Operaciones SQL*: Facilita la ejecución de consultas SQL y la manipulación de datos en bases de datos.

3. *Manejo de transacciones*: Admite transacciones para asegurar la integridad de los datos.

4. *Soporte para procedimientos almacenados*: Permite ejecutar procedimientos almacenados en la base de datos.

5. *Parámetros seguros*: Facilita la prevención de inyecciones SQL mediante el uso de parámetros seguros en las consultas.

### Ejemplo 1: Conexión y Consulta Básica

import pyodbc

# Conexión a la base de datos
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=nombre_servidor;DATABASE=nombre_base_datos;UID=nombre_usuario;PWD=contraseña')

# Crear un cursor
cursor = conn.cursor()

# Uso de parámetros en la consulta
parametro1 = 'valor1'
parametro2 = 'valor2'

# Asegúrate de pasar los parámetros como una tupla
cursor.execute("SELECT * FROM NombreTabla WHERE columna1 = ? AND columna2 = ?", parametro1, parametro2)

# Obtener resultados
rows = cursor.fetchall()
for row in rows:
    print(row)

# Cerrar conexión
conn.close()


### Ejemplo 2: Inserción de Datos

import pyodbc

# Conexión a la base de datos
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=nombre_servidor;DATABASE=nombre_base_datos;UID=nombre_usuario;PWD=contraseña')

# Crear un cursor
cursor = conn.cursor()

# Inserción de datos con parámetros
valor1 = 'valor1'
valor2 = 'valor2'
cursor.execute("INSERT INTO NombreTabla (columna1, columna2) VALUES (?, ?)", valor1, valor2)

# Confirmar la transacción
conn.commit()

# Cerrar conexión
conn.close()


### Ejemplo 3: Uso de Parámetros

import pyodbc

# Conexión a la base de datos
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=nombre_servidor;DATABASE=nombre_base_datos;UID=nombre_usuario;PWD=contraseña')

# Crear un cursor
cursor = conn.cursor()

# Uso de parámetros en la consulta
parametro1 = 'valor1'
parametro2 = 'valor2'

# Asegúrate de pasar los parámetros como una tupla
cursor.execute("SELECT * FROM NombreTabla WHERE columna1 = ? AND columna2 = ?", parametro1, parametro2)

# Obtener resultados
rows = cursor.fetchall()
for row in rows:
    print(row)

# Cerrar conexión
conn.close()

Comentarios

Entradas populares