PostgreSQL - Python-Schnittstelle: Ein Anfängerleitfaden

Hallo da draußen, zukünftige Datenbank-Zauberer! Ich freue mich sehr, Ihr Guide auf dieser aufregenden Reise in die Welt von PostgreSQL und Python zu sein. Als jemand, der seit Jahren Informatik unterrichtet, kann ich Ihnen sagen, dass diese Kombination wie Erdnussbutter und Marmelade ist – einfach köstlich! Also, rollen wir die Ärmel hoch und tauchen ein!

PostgreSQL - Python

Installation

Bevor wir Zauber zaubern können, müssen wir unsere Werkzeuge einrichten. Denken Sie daran als Vorbereitung Ihrer Küche vor dem Kochen eines Gourmetmahls.

  1. Stellen Sie sicher, dass PostgreSQL auf Ihrem Computer installiert ist. Sie können es von der offiziellen PostgreSQL-Website herunterladen.

  2. Als nächstes müssen wir das Python-Modul installieren, das uns ermöglicht, mit PostgreSQL zu kommunizieren. Öffnen Sie Ihr Terminal oder Kommandozeilenfenster und tippen Sie:

pip install psycopg2

Dieser Befehl ist so, als бы Sie Ihren Computer bitten, ein neues Werkzeug zu seinem Werkzeugkasten hinzuzufügen. Wenn das erledigt ist, sind Sie bereit zu gehen!

Python psycopg2 Modul APIs

Nun, da wir unsere Werkzeuge haben, werfen wir einen kurzen Blick darauf, was sie können. Das psycopg2-Modul stellt uns eine Reihe von Funktionen zur Verfügung, um mit PostgreSQL zu interagieren. Hier ist eine Tabelle der häufigsten:

Funktion Beschreibung
connect() Stellt eine Verbindung zur Datenbank her
cursor() Erzeugt ein Cursor-Objekt zur Ausführung von SQL-Befehlen
execute() Führt eine Datenbankoperation (Abfrage oder Befehl) aus
fetchone() Holt die nächste Zeile eines Abfrageergebnis-Sets
fetchall() Holt alle (verbleibenden) Zeilen eines Abfrageergebnis-Sets
commit() Bestätigt die aktuelle Transaktion
rollback() Setzt zurück auf den Beginn jeder ausstehenden Transaktion
close() Schließt die Datenbankverbindung

Machen Sie sich keine Sorgen, wenn das wie eine fremde Sprache aussieht. Wir werden jede davon im Detail erkunden, während wir voranschreiten!

Verbindung zur Datenbank herstellen

Lassen Sie uns mit der Herstellung einer Verbindung zu unserer Datenbank beginnen. Das ist so, als бы man an die Tür klopft und bittet, eintreten zu dürfen.

import psycopg2

try:
connection = psycopg2.connect(
database="mydb",
user="myuser",
password="mypassword",
host="localhost",
port="5432"
)
print("Verbindung erfolgreich!")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Verbinden mit PostgreSQL", error)

In diesem Code:

  1. Importieren wir das psycopg2-Modul
  2. Verwenden wir die connect()-Funktion, um eine Verbindung herzustellen
  3. Geben wir die notwendigen Details wie Datenbankname, Benutzer, Passwort usw. an
  4. Verwenden wir einen try-except-Block, um mögliche Fehler zu behandeln

Wenn alles gut geht, sollten Sie "Verbindung erfolgreich!" sehen. Gratulation, Sie haben die Tür zu Ihrer Datenbank geöffnet!

Eine Tabelle erstellen

Nun, da wir drin sind, lassen Sie uns eine Tabelle erstellen, um Daten zu speichern. Stellen Sie sich vor, Sie richten ein Bücherregal ein, um Ihre Bücher zu organisieren.

try:
cursor = connection.cursor()
create_table_query = '''CREATE TABLE books
(ID INT PRIMARY KEY     NOT NULL,
TITLE           TEXT    NOT NULL,
AUTHOR          TEXT    NOT NULL,
PUBLISHED_DATE  DATE);'''
cursor.execute(create_table_query)
connection.commit()
print("Tabelle erfolgreich erstellt!")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Erstellen der Tabelle", error)
finally:
if connection:
cursor.close()
connection.close()
print("PostgreSQL-Verbindung geschlossen")

