Att hämta data från en databas är en grundläggande del av användningen av Python inom mjukvaruutveckling. Idag fokuserar vi på SELECT-satsen, som gör att du kan hämta data från en MySQL-databas effektivt. I denna guide får du lära dig hur du kan läsa en post från en 'books'-tabell med en enkel SELECT-sats.

Viktigaste insikterna

Du kommer att lära dig hur du kan hämta data med en metod, använda cursor-objekt och hur viktigt det är att stänga anslutningen till databas.

Steg-för-steg-guide

För att läsa alla poster från en MySQL-databas kommer du att skapa metoden getbooks. I denna process kommer du att stöta på Cursors och köra en SELECT-sats.

Först måste du se till att du redan har ett anslutnings-objekt som håller anslutningen till databasen. Du kommer åt self.connection som är definierad i din klass.

Hämta data från MySQL med Python steg för steg

Därefter behöver du en Cursor för att köra SQL-satser. Genom att anropa self.connection.cursor() får du detta Cursor-objekt.

Hämta data från MySQL med Python steg för steg

Med Cursorn kan du köra din SELECT-sats. Skriv cursor.execute('SELECT * FROM books') och detta skickar satsen till databasen. Här står asterisk (*) för alla kolumner i "books"-tabellen.

Hämta data från MySQL med Python steg för steg

Efter att satsen har körts måste du hämta resultaten. Det gör du med cursor.fetchall(), som returnerar alla poster.

Hämta data från MySQL med Python steg för steg

Nu kan du returnera den hämtade posten genom att skriva return cursor.fetchall().

Det är dock viktigt att stänga Cursorn och anslutningen efter frågan för att frigöra resurser. Detta görs med cursor.close() och self.connection.close(). Båda bör anropas i slutet av din metod.

Hämta data från MySQL med Python steg för steg

För att skriva ut datan kan du kalla på metoden getbooks och gå igenom returen i en loop. Till exempel kan du använda for book in getbooks(): print(book) för att visa alla böcker på skärmen.

Hämta data från MySQL med Python steg för steg

Dataposterna kommer att ges som tuples. Detta är en vanlig praxis i Python som enkelt kan omvandlas till listor om så behövs. Du kan också komma åt specifika kolumner direkt via indexen av tuples eller behandla dem vidare.

Hämta data från MySQL med Python steg för steg

Om du har förstått principen i stort kan du utöka din applikation för att också lägga till nya poster via INSERT-satser, vilket kommer att behandlas i nästa tutorial.

Sammanfattning – Läsa data från MySQL med Python – Steg för steg

I denna guide har du lärt dig hur du skriver effektiva SQL-satser i Python, hämtar data med hjälp av Cursors och dessutom hur du stänger anslutningen till databasen på rätt sätt. Dessa steg är grunden för många andra applikationer och anpassningar.

Vanliga frågor

Hur hämtar jag data från databasen?Du kan hämta data genom att köra en SELECT-sats i din metod och sedan hämta resultaten med cursor.fetchall().

Varför är det viktigt att stänga anslutningen till databasen?Att stänga anslutningen förhindrar att resurser används onödigt och hjälper till att undvika dataläckage eller problem med databasen.

Kan jag fråga endast vissa kolumner?Ja, istället för SELECT * kan du ange specifika kolumner, t.ex. SELECT title, author FROM books.