[[Vorlage(Getestet, bionic, focal, jammy)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./sqlite_logo.gif, 110, left)]] [http://www.sqlite.org/ SQLite] {en} ist eine kleine und sehr leichtgewichtige Implementierung einer [wikipedia:SQL:]-Datenbank. SQLite ist in [:Programmiersprache:C] geschrieben, es sind aber auch Schnittstellen zu so gut wie allen anderen gängigen (und weniger bekannten) [:Programmiersprache:Programmiersprachen] verfügbar. SQLite ist freie Software und wird von großen Open-Source Projekten wie [:Amarok:], [:Pidgin:] und [:Firefox:] (ab Version 3), aber auch von kleineren Programmen genutzt. Darüber hinaus gibt es eine Reihe von Closed-Source-Projekten, die SQLite einsetzen (wie z.B. Apples iPhone). Zu beachten ist, dass SQLite keine vollständige Implementierung des SQL-Standards enthält, aber für die meisten Anwendungsfälle reicht der vorhandene [#Funktionsumfang Funktionsumfang] völlig aus. Große bis sehr große Datenmengen (z.B. Datenbank mit vielen Tabellen und mehreren Tausend oder Hunderttausend Einträgen) können von SQLite verwaltet werden, das Programm wird dann jedoch ziemlich langsam, insbesondere, wenn quasi-parallele Schreibvorgänge benötigt werden. Für diese Anwendungsfälle eignen sich dann die "großen" Datenbanken wie [:PostgreSQL:], [:MariaDB:] oder [:MySQL:] besser. = Installation = Die aktuelle Version von SQLite kann über die Paketverwaltung installiert[1] werden: {{{#!vorlage Paketinstallation sqlite3 }}} Optional kann man noch die Dokumentation (in englischer Sprache) installieren, und zwar über folgendes Paket: {{{#!vorlage Paketinstallation sqlite3-doc }}} = Benutzung = SQLite bringt von Haus aus "nur" ein Kommandozeilenschnittstelle[2] mit. Um SQLite zu nutzen, gilt folgende allgemeine Syntax: {{{#!vorlage Befehl sqlite3 [OPTIONEN] DATENBANK [SQL-BEFEHL] }}} Die Angabe von Optionen und von SQL-Befehlen ist dabei optional. Existiert die Datenbank `DATENBANK` nicht, so wird diese automatisch angelegt und geöffnet. Gibt man keinen SQL-Befehl an, so befindet man sich automatisch im interaktiven Modus[3]. Eine Übersicht über allgemeine Befehle erhält man mit ``.help``, den interaktiven Modus verlässt man mit ``.exit``. Natürlich kann man im interaktiven Modus auch die unterstützen SQL-Befehle eingeben und ausführen. Zu beachten ist dabei, dass [wikipedia:Transaktion_(Informatik):Transaktionen] explizit eingeleitet und ausgeführt werden müssen. Eine Übersicht über die mögliche Startoptionen findet man in den [:man:Manpages] zu SQLite. Man kann die Optionen auch in der Datei '''~/.sqliterc''' hinterlegen, die SQLite beim Start auswertet. Die Datei wird bei der Installation von SQLite nicht automatisch angelegt, muss also gegebenenfalls von Hand angelegt werden[3]. Mehr Informationen hierzu findet man in ebenfalls in den Manpages. = Beispiele = Auslesen einer .sqlite-Datei auf einem [:Ubuntu_Touch:Ubuntu Phone], welche unter anderem SMS enthält: {{{#!vorlage Befehl sqlite3 /home/phablet/.local/share/history-service/history.sqlite SQLite version 3.8.7.4 2014-12-09 01:34:36 Enter ".help" for usage hints. sqlite> .tables schema_version text_events threads text_event_attachments thread_participants voice_events sqlite> select * from text_events; ofono/ofono/account0|Netzanbieter|2015-09-21T17:46:12+0200-1|Irgendwer|2015-09-21T15:46:23.000|0|Hier steht eine SMS drin!|0|0|2015-09-21T16:19:13.520| [...] sqlite> .quit }}} Zunächst ruft man die entsprechende Datenbank auf. Mit `.tables` kann man darin enthaltene Tabellen auflisten. Um beispielsweise die Tabelle `text_events` anzuzeigen, ruft man sie wie im Beispiel mit `select` auf. Zurückblättern in Befehlen: Bereits benutzte Befehle lassen sich mit [[Vorlage (Tasten, hoch)]] wieder anzeigen und mit [[Vorlage (Tasten, Enter)]] erneut ausführen. = Funktionsumfang = Wie oben bereits erwähnt, unterstützt SQLite nicht alle Elemente von SQL, eine Übersicht über die in SQLite enthaltenen Funktionen findet man in der [http://www.sqlite.org/lang.html Dokumentation] {en} . Weitere Informationen findet man auch im Wiki von SQLite (siehe [#Links Links]). = Dokumentation = Hat man die Dokumentation zu SQLite [#Installation installiert], so hat man eine recht ausführliche, englischsprachige HTML-Dokumentation bereits auf der Festplatte. Den Einstieg bietet die Seite (Datei) '''/usr/share/doc/sqlite3-doc/index.html'''. Unter [#Links Links] findet man einige weitere Verweise auf weitere SQLite-Dokumentationen. = Grafische Benutzeroberflächen = In den offiziellen Paketquellen findet sich der [:SQLite Database Browser:], der eine grafische Oberfläche zum Anlegen und Editieren von SQLite-Datenbanken bietet. Darüber hinaus können CSV-Dateien im- oder exportiert werden. Eine plattformübergreifende GUI, die ohne Installation verwendet werden kann, ist [http://sqlitestudio.pl SQLiteStudio] {en}. Daneben existieren noch die webbasierte Oberfläche [https://www.phpliteadmin.org phpLiteAdmin] {en}, die, wie der Name vermuten lässt, an [:MySQL/Werkzeuge/#phpMyAdmin:phpMyAdmin] angelehnt ist. = Links = * [http://www.sqlite.org/docs.html] {en} - sehr umfangreiche Dokumentation #tag: Programmierung, Datenbank