Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Sqlite ====== Einfache und doch performante Datenbank (Einsatz für kleinere Webseiten, Apps, Browser): https://www.sqlite.org/ Ein Vorteil ist, dass die Datenbank keinen Server braucht und in einer einzigen Datei gespeichert ist (im Gegensatz zu den meisten anderen Datenbanken). ===== Spielwiese ===== Verbindung auf dem ofi.tech-lab.ch Server: <code bash> ssh ef cd sqlite-demo sqlite3 demo.sqlite </code> Default-Einstellungen in der Datei ''~/.sqliterc'': <code bash> cat ~/.sqliterc </code> enthält zur Zeit: <code txt> .headers on .mode column PRAGMA foreign_keys = ON; </code> Sqlite-Befehle: <code bash> .schema .quit </code> ==== Tabellen anlegen ==== https://www.sqlite.org/lang_createtable.html <code sql> CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, password TEXT NOT NULL); CREATE TABLE score (id INTEGER PRIMARY KEY AUTOINCREMENT, userid int not null, zeit TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, score int, FOREIGN KEY(userid) REFERENCES user(id)); </code> ==== Daten einfügen ==== <code sql> INSERT INTO score (score, userid) values (42, 1); </code> Wird eine nicht-existente ''userid'' angegeben, wird ein Fehler produziert und nichts eingefügt. ==== Daten abfragen ==== <code sql> SELECT * FROM score; SELECT * FROM score ORDER BY score DESC; SELECT * FROM score order by score desc limit 3; select username, score from user,score where user.id=score.userid order by score desc; select username, score from user inner join score on user.id=score.userid order by score desc; </code> Hinweis: ''select ... from user,score where ...'' ist äquivalent zu ''select ... from user inner join score on ...''. Je nach Datenbank soll es aber Unterschiede in der Ausführungsgeschwindigkeit geben. ==== Daten modifizieren ==== https://www.sqlite.org/lang_update.html <code sql> UPDATE score set score=123 where id=18; </code> ==== Daten löschen ==== https://www.sqlite.org/lang_delete.html <code sql> DELETE from score where id=18; </code> ==== Backup ==== <code bash> echo -e ".dump\n.quit" | sqlite3 demo.sqlite > demo.dump </code> ==== Restore/Copy ==== <code bash> sqlite3 copy.sqlite < demo.dump </code> ===== Weitere Infos ===== * [[lehrkraefte:blc:informatik:ffprg2-2023:sqlite|Aus dem Freifach Programmieren]] * https://kerkour.com/sqlite-for-servers lehrkraefte/blc/informatik/efi-2023/datenbanken.txt Last modified: 2024/04/01 18:55by Ivo Blöchliger