Flower

← Alle Module · Daten & Formate

sqlite

Liest und verändert SQLite-Datenbanken direkt als Datei — ganz ohne Datenbank-Server. Damit lassen sich Stammdaten, Listen oder kleine Tabellen dauerhaft speichern, durchsuchen und pflegen.

Block-Einstellungen

Gelten für den ganzen Modul-Block (im Editor oben im Inspektor, in YAML direkt unter dem Modulnamen).

FeldTypPflichtBeschreibung
dateiTextjaPfad zur .db/.sqlite-Datei. Existiert sie nicht, wird sie automatisch angelegt (außer bei nur-lesen).
nur-lesenWahrheitStandard false. Bei true werden alle schreibenden Aktionen gesperrt; die Datei muss bereits existieren.
transaktionWahrheitStandard false. Bei true werden alle Block-Aktionen in eine Transaktion geklammert: Commit am Block-Ende, Rollback bei Fehler.

Aktionen

abfragelesend

Führt ein SELECT aus und liefert alle Ergebniszeilen als Liste von Objekten zurück.

Eingaben

FeldTypPflichtBeschreibung
sqlTextjaSQL-SELECT-Anweisung. Benannte Parameter mit $name oder @name.
parameterObjektBenannte Werte für die Platzhalter im SQL (schützt vor SQL-Injection).

Ausgaben (über ergebnis:)

zeilenListe der Ergebniszeilen; jede Zeile ist ein Objekt aus Spaltenname und Wert.

skalarlesend

Führt eine Abfrage aus und liefert nur den ersten Wert der ersten Zeile (z.B. eine Summe oder Anzahl).

Eingaben

FeldTypPflichtBeschreibung
sqlTextjaSQL-Anweisung, deren erster Wert zurückgegeben wird.
parameterObjektBenannte Werte für die Platzhalter im SQL.

Ausgaben (über ergebnis:)

wertDer erste Wert der ersten Ergebniszeile, oder leer wenn kein Ergebnis.

ausführenverändernd

Führt ein veränderndes Statement (INSERT/UPDATE/DELETE) aus und meldet die Anzahl betroffener Zeilen.

Eingaben

FeldTypPflichtBeschreibung
sqlTextjaVeränderndes SQL-Statement.
parameterObjektBenannte Werte für die Platzhalter im SQL.

Ausgaben (über ergebnis:)

betroffeneAnzahl der durch das Statement geänderten Zeilen.

stapel-ausführenverändernd

Führt mehrere SQL-Anweisungen hintereinander aus (z.B. ein ganzes Schema-Skript).

Eingaben

FeldTypPflichtBeschreibung
sqlTextjaEine oder mehrere SQL-Anweisungen, durch Semikolon getrennt.

datensatz-anlegenverändernd

Fügt einen neuen Datensatz in eine Tabelle ein (ohne SQL zu schreiben) und gibt die neue Zeilen-ID zurück.

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der Zieltabelle.
felderObjektjaSpalte-zu-Wert-Zuordnung für den neuen Datensatz.

Ausgaben (über ergebnis:)

idDie rowid des neu angelegten Datensatzes.

datensatz-aktualisierenverändernd

Aktualisiert vorhandene Datensätze, die der WHERE-Bedingung entsprechen, und meldet die Anzahl.

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der Zieltabelle.
felderObjektjaSpalte-zu-Wert-Zuordnung der neuen Werte.
woTextjaWHERE-Klausel, die festlegt, welche Zeilen geändert werden. Parameter mit $name.
wo-parameterObjektBenannte Werte für die Platzhalter in der wo-Klausel.

Ausgaben (über ergebnis:)

betroffeneAnzahl der aktualisierten Zeilen.

datensatz-löschenverändernd

Löscht alle Datensätze, die der WHERE-Bedingung entsprechen, und meldet die Anzahl.

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der Zieltabelle.
woTextjaWHERE-Klausel, die festlegt, welche Zeilen gelöscht werden. Parameter mit $name.
wo-parameterObjektBenannte Werte für die Platzhalter in der wo-Klausel.

Ausgaben (über ergebnis:)

betroffeneAnzahl der gelöschten Zeilen.

zeilen-zählenlesend

