Devolviendo filas distintas en SQLAlchemy con SQLite

En este artículo, veremos cómo devolver filas distintas en SQLAlchemy con SQLite en Python.

Instalación

SQLAlchemy está disponible a través del paquete de instalación pip.

pip install sqlalchemy

Sin embargo, si está utilizando un matraz, puede utilizar su propia implementación de SQLAlchemy. Se puede instalar usando –

pip install flask-sqlalchemy

Creación de base de datos y tabla usando SQLite

Vamos a hacer uso de la base de datos sqlite3. Puede descargar la base de datos desde este enlace. Descomprima el archivo descargado en un directorio. Después de eso, cree una base de datos para trabajar. Siga el siguiente proceso para crear una base de datos llamada usuarios :

  • Abra el símbolo del sistema y señale el directorio en el que se encuentra el archivo sqlite.exe .
  • Cree una base de datos llamada usuarios usando el comando sqlite3 users.db
  • Verifique la base de datos creada usando el comando .databases

Crear base de datos usando sqlite3

Antes de que podamos ejecutar la consulta SQLAlchemy, necesitaremos una tabla de base de datos y algunos registros con los que trabajar. Creemos una tabla llamada empleados e insertemos algunos valores en ella. La consulta SQL sin procesar viene dada por:

CREATE TABLE employees (
  emp_name VARCHAR(50),
  emp_email VARCHAR(50),
  emp_address VARCHAR(50)
);
INSERT INTO employees VALUES
  ('John', 'john.doe@email.com', 'Washington'),
  ('Sundar', 'spichai@eail.com', 'California'),
  ('Rahul', 'rahul@email.com', 'Mumbai'),
  ('Sonia', 'sonia@email.com', 'Mumbai'),
  ('Aisha', 'aisha@email.com', 'California');

Las dos consultas anteriores crearán la tabla de empleados e insertarán 5 registros en ella. La consulta se puede ejecutar en un shell sqlite3 como se muestra a continuación:

Ejecutar consulta en shell SQLite

Obtener registros distintos usando SQLAlchemy

Ahora, tenemos la tabla lista con nosotros para que podamos escribir el código SQLAlchemy para extraer los distintos registros de la tabla. Obtendremos los distintivos (es decir, registros únicos) de la tabla de empleados para el campo emp_address .

Python

import sqlalchemy as db
  
# Define the Engine (Connection Object)
engine = db.create_engine("sqlite:///users.db")
  
# Create the Metadata Object
meta_data = db.MetaData(bind=engine)
db.MetaData.reflect(meta_data)
  
# Get the `employees` table from the Metadata object
EMPLOYEES = meta_data.tables['employees']
  
# SQLAlchemy Query to extract DISTINCT records
query = db.select([db.distinct(EMPLOYEES.c.emp_address)])
  
# Fetch all the records
result = engine.execute(query).fetchall()
  
# View the records
for record in result:
    print("\n", record)

Producción:

Salida de código

Explicación:

  • Primero, importamos la biblioteca sqlalchemy como db para simplificar. Todos los objetos, métodos, etc. de sqlalchemy se importarán utilizando este prefijo db para una mayor claridad.
  • Luego creamos el motor que servirá como conexión a la base de datos para realizar todas las operaciones de la base de datos.
  • Cree el objeto de metadatos. El objeto de metadatos ‘metadatos’ contiene toda la información sobre nuestra base de datos.
  • Utilice la información de los metadatos para obtener la tabla de ‘empleados’ de la base de datos.
  • Ahora podemos escribir una consulta SQLAlchemy para obtener los registros únicos. Realizamos la operación DISTINCT en el campo emp_address para recuperar el conjunto único de valores en el campo respectivo usando la función ‘distinct()’ de SQLalchemy .
  • Imprime todos los registros obtenidos. En el resultado, podemos ver que solo tenemos 3 valores de dirección de empleado distintos.

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 *