Implementering af SELECT-anvisninger for SQLite3-database via Python

I et tidligere indlæg om SQLite3 og Python tilføjede jeg to relaterede tabeller til en SQLite 3-database, via Python. Tabellerne kaldtes universiteterTBxx og studerendeTBxx. Begge tabeller er gemt i en database kaldet “newDatabase.db”. Studerende er registreret på et universitet. Oplysninger relateret til det respektive universitet er indeholdt i tabellen universiteter TBX.

I dette indlæg vil jeg implementere en grundlæggende SQL-forespørgsel til at hente data fra SQLite 3-databasen. Lad os først gentage implementeringen af ​​en relevant funktion til oprettelse af en forbindelse til en database:

# import sqlite3 modul
import sqlite3

# denne funktion opretter en databaseforbindelse til en databasefil
# parametre: databasefilnavn
# returnerer: forbindelse til database
def create_connection(db_file):
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        print(e)
    return conn

Da vi kender databasenavnet kan vi nu oprette forbindelse til databasen ved hjælp af ovenstående funktion:

# at hente en referencehåndterer til at oprette forbindelse til databasen
dbConnection = create_connection("newDatabase.db")

Vi har nu en henvisning til forbindelsen til den relevante database. Lad os implementere en SELECT * -kommando til universitetstabellen ved hjælp af Python og sqlite3-modulet:

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

Vi kunne f.eks. prøve at udføre en SELECT * FROM tableName WHERE forespørgsel. F.eks. ønsker jeg kun, at studerende fra ETH Zürich (Swiss Federal Institute of Technology) skal returneres:

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

Vi kunne også implementere en funktion, der generisk tillader udførelse af en valgt forespørgsel fra et parametriseret tabelnavn ved hjælp af parametriske filtre.

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Close

Meta