466
Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Ein Wiki-Buch

Einführung in SQL - Deutsche Digitale Bibliothek · PDF fileÜbersicht IV. Erweiterungen 283 28. DDL – Einzelheiten 285 29. Fremdschlüssel-Beziehungen 305 30. SQL-Programmierung

Embed Size (px)

Citation preview

  • Einfhrung in SQLDatenbanken bearbeiten

    Jrgen Thomas

    Ein Wiki-Buch

  • Bibliografische Information

    Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillier-te Angaben sind im Internet zu erhalten:https://portal.d-nb.de/opac.htm?method=showOptions#topTitel Einfhrung in SQL, Einschrnkung auf Jahr 2011.

    Namen von Programmen und Produkten sowie weitere technische Angaben sindhufig geschtzt. Da es auch freie Bezeichnungen gibt, wird das Symbol nichtverwendet.

    Die Online-Version, die PDF-Version und die gedruckte Fassung unterscheidensich vor allem wegen unterschiedlicher Seitenformate und technischer Mglich-keiten.

    ISBN 978-3-9815260-0-4 (Juli 2012)

    Verlag: Jrgen Thomas, DE-13189 Berlin, http://www.vs-polis.de/verlag

    Diese Publikation ist entstanden bei Wikibooks, einem Projekt der WikimediaFoundation fr Lehr-, Sach- und Fachbcher unter den Lizenzen Creative Com-mons Attribution/Share-Alike (CC-BY-SA) und GFDL.

    PDF- und Druckversion sind entstanden mit dem Programm wb2pdf unter GPL.Dabei wurde das Textsatzprogramm LATEX verwendet, das unter der LPPL steht.

    Die Grafik auf dem Buchumschlag wurde unter der Lizenz CC-BY-SA-3.0 selbsterstellt und ist zu finden unter:http://de.wikibooks.org/wiki/Datei:SQL-Titelbild.png

    Einzelheiten zu den Lizenzen und Quellen stehen im Anhang auf Seite 451.

    Druck und Verarbeitung: Conrad Citydruck & Copy GmbH, Uhlandstrae 147,DE-10719 Berlin

    https://portal.d-nb.de/opac.htm?method=showOptions##tophttp://www.vs-polis.de/verlaghttp://de.wikibooks.org/wiki/Datei:SQL-Titelbild.png

  • bersicht

    1. Vorwort 1

    I. Einfhrung 32. Ein Einstieg 53. Einleitung 114. Relationale Datenbanken 175. Normalisierung 256. Beispieldatenbank 39

    II. Grundlagen 457. SQL-Befehle 478. DML (1) Daten abfragen 579. DML (2) Daten speichern 6910. DDL Struktur der Datenbank 7911. TCL Ablaufsteuerung 8912. DCL Zugriffsrechte 9513. Datentypen 9714. Funktionen 109

    III. Mehr zu Abfragen 12715. Ausfhrliche SELECT-Struktur 12916. Funktionen (2) 14117. WHERE-Klausel im Detail 15518. Mehrere Tabellen 16719. Einfache Tabellenverknpfung 17320. Arbeiten mit JOIN 18121. OUTER JOIN 19122. Mehr zu JOIN 20323. Ntzliche Erweiterungen 21324. Berechnete Spalten 23525. Gruppierungen 24126. Unterabfragen 25127. Erstellen von Views 271

    III

  • bersicht

    IV. Erweiterungen 28328. DDL Einzelheiten 28529. Fremdschlssel-Beziehungen 30530. SQL-Programmierung 32331. Eigene Funktionen 34732. Prozeduren 35733. Trigger 37734. Tipps und Tricks 38935. nderung der Datenbankstruktur 39736. Testdaten erzeugen 407

    V. Anhang 417A. Tabellenstruktur der Beispieldatenbank 419B. Downloads 423C. Befehlsreferenz 431D. Weitere Informationen 445E. Zu diesem Buch 451

    IV

  • Inhaltsverzeichnis

    1. Vorwort 1

    I. Einfhrung 3

    2. Ein Einstieg 52.1. Datenbanken enthalten Informationen . . . . . . . . . . . . . . . 52.2. Abfrage nach den Mitarbeitern . . . . . . . . . . . . . . . . . . . . . 62.3. Neuaufnahme bei den Mitarbeitern . . . . . . . . . . . . . . . . . . 72.4. SQL und natrliche Sprache . . . . . . . . . . . . . . . . . . . . . . 82.5. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3. Einleitung 113.1. Geschichte von SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2. bersicht ber Datenbankmanagementsysteme . . . . . . . . . 123.3. Schreibweisen im Buch . . . . . . . . . . . . . . . . . . . . . . . . . 143.4. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    4. Relationale Datenbanken 174.1. Grundstruktur relationaler Datenbanken . . . . . . . . . . . . . . 174.2. Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3. Spalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.4. Verknpfungen und Schlssel . . . . . . . . . . . . . . . . . . . . . 224.5. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    5. Normalisierung 255.1. Grundgedanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.2. Die 1. Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.3. Die 2. Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.4. Die 3. Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.5. Zustzliche Manahmen . . . . . . . . . . . . . . . . . . . . . . . . 345.6. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.7. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    6. Beispieldatenbank 396.1. Sachverhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    V

  • Inhaltsverzeichnis

    6.2. Schematische Darstellung . . . . . . . . . . . . . . . . . . . . . . . . 416.3. Tabellenstruktur und Datenbank . . . . . . . . . . . . . . . . . . . 426.4. Anmerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    II. Grundlagen 45

    7. SQL-Befehle 477.1. Allgemeine Hinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . 487.2. DML Data Manipulation Language . . . . . . . . . . . . . . . . . 497.3. DDL Data Definition Language . . . . . . . . . . . . . . . . . . . 517.4. TCL Transaction Control Language . . . . . . . . . . . . . . . . . 527.5. DCL Data Control Language . . . . . . . . . . . . . . . . . . . . . 527.6. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527.7. bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.8. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    8. DML (1) Daten abfragen 578.1. SELECT Allgemeine Hinweise . . . . . . . . . . . . . . . . . . . . 578.2. Die einfachsten Abfragen . . . . . . . . . . . . . . . . . . . . . . . . 588.3. DISTINCT Keine doppelten Zeilen . . . . . . . . . . . . . . . . . 598.4. WHERE Eingrenzen der Ergebnismenge . . . . . . . . . . . . . . 608.5. ORDER BY Sortieren . . . . . . . . . . . . . . . . . . . . . . . . . . 618.6. FROM Mehrere Tabellen verknpfen . . . . . . . . . . . . . . . . 628.7. Ausblick auf komplexe Abfragen . . . . . . . . . . . . . . . . . . . . 648.8. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.9. bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    9. DML (2) Daten speichern 699.1. INSERT Daten einfgen . . . . . . . . . . . . . . . . . . . . . . . . 699.2. UPDATE Daten ndern . . . . . . . . . . . . . . . . . . . . . . . . 729.3. DELETE Daten lschen . . . . . . . . . . . . . . . . . . . . . . . . 749.4. TRUNCATE Tabelle leeren . . . . . . . . . . . . . . . . . . . . . . . 759.5. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759.6. bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    10. DDL Struktur der Datenbank 7910.1. Allgemeine Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7910.2. Hauptteile der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . 8010.3. Ergnzungen zu Tabellen . . . . . . . . . . . . . . . . . . . . . . . . 8310.4. Programmieren mit SQL . . . . . . . . . . . . . . . . . . . . . . . . . 8510.5. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8510.6. bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8610.7. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

    VI

  • Inhaltsverzeichnis

    11. TCL Ablaufsteuerung 8911.1. Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8911.2. Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9011.3. Misserfolg regeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9111.4. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9211.5. bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    12. DCL Zugriffsrechte 95

    13. Datentypen 9713.1. Vordefinierte Datentypen . . . . . . . . . . . . . . . . . . . . . . . . 9713.2. Konstruierte und benutzerdefinierte Datentypen . . . . . . . . . 10113.3. Spezialisierte Datentypen . . . . . . . . . . . . . . . . . . . . . . . . 10213.4. Nationale und internationale Zeichenstze . . . . . . . . . . . . . 10313.5. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10513.6. bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10513.7. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

    14. Funktionen 10914.1. Allgemeine Hinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . 11014.2. Funktionen fr Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 11014.3. Funktionen fr Zeichenketten . . . . . . . . . . . . . . . . . . . . . 11314.4. Funktionen fr Datums- und Zeitwerte . . . . . . . . . . . . . . . 11514.5. Funktionen fr logische und NULL-Werte . . . . . . . . . . . . . . 11614.6. Konvertierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11714.7. Spaltenfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12014.8. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12314.9. bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12314.10. Siehe auch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

    III. Mehr zu Abfragen 127

    15. Ausfhrliche SELECT-Struktur 12915.1. Allgemeine Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12915.2. Set Quantifier Mengenquantifizierer . . . . . . . . . . . . . . . . 13015.3. Select List Auswahlliste . . . . . . . . . . . . . . . . . . . . . . . . 13015.4. Table Reference