O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Einführung in SQL, 2nd Edition

Book Description

SQL kann Spaß machen! Es ist ein erhebendes Gefühl, eine verworrene Datenmanipulation oder einen komplizierten Report mit einer einzigen Anweisung zu bewältigen und dabei einen Haufen Arbeit vom Tisch zu bekommen, den man sonst mühsam mit einem Anwendungsprogramm bewältigen müsste.

Einführung in SQL bringt Sie in null Komma nichts auf Touren. Mit diesem leicht verständlichen Tutorial können Sie SQL systematisch und durchaus auch gründlich lernen, ohne sich zu langweilen. Zu jedem Thema enthält das Buch Übungen mit Lösungen, die eine praktische Lernerfahrung bieten und sicherstellen, dass Sie das gerade Gelernte auch wirklich in der Praxis umsetzen können.

Die 2. Auflage deckt MySQL 6.0, Oracle 11g und Microsoft SQL Server 2008 ab und enthält neue Kapitel zu Views und Metadaten. Sie bietet einen frischen Blick auf die Sprache, deren Grundlagen jeder Entwickler beherrschen muss.

Table of Contents

  1. Einführung in SQL
  2. Einleitung
    1. Wozu SQL lernen?
    2. Warum SQL mit diesem Buch lernen?
    3. Aufbau dieses Buchs
    4. Verwendete Konventionen
    5. Die Codebeispiele zu diesem Buch
    6. Verwendung der Codebeispiele
    7. Danksagungen
  3. 1. Der Hintergrund
    1. Einführung in Datenbanken
      1. Nicht-relationale Datenbanksysteme
      2. Das relationale Modell
      3. Ein wenig Fachjargon
    2. Was ist SQL?
      1. SQL-Anweisungen
      2. SQL: Eine nicht-prozedurale Sprache
      3. SQL-Beispiele
    3. Was ist MySQL?
    4. Weiteres Vorgehen
  4. 2. Datenbanken erstellen und mit Daten füllen
    1. Eine MySQL-Datenbank anlegen
    2. Das mysql-Kommandozeilentool
    3. MySQL-Datentypen
      1. Zeichendaten
        1. Zeichensätze
        2. Textdaten
      2. Numerische Daten
      3. Temporale Daten
    4. Tabellen anlegen
      1. Schritt 1: Entwurf
      2. Schritt 2: Verfeinerung
      3. Schritt 3: Die SQL Schema-Anweisungen
    5. Tabellen füllen und ändern
      1. Daten einfügen
        1. Numerische Schlüsseldaten generieren
        2. Die insert-Anweisung
      2. Daten ändern
      3. Daten löschen
    6. Wenn aus guten Anweisungen schlechte werden
      1. Nicht eindeutiger Primärschlüssel
      2. Nicht existenter Fremdschlüssel
      3. Verstöße gegen Spaltenwerte
      4. Ungültige Datumskonvertierung
    7. Das Bank-Schema
  5. 3. Datenbankabfragen
    1. Die Mechanik von Abfragen
    2. Abfrageklauseln
    3. Die Select-Klausel
      1. Spalten-Aliase
      2. Duplikate entfernen
    4. Die From-Klausel
      1. Tabellen
        1. Von Unterabfragen generierte Tabellen
        2. Views
      2. Tabellenverknüpfungen
      3. Tabellen-Aliase definieren
    5. Die where-Klausel
    6. Die Klauseln group by und having
    7. Die order by-Klausel
      1. Auf- und absteigende Sortierung
      2. Sortieren mit Ausdrücken
      3. Sortieren nach numerischen Platzhaltern
    8. Testen Sie Ihr Wissen
      1. Übung 3-1
      2. Übung 3-2
      3. Übung 3-3
      4. Übung 3-4
  6. 4. Filtern
    1. Bedingungsauswertung
      1. Verwendung von Klammern
      2. Verwendung des Operators not
    2. Aufbau einer Bedingung
    3. Bedingungstypen
      1. Gleichheitsbedingungen
        1. Ungleichheitsbedingungen
        2. Daten mit Gleichheitsbedingungen modifizieren
      2. Wertebereichsbedingungen
        1. Der between-Operator
        2. String-Bereiche
      3. Mitgliedschaftsbedingungen
        1. Unterabfragen
        2. Verwendung von not in
      4. Bedingungen abgleichen
        1. Verwendung von Wildcards
        2. Verwendung von regulären Ausdrücken
    4. NULL: Ein böses Wort
    5. Testen Sie Ihr Wissen
      1. Übung 4-1
      2. Übung 4-2
      3. Übung 4-3
      4. Übung 4-4
  7. 5. Mehrere Tabellen abfragen
    1. Was ist ein Join?
      1. Kartesisches Produkt
      2. Inner Joins
      3. Die Join-Syntax von ANSI
    2. Joins mit drei oder mehr Tabellen
      1. Unterabfragen als Tabellen
      2. Zweimal dieselbe Tabelle verwenden
    3. Self-Joins
    4. Equi-Joins und Non-Equi-Joins
    5. Join-Bedingungen und Filterbedingungen
    6. Testen Sie Ihr Wissen
      1. Übung 5-1
      2. Übung 5-2
      3. Übung 5-3
  8. 6. Umgang mit Mengen
    1. Grundlagen der Mengenlehre
    2. Mengenlehre in der Praxis
    3. Mengenoperatoren
      1. Der union-Operator
      2. Der intersect-Operator
      3. Der except-Operator
    4. Regeln für Mengenoperationen
      1. Ergebnisse zusammengesetzter Abfragen sortieren
      2. Präzedenz von Mengenoperationen
    5. Testen Sie Ihr Wissen
      1. Übung 6-1
      2. Übung 6-2
      3. Übung 6-3
  9. 7. Daten generieren, konvertieren und manipulieren
    1. Der Umgang mit String-Daten
      1. String-Daten generieren
        1. Einfache Anführungszeichen
        2. Sonderzeichen einbinden
      2. String-Bearbeitung
        1. String-Funktionen, die Zahlen zurückgeben
        2. String-Funktionen, die Strings zurückgeben
    2. Der Umgang mit numerischen Daten
      1. Arithmetische Funktionen
      2. Die Genauigkeit von Zahlen steuern
      3. Vorzeichenbehaftete Daten
    3. Der Umgang mit temporalen Daten
      1. Zeitzonen
      2. Temporale Daten generieren
        1. String-Darstellungen von temporalen Daten
        2. Strings in Datumswerte konvertieren
        3. Funktionen zur Datumserzeugung
      3. Temporale Daten bearbeiten
        1. Temporale Funktionen, die Datumswerte zurückgeben
        2. Temporale Funktionen, die Strings zurückgeben
        3. Temporale Funktionen, die Zahlen zurückgeben
    4. Konvertierungsfunktionen
    5. Testen Sie Ihr Wissen
      1. Übung 7-1
      2. Übung 7-2
      3. Übung 7-3
  10. 8. Gruppieren und Aggregieren von Daten
    1. Gruppieren von Daten
    2. Aggregatfunktionen
      1. Implizite und explizite Gruppen
      2. Unterschiedliche Werte zählen
      3. Ausdrücke
      4. Umgang mit Null-Werten
    3. Gruppen generieren
      1. Gruppieren auf einer einzelnen Spalte
      2. Gruppieren auf mehreren Spalten
      3. Gruppieren mit Ausdrücken
      4. Rollups generieren
    4. Gruppen-Filterbedingungen
    5. Testen Sie Ihr Wissen
      1. Übung 8-1
      2. Übung 8-2
      3. Übung 8-3
      4. Übung 8-4 (für Tüftler)
  11. 9. Unterabfragen
    1. Was ist eine Unterabfrage?
    2. Typen von Unterabfragen
    3. Nicht-korrelierte Unterabfragen
      1. Unterabfragen, die eine Spalte und mehrere Zeilen liefern
        1. Die Operatoren in und not in
        2. Der all-Operator
        3. Der any-Operator
      2. Unterabfragen, die mehrere Spalten liefern
    4. Korrelierte Unterabfragen
      1. Der exists-Operator
      2. Datenmanipulation mit korrelierten Unterabfragen
    5. Einsatz von Unterabfragen
      1. Unterabfragen als Datenquellen
        1. Daten erzeugen
        2. Task-orientierte Unterabfragen
      2. Unterabfragen in Filterbedingungen
      3. Unterabfragen zum Generieren von Ausdrücken
    6. Zusammenfassung zu Unterabfragen
    7. Testen Sie Ihr Wissen
      1. Übung 9-1
      2. Übung 9-2
      3. Übung 9-3
      4. Übung 9-4
  12. 10. Weitere Joins
    1. Outer Joins
      1. Left und Right Outer Joins
      2. Outer Joins mit drei Tabellen
      3. Self Outer Joins
    2. Cross Joins
    3. Natural Joins
    4. Testen Sie Ihr Wissen
      1. Übung 10-1
      2. Übung 10-2
      3. Übung 10-3
      4. Übung 10-4 (für Tüftler)
  13. 11. Bedingungslogik
    1. Was ist Bedingungslogik?
    2. Der Case-Ausdruck
      1. Searched Case-Ausdrücke
      2. Einfache Case-Ausdrücke
    3. Beispiele für Case-Ausdrücke
      1. Umwandlungen von Ergebnismengen
      2. Selektive Aggregation
      3. Prüfung auf Vorhandensein
      4. Fehler bei einer Division durch null
      5. Bedingte Updates
      6. Der Umgang mit null-Werten
    4. Testen Sie Ihr Wissen
      1. Übung 11-1
      2. Übung 11-2
  14. 12. Transaktionen
    1. Mehrbenutzerdatenbanken
      1. Sperren
      2. Granularität von Sperren
    2. Was ist eine Transaktion?
      1. Transaktion starten
      2. Transaktion beenden
      3. Savepoints
    3. Testen Sie Ihr Wissen
      1. Übung 12-1
  15. 13. Indizes und Constraints
    1. Indizes
      1. Indexerstellung
        1. Eindeutige (unique) Indizes
        2. Mehrspalten-Indizes
      2. Indextypen
        1. B-Baum-Indizes
        2. Bitmap-Indizes
        3. Textindizes
      3. Verwendung von Indizes
      4. Der Nachteil von Indizes
    2. Constraints
      1. Constraints anlegen
      2. Constraints und Indizes
      3. Kaskadierende Constraints
    3. Testen Sie Ihr Wissen
      1. Übung 13-1
      2. Übung 13-2
  16. 14. Views
    1. Was sind Views?
    2. Warum Views verwenden?
      1. Datensicherheit
      2. Datenaggregation
      3. Komplexität verbergen
      4. Partitionierte Daten verknüpfen
    3. Aktualisierbare Views
      1. Einfache Views aktualisieren
      2. Komplexe Views aktualisieren
    4. Testen Sie Ihr Wissen
      1. Übung 14-1
      2. Übung 14-2
  17. 15. Metadaten
    1. Daten über Daten
    2. Information_Schema
    3. Mit Metadaten arbeiten
      1. Skripten zur Schema-Generierung
      2. Deployment-Überprüfung
      3. Dynamisch SQL generieren
    4. Testen Sie Ihr Wissen
      1. Übung 15-1
      2. Übung 15-2
  18. A. ER-Diagramm der Musterdatenbank
  19. B. MySQL-Erweiterungen für SQL
    1. Erweiterungen der SELECT-Anweisung
      1. Die limit-Klausel
        1. Kombinationen von limit und order by
        2. Der optionale zweite Parameter der limit-Klausel
        3. Ranking-Abfragen
      2. Die into outfile-Klausel
    2. Kombinierte Insert/Update-Anweisungen
    3. Geordnete Updates und Deletes
    4. Updates und Deletes mit mehreren Tabellen
  20. C. Lösungen der Übungen
    1. Kapitel 3
      1. 3-1
      2. 3-2
      3. 3-3
      4. 3-4
    2. Kapitel 4
      1. 4-1
      2. 4-2
      3. 4-3
      4. 4-4
    3. Kapitel 5
      1. 5-1
      2. 5-2
      3. 5-3
    4. Kapitel 6
      1. 6-1
      2. 6-2
      3. 6-3
    5. Kapitel 7
      1. 7-1
      2. 7-2
      3. 7-3
    6. Kapitel 8
      1. 8-1
      2. 8-2
      3. 8-3
      4. 8-4 (für Tüftler)
    7. Kapitel 9
      1. 9-1
      2. 9-2
      3. 9-3
      4. 9-4
    8. Kapitel 10
      1. 10-1
      2. 10-2
      3. 10-3
      4. 10-4 (für Tüftler)
    9. Kapitel 11
      1. 11-1
      2. 11-2
    10. Kapitel 12
      1. 12-1
    11. Kapitel 13
      1. 13-1
      2. 13-2
    12. Kapitel 14
      1. 14-1
      2. 14-2
    13. Kapitel 15
      1. 15-1
      2. 15-2
  21. D. Über den Autor
  22. E. Über die Übersetzer
  23. Stichwortverzeichnis
  24. Kolophon