SQLite: Die eingebettete Datenbank für Einsteiger | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

235 Dokumentationen verfügbar

Wissensdatenbank

SQLite Datenbank Einfuehrung

Zuletzt aktualisiert: 20.01.2026 um 10:04 Uhr

SQLite: Die eingebettete Datenbank für Einsteiger

SQLite ist die meistverbreitete Datenbank der Welt. Sie läuft ohne Server direkt in Ihrer Anwendung und speichert alles in einer einzigen Datei. Perfekt für kleine bis mittlere Projekte.

Was ist SQLite?

SQLite ist eine relationale Datenbank, die keinen separaten Server benötigt. Die gesamte Datenbank liegt in einer einzigen Datei.

Wann SQLite nutzen?

  • Lokale Anwendungen und Apps
  • Prototypen und Entwicklung
  • Kleine bis mittlere Websites
  • Embedded Systems und IoT
  • Datei-basierte Datenablage

Wann nicht?

  • Hohe Schreiblast (viele gleichzeitige Schreibzugriffe)
  • Große Datenmengen (> 1 TB)
  • Verteilte Systeme
  • Client-Server-Architektur mit vielen Nutzern

Installation

# Ubuntu/Debian
sudo apt install sqlite3

# macOS (meist vorinstalliert)
sqlite3 --version

# Windows: Download von sqlite.org

Erste Schritte

Datenbank erstellen/öffnen

# Neue Datenbank erstellen (oder vorhandene öffnen)
sqlite3 meine_datenbank.db

# SQLite-Shell
sqlite> .help        # Hilfe anzeigen
sqlite> .databases   # Datenbanken anzeigen
sqlite> .tables      # Tabellen anzeigen
sqlite> .schema      # Schema anzeigen
sqlite> .quit        # Beenden

Tabellen erstellen

-- Benutzer-Tabelle
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT NOT NULL UNIQUE,
    email TEXT NOT NULL UNIQUE,
    password_hash TEXT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- Artikel-Tabelle mit Fremdschlüssel
CREATE TABLE articles (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT,
    user_id INTEGER NOT NULL,
    published BOOLEAN DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

CRUD-Operationen

INSERT - Daten einfügen

-- Einzelner Datensatz
INSERT INTO users (username, email, password_hash)
VALUES ('max', 'max@example.com', 'hash123');

-- Mehrere Datensätze
INSERT INTO users (username, email, password_hash) VALUES
    ('anna', 'anna@example.com', 'hash456'),
    ('tom', 'tom@example.com', 'hash789');

SELECT - Daten abfragen

-- Alle Datensätze
SELECT * FROM users;

-- Bestimmte Spalten
SELECT username, email FROM users;

-- Mit Bedingung
SELECT * FROM users WHERE username = 'max';

-- Mit LIKE (Suche)
SELECT * FROM users WHERE email LIKE '%@example.com';

-- Sortiert
SELECT * FROM users ORDER BY created_at DESC;

-- Limitiert
SELECT * FROM users LIMIT 10 OFFSET 20;

-- Mit JOIN
SELECT articles.title, users.username
FROM articles
JOIN users ON articles.user_id = users.id
WHERE articles.published = 1;

UPDATE - Daten aktualisieren

UPDATE users
SET email = 'neuemail@example.com'
WHERE username = 'max';

DELETE - Daten löschen

DELETE FROM users WHERE id = 5;

SQLite-Datentypen

Typ Beschreibung
INTEGER Ganzzahl
REAL Fließkommazahl
TEXT Zeichenkette (UTF-8)
BLOB Binärdaten
NULL Kein Wert

Indizes für Performance

-- Index erstellen
CREATE INDEX idx_users_email ON users(email);

-- Zusammengesetzter Index
CREATE INDEX idx_articles_user_date ON articles(user_id, created_at);

-- Unique Index
CREATE UNIQUE INDEX idx_users_username ON users(username);

-- Index löschen
DROP INDEX idx_users_email;

SQLite mit Python

import sqlite3

# Verbindung herstellen
conn = sqlite3.connect('app.db')
cursor = conn.cursor()

# Tabelle erstellen
cursor.execute('''
    CREATE TABLE IF NOT EXISTS products (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        price REAL NOT NULL
    )
''')

# Daten einfügen
cursor.execute(
    'INSERT INTO products (name, price) VALUES (?, ?)',
    ('Laptop', 999.99)
)

# Mehrere Datensätze
products = [
    ('Maus', 29.99),
    ('Tastatur', 79.99),
    ('Monitor', 299.99)
]
cursor.executemany(
    'INSERT INTO products (name, price) VALUES (?, ?)',
    products
)

# Daten abfragen
cursor.execute('SELECT * FROM products WHERE price < ?', (100,))
for row in cursor.fetchall():
    print(row)

# Änderungen speichern und Verbindung schließen
conn.commit()
conn.close()

SQLite mit PHP

<?php
// Verbindung mit PDO
$db = new PDO('sqlite:app.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Tabelle erstellen
$db->exec('
    CREATE TABLE IF NOT EXISTS products (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        price REAL NOT NULL
    )
');

// Daten einfügen (Prepared Statement)
$stmt = $db->prepare('INSERT INTO products (name, price) VALUES (:name, :price)');
$stmt->execute([':name' => 'Laptop', ':price' => 999.99]);

// Daten abfragen
$stmt = $db->query('SELECT * FROM products');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['name'] . ': ' . $row['price'] . "\n";
}

Backup und Export

# Datenbank als SQL exportieren
sqlite3 app.db .dump > backup.sql

# SQL-Dump importieren
sqlite3 neue_db.db < backup.sql

# Datenbank kopieren
cp app.db backup_app.db
💡 Tipp: SQLite ist perfekt für Entwicklung und Tests. Für Produktion mit hoher Last wechseln Sie zu PostgreSQL oder MySQL.

Nützliche Tools

  • DB Browser for SQLite: GUI zum Verwalten
  • SQLiteStudio: Kostenloser Editor
  • VS Code SQLite Extension: IDE-Integration

Weitere Informationen

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120