SQL Schnellstart – Python und SQL

Auch mit der beliebten Skriptsprache Python kannst du eine Verbindung zu diversen Datenbanken herstellen.

Python: Installation

Damit du Python-Code ausführen kannst, benötigst du den Python-Interpreter. Den Link dazu findest du hier. Klick danach auf die neuste Python-Version und scroll herunter, dort kannst du dir einen Installer für verschiedene Betriebssysteme herunterladen.

MySQL Treiber installieren

Python kann für verschiedene Datenbankmanagementsysteme genutzt werden. Es gibt bereits unzählige verschiedene vorgefertigte Python-Pakete, welche uns die Arbeit mit Datenbanken um einiges erleichtert. Um eine Verbindung zu unserer XAMPP MySQL Datenbank aufzubauen, können wir das Paket "MySQL Connector" verwenden. Nachdem du Python installiert hast, kannst du den MySQL-Treiber hinzufügen. Python hat eine Paketverwaltung namens PIP, mit dieser können wir mit nur einem Befehl verschiedene Module herunterladen. Für den "MySQL Connector" kannst du folgenden Befehl verwenden:

python -m pip install mysql-connector-python

Python-Skript erstellen

Nun kannst du ein Python-Skript erstellen. Erstelle dazu eine neue Textdatei, ändere die Dateiendung .txt danach in .py um.

Das Skript kannst du nun mit einem Text-Editor wie Notepad++ öffnen. Danach kannst du folgenden Python-Code eingeben:

# Importieren vom MySQL Connector
import mysql.connector

""" 
-Stellt eine Verbindung zu unserer Datenbank her.
-Localhost bedeutet hier, der MySQL-Server läuft lokal auf unserem Rechner;
Dort könnnte man auch eine IP-Adresse eintragen. 
-Root ist in XAMPP / MySQL unser Standarduser.
-Standardgemäß haben wir kein Passwort
-Wir wollen auf unsere Datenbank "kunden" zugreifen
"""
mysqldb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="",
  database="kunden"
)

# SQL-Abfrage, um alle Kunden auszuwählen
SQL_QUERY="SELECT * FROM kunde"
""" 
Ein "Cursor-Object" kann mit unserer Datenbank tatsächlich interagieren
und somit auch SQL-Anweisungen ausführen. Wir erzeugen also ein Cursor-Object 
von unserer Datenbank.
"""
cursor = mysqldb.cursor()
# Ausführen der SQL-Abfrage
cursor.execute(SQL_QUERY)
# Ergebnisse unserer Abfrage in der Variable "SQL_RESULT" speichern
SQL_RESULT = cursor.fetchall()

# Jede Zeile unseres Ergebnisses durchlaufen und die jeweigen Werte ausgeben
for row in SQL_RESULT:
    print("KundenID = ", row[0])
    print("Vorname = ", row[1])
    print("Nachname = ", row[2])
    print("")

# Verbindung zur Datenbank trennen
mysqldb.close()
cursor.close()

print("Drücke Enter, um das Programm zu schließen...")
# Damit sich das Terminal nicht direkt schließt, auf eine Enter-Eingabe warten
input()

Damit das Skript funktioniert musst du natürlich bereits eine Datenbank "kunden" erstellt, eine Tabelle "kunde" hinzugefügt und Beispieldaten eingefügt haben. Das kannst du mit PhpMyAdmin und XAMPP machen.

Ergebnis:

Nun kannst du dein Python-Skript ausführen, denke daran, vorher deinen MySQL-Server zu starten. Meistens genügt ein Doppelklick auf die Python-Datei, ansonsten kannst du dein Skript auch über die Kommandozeile mit python <Dateipfad zum Python-Skript> ausführen.

Challenge: Alle Kunden mit einer KundenID größer als 2

Verändere das Python-Skript so, dass du nur noch die Daten der Kunden bekommst, welche eine KundenID größer als 2 haben. Die Lösung findest du unten.

Lösung:

Du änderst die Zeile mit der SQL_QUERY zu folgender ab:

# SQL-Abfrage, um alle Kunden auszuwählen
SQL_QUERY="SELECT * FROM kunde WHERE KundenID > 2"

Bei mir hieß die Spalte "KundenID". Du solltest aber auf jeden Fall nachschauen, wie du deine "ID"-Spalte genannt hast und das Skript dann gegebenenfalls anpassen.

Fazit

Besonders wenn du mit Python Webserver oder ähnliches entwickelst, wirst du wahrscheinlich Datenbanken verwenden. Durch die große Anzahl an Python-Pakete kannst du mit Python relativ schnell, eine Verbindung zu den meisten Datenbankmanagementsystemen aufbauen.