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:
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:
Publicación traducida automáticamente
Artículo escrito por jssuriyakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA