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
Vorhergehende Überarbeitung
Letzte Überarbeitung Beide Seiten der Revision
datenbank:sql-einfuehrung [2016-04-19 21:23]
Robert Wiedermann [Beispiele]
datenbank:sql-einfuehrung [2018-04-18 11:57]
Robert Wiedermann [Einstieg mit Mac OS X, Linux]
Zeile 9: Zeile 9:
   * Sie können nun SQL-Befehle eingeben. Da die Datenbank-Datei eine Tabelle namens ''TIERE'' enthält, ist folgendes SQL-Statement ein guter Start:\\ <file>select * from TIERE;</file>Beachten Sie, dass jedes SQL-Statement mit einem Strichpunkt '';'' abgeschlossen werden muss.\\ \\ {{:datenbank:sqlite_tiere-datenbank_aufrufen_2.png?nolink|}}   * Sie können nun SQL-Befehle eingeben. Da die Datenbank-Datei eine Tabelle namens ''TIERE'' enthält, ist folgendes SQL-Statement ein guter Start:\\ <file>select * from TIERE;</file>Beachten Sie, dass jedes SQL-Statement mit einem Strichpunkt '';'' abgeschlossen werden muss.\\ \\ {{:datenbank:sqlite_tiere-datenbank_aufrufen_2.png?nolink|}}
  
-===== Einstieg mit Mac OS X, Linux ===== +===== Einstieg mit macOS, Linux ===== 
-  * Laden Sie folgende Datei herunter:\\ <wrap download>{{:datenbank:sql-uebungen_mit_sqlite.zip|}}</wrap>,\\  entpacken Sie sie, und löschen Sie die ''.bat'' und die ''.exe'' (die brauchen Sie am Mac nicht).+  * Laden Sie folgende Datei herunter:\\ <wrap download>{{:datenbank:sql-uebungen_mit_sqlite.zip|}}</wrap>,\\  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.   * Ö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''   * Rufen Sie SQLite folgendermaßen auf: ''sqlite3 -header -column Tiere.sqlite''
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>
 +
 +----
 +
 +SQLite beenden mit:  ''.quit''  oder  ''.exit'' (die Punkt-Befehle sind SQLite-spezifisch, die gibt es so in anderen Datenbankprogrammen 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