En esta publicación, profundizaremos en los resultados obtenidos cuando ejecutamos una consulta de una sola columna usando SQLAlchemy.
SQLAlchemy es un módulo de python increíble y fácil de usar que se usa para conectar bases de datos de python y SQL, lo que aumenta los poderes de cualquier programador. Para instalar SQLAlchemy, ejecute el siguiente comando en su terminal:
pip install sqlalchemy pymysql
Nota: pymysql es una dependencia de SQLAlchemy que debemos instalar para esta publicación.
Entonces, cuando ejecutamos una consulta de una sola columna usando SQLAlchemy, obtenemos un resultado. El objeto de resultado contendrá tuplas de valores de esa consulta de una sola columna. Así es como funciona la funcionalidad básica.
Ejecutemos algunas consultas y veamos lo anterior.
Base de datos utilizada:
Ejemplo 1:
Busquemos todos los nombres usando SQLAlchemy y veamos el resultado obtenido. La consulta SQL se verá así:
SELECT name FROM student;
Python3
from sqlalchemy import create_engine user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks' engine = create_engine( url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8') connection = engine.connect() table_name = 'student' query = f'SELECT name FROM {table_name} ;' result = connection.execute(query) for e in result: print(e)
Ejemplo 2:
Busquemos todas las secciones de estudiantes con sno es 1 o 2 o 6 de la tabla de estudiantes.
La consulta SQL se verá así:
SELECT section FROM student WHERE sno IN (1,2,6);
Python3
from sqlalchemy import create_engine user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks' engine = create_engine( url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8') connection = engine.connect() table_name = 'student' query = f'SELECT section FROM {table_name} WHERE sno IN (1,2,6) ;' result = connection.execute(query) for e in result: print(e)
Entonces, como puede ver en los dos ejemplos anteriores, la consulta de una sola columna devuelve el resultado que contiene tuplas cuyos elementos son valores obtenidos de la consulta.
Obtener una lista que contiene valores directos de resultados en lugar de tuplas
Ahora, es posible que necesite obtener los valores directamente en lugar de almacenarlos en una tupla y obtener esas tuplas.
Como puedes observar, el primer elemento de cada tupla es nuestro valor. Entonces, puede ejecutar un ciclo for en el objeto de resultado y en cada iteración, obtendrá la tupla. Y puede agregar el primer elemento de esa tupla a su lista personalizada y obtener fácilmente esos valores. Veamos el código de lo anterior:
Python3
values = [] for e in result: values.append(e[0])
La lista de valores contendrá todos los valores obtenidos directamente. Puede reducir el n. de líneas utilizadas anteriormente utilizando la comprensión de listas. El código para eso es:
Python3
values = [ e[0] for e in result ]
Ejemplo :
Python3
from sqlalchemy import create_engine user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks' engine = create_engine( url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8') connection = engine.connect() table_name = 'student' query = f'SELECT name FROM {table_name};' result = connection.execute(query) values = [] for e in result: values.append(e[0]) print(values)
Publicación traducida automáticamente
Artículo escrito por mycodenotein y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA