sqlite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| sqlite [2016-04-12 22:50:01] – Externe Bearbeitung 127.0.0.1 | sqlite [2019-05-21 12:03:36] (aktuell) – manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== SQLite ====== | ||
| + | |||
| + | |||
| + | ===== Einrichtung ===== | ||
| + | |||
| + | Test-Datenbank mit einer Test-Tabelle anlegen | ||
| + | |||
| + | # | ||
| + | sqlite3 test.db " | ||
| + | sqlite3 test.db " | ||
| + | sqlite3 test.db " | ||
| + | |||
| + | hier ist wichtig, dass alles klein geschrieben wird und das am Ende der Zeile __kein__ Semikolon steht, wie es bei SQL üblicherweise sein soll: | ||
| + | > echo " | ||
| + | > echo " | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | |||
| + | Abfragebeispiel über zwei Tabellen: | ||
| + | |||
| + | echo " | ||
| + | SELECT | ||
| + | Spalte1, | ||
| + | strftime(' | ||
| + | Spalte3 | ||
| + | FROM | ||
| + | ${TABELLE1}, | ||
| + | ${TABELLE2} | ||
| + | WHERE | ||
| + | netz1=netz2 | ||
| + | AND id1=id2 | ||
| + | AND DATUM | ||
| + | BETWEEN date(' | ||
| + | AND date(' | ||
| + | GROUP BY 1, 2 | ||
| + | ORDER BY 1, 2 DESC, 1 | ||
| + | LIMIT 10 | ||
| + | ; | ||
| + | " | ${DBPROG} ${DBDATEI} > ${DATEN} | ||
| + | |||
| + | **Das Semikolon am Ende eines SQL-Aufrufes ist sehr wichtig!** | ||
| + | |||
| + | |||
| + | eine Pipe-separierte Datei mit höchstgeschwindigkeit einlesen | ||
| + | |||
| + | echo " | ||
| + | .import ${DATEN} ${TABELLE1} | ||
| + | .separator | | ||
| + | PRAGMA synchronous = 0; | ||
| + | " | ${DBPROG} ${DBDATEI} | ||
| + | |||
| + | |||
| + | ===== Syntax ===== | ||
| + | |||
| + | # echo " | ||
| + | table|file|file|4|CREATE TABLE file ( filename, checktxt, | ||
| + | index|(file autoindex 1)|file|3| | ||
| + | table|dirty|dirty|6|CREATE TABLE dirty ( filename, force, myname, peername, | ||
| + | index|(dirty autoindex 1)|dirty|5| | ||
| + | table|hint|hint|8|CREATE TABLE hint ( filename, recursive, | ||
| + | index|(hint autoindex 1)|hint|7| | ||
| + | table|action|action|10|CREATE TABLE action ( filename, command, logfile, | ||
| + | index|(action autoindex 1)|action|9| | ||
| + | table|x509_cert|x509_cert|12|CREATE TABLE x509_cert ( peername, certdata, | ||
| + | index|(x509_cert autoindex 1)|x509_cert|11| | ||
| + | |||
| + | alle Datenbanken anzeigen: | ||
| + | # echo " | ||
| + | seq name file | ||
| + | --- --------------- | ||
| + | 0 main / | ||
| + | 1 temp / | ||
| + | |||
| + | alle Tabellen anzeigen: | ||
| + | # echo " | ||
| + | action | ||
| + | |||
| + | Tabellen mit dem Zeichen " | ||
| + | # echo " | ||
| + | action | ||
| + | |||
| + | |||
| + | === Ausgabeformate === | ||
| + | |||
| + | spaltenweise: | ||
| + | # echo -e ".mode column\nSELECT * FROM dirty;" | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | Die normale Spaltenbreite sind 10 Zeichen, Inhalte die länger sind, werden abgeschnitten. | ||
| + | Man kann die Spaltenbreite aber auch verändern, | ||
| + | in diesem Beispiel wird die Breite der ersten Spalte auf " | ||
| + | Alle weiteren Spalten bleiben unverändert: | ||
| + | # echo -e ".mode column\n.width 30 3\nSELECT * FROM dirty;" | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | als Liste: | ||
| + | # echo -e ".mode list\nSELECT * FROM dirty;" | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | zeilenweise | ||
| + | # echo -e ".mode line\nSELECT * FROM dirty;" | ||
| + | filename = / | ||
| + | force = 1 | ||
| + | myname = store01 | ||
| + | peername = store02 | ||
| + | | ||
| + | filename = /etc/hosts | ||
| + | force = 1 | ||
| + | myname = store01 | ||
| + | peername = store02 | ||
| + | | ||
| + | filename = / | ||
| + | force = 0 | ||
| + | myname = store01 | ||
| + | peername = store02 | ||
| + | |||
| + | spezielles Trennzeichen: | ||
| + | # echo -e " | ||
| + | / | ||
| + | /etc/hosts, 1, store01, store02 | ||
| + | / | ||
| + | |||
