At hente data fra en database er en grundlæggende del af anvendelsen af Python i softwareudvikling. I dag skal vi se på SELECT-sætningen, som giver dig mulighed for effektivt at hente data fra en MySQL-database. I denne vejledning vil du lære, hvordan du kan læse en post fra en 'books'-tabel med en simpel SELECT-sætning.
Vigtigste indsigter
Du vil lære, hvordan du kan hente data med en metode, der bruger cursor-objekter, og hvor vigtigt det er at lukke forbindelsen til databasen.
Trin-for-trin vejledning
For at læse alle poster fra en MySQL-database vil du oprette metoden getbooks. I denne proces vil du komme i kontakt med cursors og udføre en SELECT-sætning.
Først skal du sikre dig, at du allerede har et forbindelsesobjekt, der holder forbindelsen til databasen. Til dette bruger du self.connection, som er defineret i din klasse.

Derefter har du brug for en cursor til at udføre SQL-sætninger. Ved at kalde self.connection.cursor() får du dette cursor-objekt.

Med cursoren kan du udføre din SELECT-sætning. Skriv cursor.execute('SELECT * FROM books'), og hermed sendes sætningen til databasen. Her repræsenterer stjernen (*) alle kolonner i "books"-tabellen.

Når sætningen er blevet udført, skal du hente resultaterne. Dette gør du med cursor.fetchall(), som returnerer alle poster.

Nu kan du returnere den hentede post ved at skrive return cursor.fetchall().
Det er dog vigtigt at lukke cursoren og forbindelsen efter forespørgslen for at frigive ressourcer. Dette gøres med cursor.close() og self.connection.close(). Begge bør kaldes i slutningen af din metode.

For at udskrive dataene kan du kalde metoden getbooks og gennemløbe returværdien i en løkke. For eksempel kan du bruge for book in getbooks(): print(book) for at vise alle bøgerne på skærmen.

Posterne returneres som tupler. Dette er en almindelig praksis i Python, som nemt kan omdannes til lister, hvis det er nødvendigt. Du kan også tilgå eller behandles specifikke kolonner direkte via tuplernes indekser.

Hvis du har forstået princippet i det hele taget, kan du udvide din applikation til også at tilføje nye poster via INSERT-sætninger, hvilket vil blive behandlet i den næste vejledning.
Opsummering – Læs data fra MySQL med Python – Trin for trin
I denne vejledning har du lært, hvordan du skriver effektive SQL-sætninger i Python, henter data ved hjælp af cursors og hvordan du korrekt lukker forbindelsen til databasen. Disse trin er grundlaget for mange andre applikationer og tilpasninger.
Ofte stillede spørgsmål
Hvordan henter jeg data fra databasen?Du kan hente data ved at udføre en SELECT-sætning i din metode og derefter hente resultaterne med cursor.fetchall().
Hvorfor er det vigtigt at lukke forbindelsen til databasen?Lukning af forbindelsen forhindrer, at ressourcer bliver optaget unødigt, og hjælper med at undgå datatab eller problemer med databasen.
Kan jeg kun spørge om specifikke kolonner?Ja, i stedet for SELECT * kan du også angive specifikke kolonner, f.eks. SELECT title, author FROM books.