Dies ist eine alte Version des Dokuments!
SQL ist eine Datenbanksprache zur Definition von Datenstrukturen in relationalen Datenbanken sowie zum Bearbeiten (Einfügen, Verändern, Löschen) und Abfragen von Datensätzen.
Falls Sie irgendwann einmal Web-Applikationen entwickeln möchten, die Daten aus einer Datenbank auslesen oder in eine Datenbank schreiben, werden Sie SQL-Grundkenntnisse benötigen. Folgende Seite bietet Ihnen einen ersten kurzen Einblick.
__Tiere-Datenbank_aufrufen.bat
mittels Doppelklick aus:TIERE
enthält, ist folgendes SQL-Statement ein guter Start:select * from TIERE;
Beachten Sie, dass jedes SQL-Statement mit einem Strichpunkt ;
abgeschlossen werden muss!
.bat
und die .exe
(die brauchen Sie unter macOS nicht)..sqlite
-Datei befindet.sqlite3 -header -column Tiere.sqlite
Arbeiten Sie alle folgenden Beispiele durch, experimentieren Sie.
;
) abgeschlossen. Das vergisst man leicht, ist aber kein Problem: Da sich ein SQL-Statement über mehrere Zeilen erstrecken kann, tragen Sie den fehlenden Strichpunkt einfach nach.
Es gibt eine Tabelle namens TIERE
. Sie möchten alle Spalten (Felder) und alle Zeilen (Datensätze) dieser Tabelle anzeigen lassen. Die SQL-Syntax dazu lautet ungefähr: "Selektiere alle Spalten von der Tabelle TIERE":
select * from TIERE; | NAME KONTINENT ---------- ---------- Giraffe Afrika Nashorn Afrika Tiger Asien Wildschwei Europa Panda Asien Bison Amerika Elefant Afrika Koala Australien Wolf Europa Murmeltier Europa Loewe Afrika Baer Europa Baer Amerika |
Nochmals etwas im Detail:
Probieren Sie statt dem Stern nach SELECT folgende Möglichkeiten:
select NAME from TIERE; select KONTINENT from TIERE; select KONTINENT, NAME from TIERE;
Sie können die Ausgabe auch durch den Zusatz von order by
sortieren lassen:
select * from TIERE order by NAME; | NAME KONTINENT ---------- ---------- Baer Europa Baer Amerika Bison Amerika Elefant Afrika Giraffe Afrika Koala Australien Loewe Afrika Murmeltier Europa Nashorn Afrika Panda Asien Tiger Asien Wildschwei Europa Wolf Europa |
select KONTINENT, NAME from TIERE order by KONTINENT; | KONTINENT NAME ---------- ---------- Afrika Giraffe Afrika Nashorn Afrika Elefant Afrika Loewe Amerika Bison Amerika Baer Asien Tiger Asien Panda Australien Koala Europa Wildschwei Europa Wolf Europa Murmeltier Europa Baer |
Sie möchten zum Beispiel nur afrikanische Tiere anzeigen lassen. Das funktioniert mit dem Zusatz where <Bedingung>
. Man könnte das auch in etwa so formulieren: "Selektiere alle Spalten der Tabelle TIERE für die gilt: der Inhalt der Feldes KONTINENT ist gleich 'Afrika' ".
select * from TIERE where KONTINENT='Afrika'; | NAME KONTINENT ---------- ---------- Giraffe Afrika Nashorn Afrika Elefant Afrika Loewe Afrika |
Die Zusätze where
und order by
lassen sich auch kombinieren.
Aufgabe:
Selektieren Sie alle Tiere, die in Europa vorkommen, und lassen Sie das Ergebnis sortiert ausgeben.
NAME KONTINENT ---------- ---------- Baer Europa Murmeltier Europa Wildschwei Europa Wolf Europa
Das Prozentzeichen %
steht für beliebige Zeichen (wie * in in der Kommandozeile), … where … like 'A%'
selektiert alle, die mit A
beginnen. Probieren Sie es aus:
select * from TIERE where KONTINENT like 'A%';
sollte alle Tiere aus Afrika und Asien auflisten.
Neue Datensätze können mit INSERT
eingefügt werden. Die Syntax ist etwas umständlich: "Füge ein in Tabelle TIERE für die Felder NAME, KONTINENT und zwar die Werte 'Krokodil' und 'Afrika'.
Das INSERT-Statement verrichtet seine Arbeit kommentarlos (solange keine Fehler auftreten). Sie brauchen daher wieder ein select * from tiere;
, um sich den neu eingefügten Datensatz anzeigen zu lassen.
insert into TIERE ( NAME, KONTINENT ) values ( 'Krokodil', 'Afrika' ); select * from TIERE; | NAME KONTINENT ---------- ---------- Giraffe Afrika Nashorn Afrika Tiger Asien Wildschwei Europa Panda Asien Bison Amerika Elefant Afrika Koala Australien Wolf Europa Murmeltier Europa Loewe Afrika Baer Europa Baer Amerika Krokodil Afrika |
Für jeden Datensatz, der eingefügt werden soll, brauchen Sie ein eigenes INSERT-Statement, Sie können nicht mehrere Datensätze mit einem einzigen INSERT einfügen.
Aufgabe:
Fügen Sie drei Tiere hinzu.
Folgendes Statement würde den Datensatz Wolf löschen:
delete from TIERE where NAME='Wolf';
Seien Sie vorsichtig, folgendes Statement würde nicht nur einen, sondern alle Bären löschen:
delete from TIERE where NAME='Baer';
update TIERE set NAME='Kroko' where NAME='Krokodil';
ändert das Feld NAME
für alle Datensätze für die where
-Bedingung zutrifft.
Aufgaben:
Wie viele Datensätze sind in der gesamten Tabelle?
Wie viele Tiere in Afrika?
Probieren Sie bitte:
select count(*) from TIERE; select count(*) from TIERE where kontinent='Afrika';
SQLite beenden mit: .quit
oder .exit
(die Punkt-Befehle sind SQLite-spezifisch, die gibt es so in anderen Datenbankprogrammen nicht)
SELECT, INSERT, DELETE, UPDATE
Jedes Statement muss mit einem Strichpunkt ;
abgeschlossen werden!
select <Felder> from <Tabelle> ; | |
select <Felder> from <Tabelle> | |
insert into <Tabelle> (<Feld1>, <Feld2>) | Datensatz hinzufügen |
delete from <Tabelle> where <Bedingung> ; | Löschen von Datensätzen |
update <Tabelle> set <Feld1>=…, <Feld2>=… | Bestehende Datensätze ändern |