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.
Industriingeniør som gerne beskæftiger sig med optimering, simulation og matematisk modellering i R, SQL, VBA og Python
Leave a Reply