Aufgaben-Python/lehrpfad_4_professional_data_engineering/21_datenbanken_und_sqlite
2026-09-12 13:26:06 +02:00
..
aufgabe.py Erstelle Lehrpfad 4: Python Professional & Data Engineering (Module 17-22: Regex, Functional, Generatoren, Dataclasses, SQLite, REST-APIs) 2026-08-29 23:33:04 +02:00
index.html Branding-Update für it-praxisportal.de: Neuer Hero-Bereich, SVG-Favicon, OpenGraph-Metadaten und Plattform-Titel 2026-09-12 13:26:06 +02:00
musterloesung.py Erstelle Lehrpfad 4: Python Professional & Data Engineering (Module 17-22: Regex, Functional, Generatoren, Dataclasses, SQLite, REST-APIs) 2026-08-29 23:33:04 +02:00
README.md Erstelle Lehrpfad 4: Python Professional & Data Engineering (Module 17-22: Regex, Functional, Generatoren, Dataclasses, SQLite, REST-APIs) 2026-08-29 23:33:04 +02:00
test_aufgabe.py Erstelle Lehrpfad 4: Python Professional & Data Engineering (Module 17-22: Regex, Functional, Generatoren, Dataclasses, SQLite, REST-APIs) 2026-08-29 23:33:04 +02:00

Kapitel 21: Relationale Datenbanken & SQLite (sqlite3) 🗄️⚡

In diesem Kapitel lernst du, wie du strukturierte relationale Datenbanken mit Pythons eingebautem Modul sqlite3 erstellst, verwaltest und sicher abfragst.


🎯 Was du lernst

  1. Relationale Datenbanken vs. Einfache Textdateien: Warum relationale Datenbanken (Tabellen, Primärschlüssel, Relationen) für große Datenmengen und gleichzeitigen Zugriff unverzichtbar sind.
  2. Die Aktenschrank-Analogie:
    • Datenbankdatei: Der Aktenschrank.
    • Tabelle: Eine Schublade mit Registerkarten.
    • Spalte (Column): Ein vorgegebenes Feld auf der Registerkarte (z.B. Name, E-Mail, Guthaben).
    • Zeile (Row/Record): Eine einzelne ausgefüllte Registerkarte (ein Kunde).
  3. Verbindung & Cursor:
    import sqlite3
    
    conn = sqlite3.connect("kunden.db")  # oder ":memory:" für flüchtige RAM-Datenbank
    conn.row_factory = sqlite3.Row      # Zugriff per Spaltennamen wie im Dict!
    cursor = conn.cursor()
    
  4. CRUD-Operationen in SQL:
    • Create: CREATE TABLE IF NOT EXISTS ... und INSERT INTO ...
    • Read: SELECT ... FROM ... WHERE ...
    • Update: UPDATE ... SET ... WHERE ...
    • Delete: DELETE FROM ... WHERE ...
  5. Transaktionen & Persistenz: Warum Änderungen erst nach conn.commit() dauerhaft auf der Festplatte gespeichert werden.
  6. Sicherheit & SQL-Injection-Schutz: Niemals Strings formatieren (f"SELECT ... {user_input}"), sondern immer Platzhalter (?) verwenden!

📁 Die Dateien in diesem Ordner

  • index.html: Die interaktive Lernseite mit Aktenschrank-Analogie, SQL-Cheat-Sheet, Injection-Demo und Subgoals.
  • aufgabe.py: Dein Arbeitsblatt mit der Klasse KundenDatenbank.
  • test_aufgabe.py: Automatische Unittest-Suite (python3 test_aufgabe.py).
  • musterloesung.py: Vollständig ausprogrammierte Beispiellösung.

🚀 Schnellstart

# 1. Bearbeite aufgabe.py
# 2. Teste deine Lösung:
python3 test_aufgabe.py