Hier passiert Folgendes:

  1. Wir erstellen ein Cursor-Objekt, das wie unser Datenbank-Assistent ist
  2. Wir definieren unsere SQL-Abfrage, um eine Tabelle namens 'books' zu erstellen
  3. Wir verwenden execute() um die Abfrage auszuführen
  4. Wir commit() unsere Änderungen, um sie dauerhaft zu speichern
  5. Schließlich schließen wir unseren Cursor und unsere Verbindung, um gute Datenbankbürger zu sein

Einfügen (INSERT)-Operation

Es ist an der Zeit, einige Bücher auf unser Regal zu stellen! Lassen Sie uns einen Eintrag in unsere Tabelle einfügen.

try:
cursor = connection.cursor()
insert_query = """ INSERT INTO books (ID, TITLE, AUTHOR, PUBLISHED_DATE)
VALUES (%s, %s, %s, %s)"""
record_to_insert = (1, "To Kill a Mockingbird", "Harper Lee", "1960-07-11")
cursor.execute(insert_query, record_to_insert)
connection.commit()
print("Eintrag erfolgreich eingefügt")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Einfügen von Daten", error)

In diesem Code:

  1. Erstellen wir unsere Einfügebefehl mit Platzhaltern (%s) für unsere Werte
  2. Definieren wir eine Tupel mit den Werten, die wir einfügen möchten
  3. Führen wir die Abfrage aus, indem wir unsere Tupel der Werte übergeben
  4. Bestätigen wir die Änderungen

Abfrage (SELECT)-Operation

Nun, lassen Sie uns überprüfen, was wir auf unserem Regal haben!

try:
cursor = connection.cursor()
select_query = "SELECT * from books"
cursor.execute(select_query)
records = cursor.fetchall()
for row in records:
print("ID:", row[0])
print("TITEL:", row[1])
print("AUTOR:", row[2])
print("VERÖFFENTLICHT AM:", row[3], "\n")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Abrufen von Daten", error)

Hier passiert Folgendes:

  1. Wir erstellen eine Abfrage, um alle Einträge aus unserer 'books'-Tabelle abzurufen
  2. Wir führen die Abfrage aus
  3. Wir verwenden fetchall() um alle Ergebnisse zu erhalten
  4. Wir durchlaufen die Ergebnisse und drucken die Details jedes Buches

Aktualisieren (UPDATE)-Operation

Uff! Wir haben einen Fehler gemacht. Lassen Sie uns einen Eintrag aktualisieren, um ihn zu korrigieren.

try:
cursor = connection.cursor()
update_query = """Update books set AUTHOR = %s where ID = %s"""
cursor.execute(update_query, ("Nelle Harper Lee", 1))
connection.commit()
print("Eintrag erfolgreich aktualisiert")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Aktualisieren von Daten", error)

In diesem Code:

  1. Erstellen wir eine Aktualisierungsabfrage mit Platzhaltern für den neuen Autornamen und die ID
  2. Führen wir die Abfrage mit den neuen Werten aus
  3. Bestätigen wir die Änderungen

Löschen (DELETE)-Operation

Schließlich lernen wir, wie man ein Buch von unserem Regal entfernt.

try:
cursor = connection.cursor()
delete_query = """Delete from books where ID = %s"""
cursor.execute(delete_query, (1,))
connection.commit()
print("Eintrag erfolgreich gelöscht")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Löschen von Daten", error)
finally:
if connection:
cursor.close()
connection.close()
print("PostgreSQL-Verbindung geschlossen")

Hier passiert Folgendes:

  1. Wir erstellen eine Löschabfrage mit einem Platzhalter für die ID
  2. Führen wir die Abfrage mit der ID des Eintrags aus, den wir löschen möchten
  3. Bestätigen wir die Änderungen
  4. Schließlich schließen wir unseren Cursor und unsere Verbindung

Und das war's! Sie haben gerade die Grundlagen des Umgangs mit PostgreSQL unter Python gelernt. Erinnern Sie sich daran, dass Übung den Meister macht, also fürchten Sie sich nicht, verschiedene Dinge auszuprobieren. Frohes Coden und möge Ihre Datenbanken immer in perfekter Ordnung sein!

Credits: Image by storyset