Consultando y seleccionando una columna específica en SQLAlchemy

En este artículo, veremos cómo consultar y seleccionar columnas específicas usando SQLAlchemy en Python.

Para nuestros ejemplos, ya hemos creado una tabla de Estudiantes que usaremos:

Seleccionando una columna específica en SQLAlchemy:

Sintaxis : sqlalchemy.select(*entidades)

Dónde: Entidades para SELECCIONAR. Esto suele ser una serie de ColumnElement para el uso de Core y clases asignadas a ORM para el uso de ORM.

Núcleo de SQLAlchemy

En este ejemplo, hemos utilizado SQLAlchemy Core. Se hace referencia a la tabla de estudiantes ya creada que contiene 4 columnas, a saber, nombre , apellido , curso , puntuación . Pero solo seleccionaremos una columna específica. En el ejemplo, nos hemos referido a las columnas first_name y last_name . También se pueden proporcionar otras columnas en la lista de entidades.

Python

import sqlalchemy as db
 
# Define the Engine (Connection Object)
engine = db.create_engine("mysql+pymysql://\
root:password@localhost/Geeks4Geeks")
 
# Create the Metadata Object
meta_data = db.MetaData(bind=engine)
db.MetaData.reflect(meta_data)
 
# Get the `students` table from the Metadata object
STUDENTS = meta_data.tables['students']
 
# SQLAlchemy Query to SELECT specific column
query = db.select([
    STUDENTS.c.first_name,
    STUDENTS.c.last_name
])
 
# Fetch all the records
result = engine.execute(query).fetchall()
 
# View the records
for record in result:
    print("\n", record[0], record[1])

Producción:

Salida – SQLAlchemy Core

SQLAlchemy ORM

En este ejemplo es similar al anterior excepto por el hecho de que está construido sobre SQLAlchemy ORM. SQLAlchemy ORM es una implementación más pythonica de SQLAlchemy, como puede ver en el código, hemos creado una clase de Python para hacer referencia a la tabla de estudiantes. La sintaxis es la misma en ambos casos con un cambio menor en la forma en que definimos los nombres de las columnas. Las columnas en ORM se definen mediante clases asignadas a ORM. El resultado es el mismo para ambos, ya que también hemos tomado las columnas first_name y last_name en este ejemplo.

Python

import sqlalchemy as db
from sqlalchemy.ext.declarative import declarative_base
 
Base = declarative_base()
 
# DEFINE THE ENGINE (CONNECTION OBJECT)
engine = db.create_engine("mysql+pymysql:/\
/root:password@localhost/Geeks4Geeks")
 
# CREATE THE TABLE MODEL TO USE IT FOR QUERYING
class Students(Base):
 
    __tablename__ = 'students'
 
    first_name = db.Column(db.String(50),
                           primary_key=True)
    last_name  = db.Column(db.String(50),
                           primary_key=True)
    course     = db.Column(db.String(50))
    score      = db.Column(db.Float)
 
# SQLAlCHEMY CORE QUERY TO FETCH SPECIFIC COLUMNS
query = db.select([Students.first_name, Students.last_name])
 
# FETCH ALL THE RECORDS IN THE RESPONSE
result = engine.execute(query).fetchall()
 
# VIEW THE ENTRIES IN THE RESULT
for record in result:
    print(record[0], record[1])

Producción:

Publicación traducida automáticamente

Artículo escrito por apathak092 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *