Dataset: Datenbanken im Pandas-Stil verwalten

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

Dataset Python: Einfache Datenbankarbeit im Pandas-Stil

Was ist die Bibliothek Dataset?

Dataset ist eine Python-Bibliothek, die eine benutzerfreundliche Schnittstelle für die Arbeit mit SQL-Datenbanken bietet – ganz ohne SQL-Abfragen. Sie ermöglicht es, mit Datenbanken so einfach zu arbeiten wie mit Python-Wörterbüchern, wobei Tabellen automatisch erstellt und die Datenstruktur verwaltet wird.

Die wichtigsten Vorteile von Dataset:

  • Automatische Erstellung von Tabellen und Schemata
  • Einfache API ohne SQL-Abfragen
  • Unterstützung vieler Datenbanksysteme über SQLAlchemy
  • Intuitive und verständliche Syntax
  • Minimale Konfiguration
  • Hervorragende Kompatibilität mit Pandas

Installation und Einrichtung von Dataset

Bibliothek installieren

pip install dataset

Für bestimmte Datenbanken werden zusätzliche Treiber benötigt:

# Für PostgreSQL
pip install psycopg2-binary

# Für MySQL
pip install pymysql

# Der SQLite-Treiber ist bereits in Python enthalten

Verbindung zu verschiedenen Datenbanken herstellen

import dataset

# SQLite (lokale Datenbank)
db = dataset.connect('sqlite:///mydatabase.db')

# PostgreSQL
db = dataset.connect('postgresql://user:password@localhost:5432/dbname')

# MySQL
db = dataset.connect('mysql://user:password@localhost/dbname')

# Im Arbeitsspeicher (für Tests)
db = dataset.connect('sqlite:///:memory:')

Grundprinzipien der Arbeit mit Dataset

Dataset basiert auf folgenden Prinzipien:

  1. Automatische Tabellenerstellung – Tabellen werden beim ersten Zugriff angelegt
  2. Dynamisches Schema – die Tabellenstruktur wird beim Einfügen von Daten automatisch erzeugt
  3. Wörterbuch-Schnittstelle – Daten werden als Python-Wörterbücher dargestellt
  4. Kein SQL nötig – alle Operationen erfolgen über Python-Methoden

Tabellen erstellen und verwalten

Tabelle abrufen

# Tabelle abrufen (wird automatisch erstellt, falls nicht vorhanden)
users_table = db['users']

# Alternative Methode
users_table = db.get_table('users')

Tabelle mit Einstellungen erstellen

# Tabelle mit benutzerdefiniertem Primärschlüssel erstellen
db.create_table('products', primary_id='product_id', primary_type=db.types.string)

Daten einfügen

Einzelnen Datensatz einfügen

table = db['users']

# Einen Benutzer einfügen
table.insert({
    'name': 'Max Mustermann',
    'email': 'max@example.com',
    'age': 30,
    'city': 'Berlin'
})

Mehrere Datensätze einfügen

# Mehrere Datensätze einfügen
users_data = [
    {'name': 'Anna Schmidt', 'email': 'anna@example.com', 'age': 25},
    {'name': 'Peter Müller', 'email': 'peter@example.com', 'age': 35},
    {'name': 'Maria Fischer', 'email': 'maria@example.com', 'age': 28}
]

table.insert_many(users_data)

Upsert-Operationen

# Einfügen oder aktualisieren (falls ein Datensatz mit derselben E-Mail existiert)
table.upsert({
    'name': 'Max Mustermann',
    'email': 'max@example.com',
    'age': 31,
    'city': 'München'
}, ['email'])

Daten suchen und filtern

Alle Datensätze abrufen

# Alle Datensätze abrufen
all_users = list(table.all())
for user in all_users:
    print(f"{user['name']} - {user['email']}")

Suche mit Bedingungen

# Einen Datensatz finden
user = table.find_one(name='Max Mustermann')

# Alle Datensätze mit einer Bedingung finden
young_users = list(table.find(age={'<': 30})                    

Empfehlungen