Implementación de declaraciones SELECT en Python para la base de datos SQLite 3

En una publicación anterior sobre SQLite 3 y Python, agregué dos tablas relacionadas a una base de datos SQLite 3, usando Pyhton. Las tablas se denominan universidadesTBxx y estudiantesTBxx. Ambas tablas se almacenan en una base de datos llamada “newDatabase.db”. Los estudiantes se inscriben en una universidad. La información relacionada con la universidad respectiva está contenida en la tabla UniversidadesTBxx.

En esta publicación, implementaré una consulta SQL básica para recuperar datos de la base de datos SQLite 3. Primero, repitamos la implementación de una función relevante para crear una conexión a una base de datos:

# importar módulo sqlite3
import sqlite3

# esta función crea una conexión de base de datos a un archivo de base de datos
# parámetros: nombre del archivo de la base de datos
# devuelve: conexión a la base de datos
def create_connection(db_file):
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        print(e)
    return conn

Como conocemos el nombre de la base de datos, ahora podemos conectarnos a ella usando la función anterior:

# obtener un controlador de referencia para conectarse con la base de datos
dbConnection = create_connection("newDatabase.db")

Ahora tenemos una referencia a la conexión a la base de datos relevante. Implementemos un comando SELECT * para la tabla de la universidad, usando Python y el módulo sqlite3:

cursorObj = dbConnection.cursor()
cursorObj.execute("SELECT * FROM universitiesTBxx")
rowList = cursorObj.fetchall()
for row in rowList:
    print(row)
('MIT', 'USA')
('ETH', 'CH')
('DTU', 'DK')

Podríamos, por ejemplo, también intente una declaración de condición SELECT * FROM tableName WHERE. P.ej. Solo quiero que se devuelvan los estudiantes que estudiaron en ETH Zürich (Instituto Federal Suizo de Tecnología):

cursorObj.execute("SELECT * FROM studentsTBxx WHERE university = 'ETH'")
rowList = cursorObj.fetchall()
for row in rowList:
    print(row)
(1, 'Linnart', 'ETH', 'MSc')

También podríamos implementar una función que permita genéricamente la ejecución de una instrucción select a partir de un nombre de tabla parametrizado, usando filtros paramétricos.

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Close

Meta