Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Die Informationen in diesem Buch werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben, die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt. Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das Symbol in diesem Buch nicht verwendet. 10 9 8 7 6 5 4 3 2 1 14 13 12 ISBN 978-3-8273-3086-4 2012 by Addison-Wesley Verlag, ein Imprint der Pearson Deutschland GmbH, Martin-Kollar-Straße 10 12, D-81829 München/Germany Alle Rechte vorbehalten Lektorat: Brigitte Bauer-Schiewek, bbauer@pearson.de Fachlektorat: Georg Weiherer Korrektorat: Petra Kienle Herstellung: Martha Kürzl-Harrison, mkuerzl@pearson.de Coverkonzeption und -gestaltung: Thomas Arlt (tarlt@adesso21.net) Satz: Reemers Publishing Services GmbH, Krefeld (www.reemers.de) Druck und Verarbeitung: Drukarnia Dimograf, Bielsko-Biala Printed in Poland
101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 John-Harry 01110 Wieken 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 10 011011101 0101 0110 010 010 0110 01101110 0110 0110 0110 010 010 1011 101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 01110 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 10 011011101 0101 0110 010 010 0110 01101110 0110 0110 0110 010 010 1011 101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 01110 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 erfolgreich 10 011011101 0101 0110 010 010 0110 01101110 0110 0110 0110 010 010 1011 101 011 SQL 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 01110 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 lernen 0110 0110 01110 011011101 011012. 0110 Auflage 010 0101 10 011011101 0101 0110 010 010 0110 01101110 0110 0110 010 010 1011 101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 01110 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 10 011011101 0101 0110 010 010 0110 01101110 0110 0110 0110 010 010 1011 101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 01110 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 10 011011101 0101 0110 010 010 0110 01101110 0110 0110 0110 010 010 1011 101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 An imprint of Pearson München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City 10 01101110 Madrid Amsterdam 01110 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 10 011011101 0101 0110 010 010 0110 01101110 0110 0110 0110 010 010 1011 101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011
Auf einen Blick Vorwort........................................................ 13 Teil 1 Vorbereitung Kapitel 1 Einleitung......................................... 17 Kapitel 2 SQL der Standard relationaler Datenbanken.... 21 Kapitel 3 Die Beispieldatenbanken......................... 39 Teil 2 Abfrage und Bearbeitung Kapitel 4 Mit SQL Daten abfragen (SELECT)............... 59 Kapitel 5 Datentypen, Ausdrücke und Funktionen.......... 119 Kapitel 6 Datenbankinhalte ändern (INSERT, UPDATE, DELETE)......................................... 173 Teil 3 Erstellen einer Datenbank Kapitel 7 Datenbanken modellieren........................ 197 Kapitel 8 Datenbanken erstellen (SQL-DDL)............... 227 Teil 4 Komplexe Abfragen Kapitel 9 Unterabfragen (Sub-SELECT).................... 283 Kapitel 10 Unterabfragen in DDL und DML.................. 299 Kapitel 11 Mengenoperationen (UNION, INTERSECT, EXCEPT/MINUS)................................. 309 5
Auf einen Blick Teil 5 Aspekte des Betriebs Kapitel 12 Benutzer, Rechte und Zugriffsschutz............. 323 Kapitel 13 Transaktionen.................................... 343 Kapitel 14 Mit SQL Datenbanken betreiben und optimieren.. 355 Anhang A Boolesche Algebra............................... 371 Anhang B Datenbankinhalte................................. 373 Stichwortverzeichnis........................................... 379 6
0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110 0110 0110 0110 010 010 101 Inhaltsverzeichnis Vorwort........................................................ 13 Teil 1 Vorbereitung Kapitel 1 Einleitung.......................................... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 2.1 Die Geschichte............................... 21 2.2 Die Bestandteile.............................. 22 2.3 Verarbeitung einer SQL-Anweisung........... 24 2.4 Die Struktur von SQL-Anweisungen........... 27 2.5 Relationale Datenbanken..................... 31 2.5.1 Tabellen............................. 31 2.5.2 Primärschlüssel...................... 35 2.5.3 Beziehungen......................... 36 Kapitel 3 Die Beispieldatenbanken......................... 39 3.1 Die Beispieldatenbanken...................... 40 3.1.1 Die Kursdatenbank................... 40 3.2 Schnelleinstieg und Neustart.................. 42 3.2.1 MySQL.............................. 42 3.2.2 Oracle............................... 42 3.2.3 Firebird.............................. 43 3.2.4 Microsoft Access..................... 44 3.2.5 OpenOffice.org Base.................. 44 3.3 MySQL....................................... 45 3.3.1 Gründe für die Nutzung.............. 45 3.3.2 Installation und Konfiguration des Servers................................. 45 3.4 Microsoft SQL Server......................... 46 3.4.1 Gründe für die Nutzung.............. 46 3.5 PostgreSQL................................... 47 3.5.1 Gründe für die Nutzung.............. 47 3.5.2 Installation und Konfiguration des Servers.............................. 47 7
Inhaltsverzeichnis 3.6 Microsoft Access............................. 48 3.6.1 Gründe für die Nutzung.............. 48 3.6.2 Aufbau einer Beispieldatenbank...... 49 3.7 Oracle....................................... 51 3.7.1 Gründe für die Nutzung.............. 51 3.7.2 Installation von Oracle............... 51 3.8 Firebird...................................... 52 3.9 OpenOffice.org Base.......................... 52 Teil 2 Abfrage und Bearbeitung Kapitel 4 Mit SQL Daten abfragen (SELECT)............... 59 4.1 SELECT die Syntax......................... 59 4.2 Einfache Abfragen........................... 61 4.2.1 Alias in Microsoft Access............. 66 4.2.2 Alias in MySQL, Oracle und Base..... 67 4.2.3 ALL und DISTINCT................... 68 4.3 Daten sortieren mit der ORDER BY-Klausel.... 70 4.4 Auswahl der Daten mit der WHERE-Klausel... 74 4.5 Tabellen miteinander verbinden (JOIN)........ 82 4.5.1 Der Klassiker (INNER JOIN)........... 82 4.5.2 JOIN über mehrere Tabellen.......... 89 4.5.3 Varianten des INNER JOIN............ 93 4.5.4 NON-EQUI-JOIN..................... 95 4.5.5 OUTER JOIN......................... 96 4.5.6 CROSS JOIN......................... 100 4.5.7 JOIN über mehrere Felder............ 103 4.6 Die GROUP BY-Klausel....................... 104 4.7 Die HAVING-Klausel......................... 114 Kapitel 5 Datentypen, Ausdrücke und Funktionen.......... 119 5.1 Datentypen.................................. 119 5.1.1 Alphanumerische Angaben (Text)..... 123 5.1.2 Ganze Zahlen........................ 127 5.1.3 Gleitkommazahlen................... 128 5.1.4 Datum/Uhrzeit....................... 130 5.1.5 Bits, BLOBs und andere Datentypen... 133 5.2 NULL-Werte.................................. 134 5.3 Literale...................................... 135 5.4 Ausdrücke................................... 138 5.5 Funktionen.................................. 139 5.6 Datensatzorientierte Funktionen (Skalarfunktionen)........................... 142 5.6.1 Funktionen in Microsoft Access....... 143 5.6.2 Numerische Funktionen.............. 145 8
Inhaltsverzeichnis 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110 0110 0110 0110 010 010 101 5.6.3 Alphanumerische Funktionen......... 151 5.6.4 Datumsorientierte Funktionen........ 155 5.6.5 Datentypumwandlungsfunktionen (Casting)............................. 160 5.6.6 Logische und sonstige Funktionen.... 163 5.7 Gruppenorientierte Funktionen (Aggregatfunktionen)......................... 167 Kapitel 6 Datenbankinhalte ändern (INSERT, UPDATE, DELETE)........................................... 173 6.1 Neue Datensätze einfügen (INSERT)........... 173 6.1.1 INSERT mit Werten und Funktionen.. 173 6.1.2 INSERT mit Unterabfragen........... 176 6.1.3 INSERT mit SET...................... 179 6.1.4 Besonderheiten des INSERT mit Microsoft Access..................... 179 6.1.5 INSERT-Übungen.................... 184 6.2 Vorhandene Datensätze ändern (UPDATE)..... 185 6.2.1 UPDATE-Anweisungen............... 185 6.2.2 Besonderheiten des UPDATE bei Microsoft Access..................... 187 6.2.3 Zusammenfassung................... 189 6.2.4 Update-Übungen..................... 189 6.3 Datensätze löschen (DELETE)................. 190 6.3.1 DELETE-Grundlagen................. 190 6.3.2 Alle Datensätze löschen (TRUNCATE). 191 6.3.3 Besonderheiten von DELETE bei Microsoft Access..................... 192 6.3.4 Übungen zur DELETE-Anweisung..... 193 Teil 3 Erstellen einer Datenbank Kapitel 7 Datenbanken modellieren........................ 197 7.1 Das 3-Ebenen-Modell........................ 197 7.1.1 Anforderungen an das Datenbankmodell............................... 197 7.1.2 Die drei Ebenen des Datenbankmodells. 198 7.1.3 Der Weg zum Datenbankmodell...... 200 7.2 Das Entity-Relationship-Modell (ERM)........ 202 7.2.1 Entitäten............................ 204 7.2.2 Attribute (Eigenschaften)............. 204 7.2.3 Domänen............................ 205 7.2.4 Beziehungen......................... 206 7.3 Beispiel BüroFix.............................. 210 9
Inhaltsverzeichnis 7.4 Umsetzung in das relationale Modell.......... 215 7.5 Sinn und Unsinn der Normalisierung.......... 218 7.5.1 Redundanz und Anomalien........... 218 7.5.2 Normalisierungsziele................. 220 7.5.3 Funktionale Abhängigkeit............ 221 7.5.4 Normalformen....................... 223 7.5.5 Grenzen der Normalisierung.......... 224 Kapitel 8 Datenbanken erstellen (SQL-DDL)................ 227 8.1 Erstellen des Datenbankschemas (CREATE SCHEMA)........................... 227 8.1.1 MySQL.............................. 228 8.1.2 Microsoft Access..................... 231 8.1.3 Oracle............................... 232 8.1.4 Firebird.............................. 233 8.1.5 OpenOffice.org Base.................. 234 8.1.6 Microsoft SQL Server................. 234 8.1.7 PostgreSQL.......................... 235 8.1.8 Übungen............................. 235 8.2 Erstellung der Tabellen (CREATE TABLE)...... 235 8.2.1 Standardangaben für Felder.......... 236 8.2.2 Fremdschlüsselbeziehungen.......... 242 8.3 Integritätsbedingung......................... 245 8.3.1 Primärschlüssel (PRIMARY KEY)...... 245 8.3.2 Fremdschlüssel erstellen (FOREIGN KEY)...................... 247 8.3.3 Allgemeine Integritätsbedingung (CHECK)............................. 254 8.3.4 UNIQUE-Bedingung.................. 256 8.3.5 Übungen zu Integritätsbedingungen.. 257 8.3.6 Microsoft Access..................... 258 8.4 Ändern der Tabellen (ALTER TABLE).......... 259 8.5 Tabellen löschen (DROP TABLE)............... 262 8.6 Benutzer- und Programmsichten (CREATE VIEW).............................. 264 8.6.1 Spaltenselektion..................... 266 8.6.2 Zeilenselektion....................... 267 8.6.3 Tabellen kombinieren................ 268 8.6.4 Der VIEW in MySQL................. 270 8.6.5 Der VIEW in Microsoft Access........ 272 8.6.6 Einen VIEW ändern (ALTER VIEW, DROP VIEW)......................... 273 8.6.7 Änderbarkeit eines VIEW............. 273 8.6.8 Übungen............................. 275 10
Inhaltsverzeichnis 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110 0110 0110 0110 010 010 101 8.7 Domänen.................................... 276 8.7.1 Erstellen von Domänen............... 276 8.7.2 Domänen ändern (ALTER DOMAIN)... 278 8.7.3 Domänen löschen (DROP DOMAIN)... 279 8.7.4 Übungen............................. 279 Teil 4 Komplexe Abfragen Kapitel 9 Unterabfragen (Sub-SELECT)..................... 283 9.1 Nutzung von Unterabfragen.................. 283 9.2 Unterabfragen mit Vergleichsoperatoren....... 287 9.3 Unterabfragen mit ALL und ANY............. 289 9.4 Unterabfragen mit IN und EXISTS............ 291 9.5 Synchronisierte und korrelierte Unterabfragen. 294 9.6 Regeln für Unterabfragen in der WHERE-Klausel.............................. 295 9.7 Erweiterungen der Unterabfragen............. 295 9.8 Unterabfragen mit Microsoft Access........... 298 Kapitel 10 Unterabfragen in DDL und DML.................. 299 10.1 CREATE mit Unterabfragen................... 299 10.2 UPDATE mit Unterabfragen................... 302 10.3 INSERT mit Unterabfragen.................... 303 10.4 DELETE mit Unterabfragen................... 305 Kapitel 11 Mengenoperationen (UNION, INTERSECT, EXCEPT/MINUS).................................. 309 11.1 Überblick.................................... 309 11.2 Die Vereinigungsmenge (UNION).............. 310 11.3 Die Schnittmenge (INTERSECT)............... 314 11.4 Die Differenzmenge (MINUS/EXCEPT)......... 316 11.5 Besonderheiten der Datenbanksysteme........ 317 11.6 Zusammenfassung........................... 318 11.7 Übungen..................................... 319 Teil 5 Aspekte des Betriebs Kapitel 12 Benutzer, Rechte und Zugriffsschutz............. 323 12.1 Schutz der Informationen..................... 323 12.2 Benutzer und Benutzergruppen............... 324 12.3 Benutzer entfernen (DROP USER)............. 326 12.4 Rollen einrichten............................. 326 12.5 Rollen löschen............................... 326 12.6 Rechte einrichten (GRANT)................... 327 12.7 Rechte entziehen (REVOKE)................... 328 11
Inhaltsverzeichnis 12.8 Benutzerkonzepte verschiedener Datenbanken. 329 12.8.1 Benutzerkonzept in MySQL........... 329 12.8.2 Benutzerkonzept in Oracle............ 332 12.8.3 Benutzerkonzept in Firebird.......... 335 12.8.4 Benutzerkonzept von Microsoft SQL Server..336 12.8.5 Benutzerkonzept in PostgreSQL....... 337 12.8.6 Benutzerkonzept in Microsoft Access. 338 12.8.7 Benutzerkonzept in OpenOffice.org Base................................. 339 12.9 VIEW als Zugriffsschutz...................... 340 Kapitel 13 Transaktionen..................................... 343 13.1 Grundlagen.................................. 343 13.2 AUTOCOMMIT............................... 345 13.3 Eigenschaften einer Transaktion.............. 347 13.4 Sperren...................................... 348 13.5 Transaktionen und Benutzervariablen......... 354 Kapitel 14 Mit SQL Datenbanken betreiben und optimieren.................................... 355 14.1 Optimierter Zugriff der Index............... 355 14.1.1 Nutzen von Indizes................... 355 14.1.2 Anlage eines Index (CREATE INDEX). 356 14.2 Einen Index löschen.......................... 361 14.3 Weitere Überlegungen zum Einsatz von Indizes. 361 14.4 Weitere Anweisungen zur physischen Datenspeicherung.................................. 365 14.5 Prozeduren und Trigger...................... 366 14.6 Application Programming Interface (API)..... 367 14.7 Ein Wort zum Schluss........................ 369 Anhang A Boolesche Algebra............................... 371 Anhang B Datenbankinhalte................................. 373 B.1 Datenbank Kurse............................. 373 B.2 Datenbank Artikel............................ 375 Stichwortverzeichnis.......................................... 379 12
Copyright Daten, Texte, Design und Grafiken dieses ebooks, sowie die eventuell angebotenen ebook-zusatzdaten sind urheberrechtlich geschützt. Dieses ebook stellen wir lediglich als persönliche Einzelplatz-Lizenz zur Verfügung! Jede andere Verwendung dieses ebooks oder zugehöriger Materialien und Informationen, einschließlich der Reproduktion, der Weitergabe, des Weitervertriebs, der Platzierung im Internet, in Intranets, in Extranets, der Veränderung, des Weiterverkaufs und der Veröffentlichung bedarf der schriftlichen Genehmigung des Verlags. Insbesondere ist die Entfernung oder Änderung des vom Verlag vergebenen Passwortschutzes ausdrücklich untersagt! Bei Fragen zu diesem Thema wenden Sie sich bitte an: info@pearson.de Zusatzdaten Möglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei. Die Zurverfügungstellung dieser Daten auf unseren Websites ist eine freiwillige Leistung des Verlags. Der Rechtsweg ist ausgeschlossen. Hinweis Dieses und viele weitere ebooks können Sie rund um die Uhr und legal auf unserer Website herunterladen: http://ebooks.pearson.de