Arbeiten mit Datenbanken in Python
Die Arbeit mit Datenbanken ist ein wesentlicher Bestandteil der Softwareentwicklung. SQLite ist eine der einfachsten und leistungsstärksten Methoden, um Daten in lokalen Projekten zu speichern. Diese leichte Datenbank ist in Python integriert und benötigt keinen separaten Server.
Grundlagen von SQLite
Definition und Funktionsweise
SQLite ist eine eingebettete relationale Datenbank. Sie erfordert weder eine Installation noch das Starten eines separaten Servers. Alle Daten werden in einer einzigen Datei gespeichert. Das macht SQLite zur idealen Wahl für Prototyping, Desktop- und mobile Anwendungen.
Wichtigste Vorteile
SQLite bietet eine Reihe wichtiger Vorteile:
• In Python über das Modul sqlite3 integriert • Keine zusätzliche Konfiguration nötig • Hohe Leistung für kleine und mittlere Projekte • Einfach zu bedienen • Unterstützt standardmäßige SQL-Abfragen • Geringe Größe und minimale Systemanforderungen
Einsatzbereiche von SQLite in Python
Häufige Anwendungsfälle
SQLite wird in folgenden Szenarien häufig eingesetzt:
• Lern- und Übungsprojekte • Lokale Anwendungen und Skripte • Kleine Webanwendungen, z. B. mit Flask • Systeme zur Speicherung von Konfigurationen • Offline-Programme mit lokaler Datenspeicherung • Prototyping von Anwendungen • Daten-Caching
Vorteile für Entwickler
Python-Entwickler profitieren in vielerlei Hinsicht von SQLite. Die Datenbank benötigt keine zusätzlichen Abhängigkeiten. Sie ermöglicht einen schnellen Einstieg in die Arbeit mit relationalen Daten. SQLite unterstützt Transaktionen und gewährleistet Datensicherheit.
Erste Schritte mit SQLite
Import und Verbindung
SQLite ist in der Standardbibliothek von Python enthalten. Für die Arbeit genügt es, das entsprechende Modul zu importieren:
import sqlite3
Herstellen einer Datenbankverbindung
Verbindung zu einer Datenbankdatei
conn = sqlite3.connect('example.db')
Wenn die Datenbankdatei nicht existiert, wird sie automatisch erstellt.
Arbeiten mit einer In-Memory-Datenbank
conn = sqlite3.connect(':memory:')
Eine solche Datenbank existiert nur im Arbeitsspeicher. Sie wird gelöscht, sobald das Programm beendet wird.
Erstellen der Datenbankstruktur
Tabellen anlegen
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
)
''')
conn.commit()
Datentypen verstehen
SQLite unterstützt die folgenden grundlegenden Datentypen:
• INTEGER - Ganze Zahlen • TEXT - Textzeichenfolgen • REAL - Gleitkommazahlen • BLOB - Binärdaten • NULL - Leere Werte
Datenoperationen
Daten einfügen
Einzelnen Datensatz hinzufügen
cursor.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)",
("Alice", 25, "alice@example.com"))
conn.commit()
Mehrere Datensätze einfügen
users = [
("Bob", 30, "bob@example.com"),
("Charlie", 22, "charlie@example.com"),
("Diana", 28, "diana@example.com")
]
cursor.executemany("INSERT INTO users (name, age, email) VALUES (?, ?, ?)", users)
conn.commit()
Daten aus der Datenbank lesen
Alle Datensätze abrufen
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)