Benutzer-Werkzeuge

Webseiten-Werkzeuge


datenbank:sql-einfuehrung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
datenbank:sql-einfuehrung [2016-04-19 21:23]
Robert Wiedermann [Beispiele]
datenbank:sql-einfuehrung [2016-04-19 22:24]
Robert Wiedermann [Zusammenfassung]
Zeile 16: Zeile 16:
 ---- ----
 ===== Beispiele ===== ===== Beispiele =====
-  * In folgender Datei finden Sie die Übungsaufgaben dazu:\\ http://statedv.boku.ac.at/roberts_it-kurs-unterlagen/Skriptum/EinfDV_Uebungsskriptum_DB-SQL.pdf 
- 
   * Arbeiten Sie alle folgenden Beispiele durch, experimentieren Sie.   * Arbeiten Sie alle folgenden Beispiele durch, experimentieren Sie.
-  * Vergessen Sie nicht, jeden SQL-Befehl mit einem Strich¬punkt abzuschließen! Solange kein Strichpunkt kommtwartet SQL auf weitere Eingaben!+  * Jede SQL-Anweisung wird mit einem Strichpunkt (Semikolon) abgeschlossen. Das vergisst man leichtist 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.   * Sie können wie gewohnt mit der 'Pfeil hinauf'-Taste zu den letzten Befehlen zurückblättern.
-  * Beenden mit:   ''.quit''  oder  ''.exit''  
  
 +==== 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":
 +
 +|<code>select * from TIERE;</code>|<code>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
 +</code>|
 +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:
 +<code>
 +select NAME from TIERE;
 +select KONTINENT from TIERE;
 +select KONTINENT, NAME from TIERE;
 +</code>
 +
 +=== Sortieren - SELECT ... ORDER BY ... ===
 +
 +Sie können die Ausgabe auch durch den Zusatz von ''order by'' sortieren lassen:
 +
 +|<code>select * from TIERE order by NAME;</code>|<code>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</code>|
 +|<code>select KONTINENT, NAME from TIERE 
 +             order by KONTINENT;</code>|<code>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</code>|
 +
 +=== 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' ".
 +
 +|<code>select * from TIERE where KONTINENT='Afrika';</code>|<code>NAME        KONTINENT
 +----------  ----------
 +Giraffe     Afrika
 +Nashorn     Afrika
 +Elefant     Afrika
 +Loewe       Afrika</code>|
 +
 +Die Zusätze ''where'' und ''order by'' lassen sich auch kombinieren.
 +
 +<WRAP todo >
 +**Aufgabe:**\\
 +Selektieren Sie alle Tiere, die in Europa vorkommen, und lassen Sie das Ergebnis sortiert ausgeben.
 +<code>NAME        KONTINENT
 +----------  ----------
 +Baer        Europa
 +Murmeltier  Europa
 +Wildschwei  Europa
 +Wolf        Europa</code>
 +</WRAP>
 +
 +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:
 +
 +<code>select * from TIERE where KONTINENT like 'A%';</code>
 +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.
 +
 +|<code>insert into TIERE ( NAME, KONTINENT )
 +      values ( 'Krokodil', 'Afrika' );
 +
 +select * from TIERE;</code>|<code>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</code>|
 +
 +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.
 +
 +<WRAP todo >
 +**Aufgabe:**\\
 +Fügen Sie drei Tiere hinzu.
 +</WRAP>
 +
 +==== Datensätze löschen - DELETE ====
 +
 +Folgendes Statement würde den Datensatz Wolf löschen:
 +<code>delete from TIERE where NAME='Wolf';</code>
 +
 +Seien Sie vorsichtig, folgendes Statement würde nicht nur einen, sondern alle Bären löschen:
 +<code>delete from TIERE where NAME='Baer';</code>
 +
 +==== Datensätze ändern - UPDATE ====
 +
 +<code>update TIERE set NAME='Kroko' where NAME='Krokodil';</code> ändert das Feld ''NAME'' für alle Datensätze für die ''where''-Bedingung zutrifft.
 +
 +<WRAP todo >
 +**Aufgaben:**\\
 +  - Ändern Sie den Namen eines Ihrer Tiere.
 +  - Übersiedeln Sie den Panda von Asien nach Europa.
 +</WRAP>
 +==== Datensätze zählen ====
 +
 +Wie viele Datensätze sind in der gesamten Tabelle?\\ 
 +Wie viele Tiere in Afrika?\\ 
 +Probieren Sie bitte:
 +
 +<code>
 +select count(*) from TIERE;
 +select count(*) from TIERE where kontinent='Afrika';
 +</code>
 +
 +----
 +
 +Beenden mit:  ''.quit''  oder  ''.exit'' (die Punkt-Befehle sind SQLite-spezifisch, gibt es in anderen Datenbanken nicht)
 +
 +----
  
 ===== Zusammenfassung ===== ===== Zusammenfassung =====
  
 <WRAP box> <WRAP box>
-SELECT, INSERT, UPDATE, DELETE+SELECT, INSERT, DELETE, UPDATE
  
 Jedes Statement muss mit einem Strichpunkt '';'' abgeschlossen werden! Jedes Statement muss mit einem Strichpunkt '';'' abgeschlossen werden!
datenbank/sql-einfuehrung.txt · Zuletzt geändert: 2018-06-05 10:41 von Robert Wiedermann

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