Benutzer-Werkzeuge

Webseiten-Werkzeuge


datenbank:sql-einfuehrung

SQL in 15 Minuten

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.

Einstieg mit Windows

  • Laden Sie folgende Datei herunter:
  • Entpacken Sie die heruntergeladenen ZIP-Datei,,
    und führen Sie das Batch-Programm __Tiere-Datenbank_aufrufen.bat mittels Doppelklick aus:
  • Sie können nun SQL-Befehle eingeben. Da die Datenbank-Datei eine Tabelle namens 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!

Einstieg mit macOS, Linux

  • Laden Sie folgende Datei herunter:
    sql-uebungen_mit_sqlite.zip,
    entpacken Sie sie, und löschen Sie die .bat und die .exe (die brauchen Sie unter macOS nicht).
  • Öffnen Sie ein Terminal-Fenster, und wechseln Sie zum Ordner, in dem sich die .sqlite-Datei befindet.
  • Rufen Sie SQLite folgendermaßen auf: sqlite3 -header -column Tiere.sqlite

Beispiele

Arbeiten Sie alle folgenden Beispiele durch, experimentieren Sie.

  • Jede SQL-Anweisung wird mit einem Strichpunkt (Semikolon, ;) 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.
  • Sie können wie gewohnt mit der 'Pfeil hinauf'-Taste zu den letzten Befehlen zurückblättern.

Datensätze abfragen - SELECT

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:

  • Der Befehl SELECT dient dazu, bestimmte Datensätze abzufragen, zu selektieren.
  • Nach dem SELECT stehen Feldnamen. Stern * bedeutet: alle Spalten (und nicht: alle Zeilen!)
  • Da eine Datenbank üblicherweise viele Tabellen beinhalten, müssen Sie immer dazusagen, von welcher Tabelle (from …) Sie Daten selektieren möchten.

Probieren Sie statt dem Stern nach SELECT folgende Möglichkeiten:

select NAME from TIERE;
select KONTINENT from TIERE;
select KONTINENT, NAME from TIERE;

Sortieren - SELECT ... ORDER BY ...

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

Datensätze nach bestimmten Kriterien selektieren - SELECT ... WHERE ...

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.

Datensätze einfügen - INSERT

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.

Datensätze löschen - DELETE

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';

Datensätze ändern - UPDATE

update TIERE set NAME='Kroko' where NAME='Krokodil';

ändert das Feld NAME für alle Datensätze für die where-Bedingung zutrifft.

Aufgaben:

  • Ändern Sie den Namen eines Ihrer Tiere.
  • Übersiedeln Sie den Panda von Asien nach Europa.

Datensätze zählen

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)


Zusammenfassung SQL

SELECT, INSERT, DELETE, UPDATE

Jedes Statement muss mit einem Strichpunkt ; abgeschlossen werden!

select <Felder> from <Tabelle> ;
select <Felder> from <Tabelle>
where <Bedingung> order by … ;
insert into <Tabelle> (<Feld1>, <Feld2>)
values ( …, …) ;
Datensatz hinzufügen
delete from <Tabelle> where <Bedingung> ;Löschen von Datensätzen
update <Tabelle> set <Feld1>=…, <Feld2>=…
where <Bedingung> ;
Bestehende Datensätze ändern

Weiterführende Informationen

datenbank/sql-einfuehrung.txt · Zuletzt geändert: 2018-06-05 10:41 von Robert Wiedermann

Seiten-Werkzeuge

Robert Wiedermann, Institut für Statistik (STAT), Universität für Bodenkultur Wien