Zählt die Datensätze einer Tabelle, optional gefiltert durch eine WHERE-Bedingung.

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der Tabelle.
woTextOptionale WHERE-Klausel zum Filtern. Parameter mit $name.
wo-parameterObjektBenannte Werte für die Platzhalter in der wo-Klausel.

Ausgaben (über ergebnis:)

anzahlAnzahl der gezählten Zeilen.

tabelle-erstellenverändernd

Legt eine neue Tabelle mit den angegebenen Spalten und Spaltentypen an.

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der zu erstellenden Tabelle.
spaltenObjektjaSpaltenname-zu-Typdefinition (z.B. 'INTEGER PRIMARY KEY', 'TEXT NOT NULL').
wenn-nicht-vorhandenWahrheitStandard false. Bei true wird die Tabelle nur angelegt, falls sie noch nicht existiert (IF NOT EXISTS).

tabelle-löschenverändernd

Entfernt eine Tabelle samt allen Daten aus der Datenbank (DROP TABLE).

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der zu löschenden Tabelle.

tabelle-existiertlesend

Prüft, ob eine Tabelle in der Datenbank vorhanden ist.

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der zu prüfenden Tabelle.

Ausgaben (über ergebnis:)

existiertWahr, wenn die Tabelle existiert, sonst falsch.

tabellen-listelesend

Liefert die Namen aller Benutzertabellen der Datenbank (interne sqlite_-Tabellen ausgenommen).

Ausgaben (über ergebnis:)

tabellenAlphabetisch sortierte Liste der Tabellennamen.

spalten-listelesend

Liefert die Spaltendefinitionen einer Tabelle (Name, Typ, Pflichtfeld, Standardwert, Primärschlüssel).

Eingaben

FeldTypPflichtBeschreibung
tabelleTextjaName der Tabelle, deren Spalten beschrieben werden sollen.

Ausgaben (über ergebnis:)

spaltenListe von Objekten mit name, typ, pflicht, standard und primaerschluessel.

vacuumverändernd

Räumt die Datenbankdatei auf und gibt ungenutzten Speicherplatz frei (VACUUM).

Beispiele

Kundentabelle anlegen und Datensatz einfügen

Erstellt eine Tabelle 'kunden' (falls noch nicht vorhanden) und legt einen neuen Kunden an, dessen neue ID zurückgegeben wird.

sqlite
tabelle-erstellen
tabellekunden
spalten.idINTEGER PRIMARY KEY AUTOINCREMENT
spalten.nameTEXT NOT NULL
spalten.ortTEXT
wenn-nicht-vorhandenja
sqlite
datensatz-anlegen
tabellekunden
felder.nameAnna Müller
felder.ortBerlin
ergebnisneuer_kunde
- sqlite:
    datei: "C:\\Daten\\firma.db"
    aktionen:
      - tabelle-erstellen:
          tabelle: kunden
          spalten:
            id: "INTEGER PRIMARY KEY AUTOINCREMENT"
            name: "TEXT NOT NULL"
            ort: "TEXT"
          wenn-nicht-vorhanden: ja
      - datensatz-anlegen:
          tabelle: kunden
          felder:
            name: "Anna Müller"
            ort: "Berlin"
          ergebnis: neuer_kunde

Kunden aus Berlin abfragen und zählen

Liest alle Kunden aus Berlin parametrisiert aus und ermittelt zusätzlich deren Gesamtzahl.

sqlite
abfrage
sqlSELECT name FROM kunden WHERE ort = $stadt ORDER BY name
parameter.stadtBerlin
ergebnisberliner
sqlite
zeilen-zählen
tabellekunden
woort = $stadt
wo-parameter.stadtBerlin
ergebnisanzahl_berlin
- sqlite:
    datei: "C:\\Daten\\firma.db"
    nur-lesen: ja
    aktionen:
      - abfrage:
          sql: "SELECT name FROM kunden WHERE ort = $stadt ORDER BY name"
          parameter:
            stadt: "Berlin"
          ergebnis: berliner
      - zeilen-zählen:
          tabelle: kunden
          wo: "ort = $stadt"
          wo-parameter:
            stadt: "Berlin"
          ergebnis: anzahl_berlin