DAS R. F. VAN DER [ANS LEHRBUCH ADDISON-WESLEY PUBLISHING COMPANY Bonn • Reading, Massachusetts • Menlo Park, California • New York Don Mills, Ontario • Wokingham, England • Amsterdam • Sydney • Singapore Tokyo • Madrid • Bogota • Santiago • San Juan Inhalt Kapitel 1: Einleitung 1.1 1.2 1.3 1.4 1.5 Datenbank, Datenbank-Managementsystemund Datenbanksprachen . 1 Das relationale Modell 3 WAS IST SQL? 6 Die Enstehungsgeschichte von SQL 6 Der Aufbau des Buches 8 Kapitel 2: SQL im Überblick 2.1 Die Beispieldatenbank eines Sportvereins 2.2 Eine Datenbank und Tabellen erstellen 2.3 Tabellen konsultieren 2.4 Reihen ändern und löschen 2.5 Wie das Abfragen beschleunigt werden kann 2.6 Views 2.7 Benutzer und Datenschutz 2.8 Die Katalogtabellen 2.9 Anweisungen einführen 11 17 21 23 25 26 27 29 31 Kapitel 3: Datenbanken und Tabellen erstellen 3.1 Eine Datenbank erstellen und SQL starten 3.2 Tabellen erstellen 3.3 Synonyme für Tabellennamen 3.4 Richtlinien für die Benennung von Tabellen und Spalten 3.5 Datenbankspeicherbereiche anlegen 35 37 43 44 45 Kapitel 4: Abfragen: Die SELECT-Anweisung 4.1 Einleitung 4.2 Einige Grundbegriffe 4.3 Die sechs Komponenten der SELECT-Anweisung 51 51 57 viii INHALT 4.4 Verarbeitung einer SELECT-Anweisung: Beispiel 1 4.5 Verarbeitung einer SELECT-Anweisung: Beispiel 2 4.6 Die FROM-Komponente 4.7 Die WHERE-Komponente 4.8 Die GROUP BY-Komponente 4.9 Die HAVING-Komponente 4.10 Die SELECT-Komponente 4.11 Die ORDER BY-Komponente 4.12 Ergebnisse zusammenfügen mit UNION 4.13 Die Unterabfrage (subquery) 60 63 66 71 95 97 104 115 120 126 Kapitel 5: Die SELECT-Anweisung (Fortsetzung) 5.1 Statistische Kennzahlen 5.2 Verwaltungstechnische Anwendungen 5.3 Das "Join" 5.4 Bedingung mit einer Verneinung 5.5 Die korrelierte Unterabfrage 135 143 151 159 163 Kapitel 6: Berichte erstellen 6.1 Kopf- und Fußzeilen 6.2 Spalten löschen 6.3 Spalten modifizieren 6.4 Reihen gruppieren 6.5 Endsummen und Zwischensummen berechnen 6.6. Ein ausführliches Beispiel 6.7 Die Standardwerte 173 176 178 179 180 182 185 Kapitel 7: Tabellen ändern 7.1 Neue Reihen einführen 7.2 Eine Tabelle mit Reihen anderer Tabellen füllen 7.3 Werte in Reihen ändern 7.4 Reihen aus einer Tabelle löschen 7.5 Anweisungen rückgängig machen 189 191 195 201 202 INHALT ix Kapitel 8: Anweisungen optimieren 8.1 Wie ein Index arbeitet 8.2 Verarbeitungsstufen der SELECT-Anweisung 8.3 Indexe erstellen und löschen 8.4 Welche Spalte muß über einen Index verfügen? 8.5 Anweisungen anders formulieren . .* 8.6 Datenbankspeicherbereiche organisieren 208 210 215 218 220 226 Kapitel 9: Views 9.1 Views erstellen 9.2 Anweisungen auf Views verarbeiten 9.3 Anwendungsmöglichkeiten für Views 9.4 Beschränkungen für Views 227 232 234 240 Kapitel 10: Benutzer und Datenschutz 10.1 Neue Benutzer einführen 10.2 Befugnisse erteilen 10.3 Benutzer streichen 10.4 Berechtigungen widerrufen 10.5 Datenschutz für und mit Views 243 245 251 253 254 Kapitel 11: Katalogtabellen 11.1 Übersicht über die Katalogtabellen 11.2 Katalogtabellen befragen 11.3 Katalogtabellen schützen 11.4 Der Katalog als Datenwörterbuch 257 260 265 267 Kapitel 12: Anwendungsentwicklung mit SQL 12.1 Beispiele mitembedded SQL 12.2 SQL-Anweisungen in einem FORTRAN Programm 12.3 Programme einsatzbereit machen 269 (280 288 Kapitel 13: Eine Datenbankstruktur entwerfen 13.1 Welche Tabellen und Spalten? 13.2 Redundante Daten hinzufügen 292 297 x INHALT 13.3 Einen Datentyp für eine Spalte wählen 13.4 Wann muß NOT NULL angegeben werden? 300 301 Kapitel 14: Übersicht über elf SQL-Implementierungen 14.1 Gesamtübersicht 14.2 SQL/Data System und Database 2 14.3 QINT/SQL 14.4 ORACLE 14.5 UNDFY 14.6 RaSQL 14.7 SIR/SQL+ 14.8 IPFSQL 14.9 LINUS 14.10 10-BASE 14.11 INGRES/SQL 303 307 310 312 313 314 316 317 317 318 319 Kapitel 15: Mögliche Erweiterungen und ein Nachwort 15.1 Integritätsvorschriften 15.2 Verteilte Datenbanken 15.3 Views ändern 15.4 Der Optimierer 15.5 Neue Datentypen für Spalten 15.6 Orthogonalität der Sprache 15.7 SQL und natürliche Sprache 15.8 Der ANSI-Standard 15.9 Nachwort 321 324 325 325 326 326 327 328 329 Anhang A: Lösungen 331 Anhang B: Syntaxdefinition von SQL 367 Anhang C: Quellen 375 Index 379