SQLAlchemy Core: selección de filas

En este artículo, vamos a ver cómo escribir una consulta para obtener todas las filas según ciertas condiciones en SQLAlchemy contra una base de datos PostgreSQL en python.

Creación de tabla para demostración:

Importe las funciones necesarias del paquete SQLAlchemy. Establezca una conexión con la base de datos PostgreSQL usando la función create_engine() como se muestra a continuación, cree una tabla llamada libros con las columnas book_id y book_price. Inserte un registro en las tablas usando la función insert() y valores() como se muestra.

Python3

# import necessary packages
import sqlalchemy
from sqlalchemy import create_engine, MetaData,
Table, Column, Numeric, Integer, VARCHAR
from sqlalchemy.engine import result
 
# establish connections
engine = create_engine(
    "database+dialect://username:password0@host:port/databasename")
 
# initialize the Metadata Object
meta = MetaData(bind=engine)
MetaData.reflect(meta)
 
# create a table schema
books = Table(
    'books', meta,
    Column('bookId', Integer, primary_key=True),
    Column('book_price', Numeric),
    Column('genre', VARCHAR),
    Column('book_name', VARCHAR)
)
 
meta.create_all(engine)
 
# insert records into the table
statement1 = books.insert().values(bookId=1, book_price=12.2,
                                   genre='fiction',
                                   book_name='Old age')
statement2 = books.insert().values(bookId=2, book_price=13.2,
                                   genre='non-fiction',
                                   book_name='Saturn rings')
statement3 = books.insert().values(bookId=3, book_price=121.6,
                                   genre='fiction',
                                   book_name='Supernova')
statement4 = books.insert().values(bookId=4, book_price=100,
                                   genre='non-fiction',
                                   book_name='History of the world')
statement5 = books.insert().values(bookId=5, book_price=1112.2,
                                   genre='fiction', book_name='Sun city')
 
# execute the insert records statement
engine.execute(statement1)
engine.execute(statement2)
engine.execute(statement3)
engine.execute(statement4)
engine.execute(statement5)

Producción:

tabla de muestra

Extrae filas completas en SQLAlchemy

La selección de filas en una tabla tiene un procedimiento ligeramente diferente al de una consulta SQL convencional que se muestra a continuación

sqlalchemy.select(Tablename).whereTablename.c.column_name == condición)

Obtenga la tabla de libros del objeto Metadata inicializado mientras se conecta a la base de datos. Pase la consulta SQL a la función execute() y obtenga todos los resultados usando la función fetchall(). Use un bucle for para iterar a través de los resultados. La consulta SQLAlchemy que se muestra en el siguiente código selecciona todas las filas donde la fila contiene un género de «ficción».

Python3

# Get the books table from the Metadata object
BOOKS = meta.tables['books']
 
# SQLAlchemy Query to select all rows with
# fiction genre
query = sqlalchemy.select(BOOKS).where(BOOKS.c.genre == 'fiction')
 
# Fetch all the records
result = engine.execute(query).fetchall()
 
# View the records
for record in result:
    print("\n", record)

Producción:

La salida de seleccionar filas

Publicación traducida automáticamente

Artículo escrito por jssuriyakumar 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 *