Datenbank mit Python verbinden: SQLite & JSON Tutorial

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Grundlagen der Datenbankanbindung in Python

Die Arbeit mit Datenbanken ist ein zentraler Bestandteil moderner Softwareentwicklung. Das Speichern, Abrufen und Verwalten von Daten ermöglicht die Entwicklung leistungsfähiger Anwendungen – von einfachen Skripten bis hin zu komplexen Webdiensten.

In Python gibt es zahlreiche Möglichkeiten, mit Datenbanken zu arbeiten. In diesem Artikel zeigen wir dir Schritt für Schritt, wie du mit dem Modul sqlite3 eine Datenbank verbindest. Außerdem behandeln wir das JSON-Format zum Speichern von Daten mit json.dump und beleuchten die wichtigsten Aspekte beider Technologien.

Warum du in deinen Projekten Datenbanken nutzen solltest

Wenn deine Programme Daten verarbeiten, die auch nach dem Schließen erhalten bleiben sollen, kommst du um eine Datenbank nicht herum. Die Python-Datenbank sqlite3 bietet eine zuverlässige Lösung für die dauerhafte Speicherung von Informationen.

Vorteile von Datenbanken

Der Einsatz von Datenbanken in Python-Projekten bringt entscheidende Vorteile:

• Strukturierte und übersichtliche Datenspeicherung • Schneller Zugriff und flexible Filterung • Zentrale Datenverwaltung • Sicherstellung der Datenintegrität • Einfache Erstellung von Backups • Skalierbarkeit für wachsende Anwendungen

Mit SQLite in Python arbeiten

SQLite ist die ideale Wahl für kleinere Projekte. Die Datenbank ist direkt in die Anwendung eingebettet, benötigt keinen separaten Server und arbeitet mit .db-Dateien.

Verbindung zur SQLite-Datenbank herstellen

Das Modul sqlite3 ist fester Bestandteil der Python-Standardbibliothek – eine zusätzliche Installation ist nicht nötig.

import sqlite3

# Verbindung zur Datenbank herstellen (wenn die Datei nicht existiert, wird sie erstellt)
conn = sqlite3.connect('example.db')

# Cursor für SQL-Abfragen erstellen
cursor = conn.cursor()

Beim Verbinden mit einer nicht vorhandenen Datenbank wird die Datei automatisch angelegt. Das vereinfacht den Start neuer Projekte enorm.

Tabelle in der Datenbank anlegen

Bevor du Daten speicherst, musst du die Tabellenstruktur definieren. Verwende dazu den SQL-Befehl CREATE TABLE:

cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
conn.commit()

Die Anweisung IF NOT EXISTS verhindert Fehler beim erneuten Erstellen der Tabelle. PRIMARY KEY AUTOINCREMENT sorgt für automatisch vergebene, eindeutige IDs.

Daten in die Tabelle einfügen

Zum Einfügen von Daten verwendest du den Befehl INSERT INTO. Nutze parametrisierte Abfragen, um dich vor SQL-Injection zu schützen:

cursor.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))

# Mehrere Datensätze auf einmal einfügen
users_data = [
    ('Bob', 25),
    ('Carol', 35),
    ('David', 40)
]

cursor.executemany('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', users_data)

conn.commit()

Mit executemany kannst du effizient mehrere Datensätze in einem Durchgang hinzufügen.

Daten lesen und abrufen

Zum Abrufen von Daten stehen dir verschiedene Methoden zur Verfügung, abhängig von der Anzahl der benötigten Datensätze:

# Alle Datensätze abrufen
cursor.execute('SELECT * FROM users')
all_rows = cursor.fetchall()
for row in all_rows:
    print(row)

# Einen einzelnen Datensatz abrufen
cursor.execute('SELECT * FROM users WHERE age > ?', (30,))
one_row = cursor.fetchone()
print(one_row)

# Mehrere Datensätze abrufen
cursor.execute('SELECT name, age FROM users ORDER BY age')
some_rows = cursor.fetchmany(2)
for row in some_rows:
    print(f"Name: {row[0]}, Alter: {row[1]}")

Daten aktualisieren und löschen

Vorhandene Datensätze änderst du mit den Befehlen UPDATE und DELETE:

                

Blogs

Buchempfehlungen