Wenn Sie sich professionell mit Oracle beschäftigen, sind umfassende Kenntnisse des entsprechenden SQL-Dialekts unverzichtbar. Jürgen Sieben, vielen bereits bekannt durch seine Bücher zu Oracle PL/SQL und Oracle APEX, hat nun auch sein Buch zu Oracle SQL aktualisiert. Er zeigt Ihnen darin, wie Oracle und SQL zusammenspielen und welche Strategien Sie nutzen können, um Daten in der Datenbank zu speichern, zu analysieren oder auch zu löschen. Neu in der 3. Auflage: Änderungen in der Datenbankversion 12. 2. sowie ein Abschnitt zu analytischen Views.
Aus dem Inhalt:
- Konzept einer relationalen Datenbank
- Grundlagen: Auswahl und Projektion
- Daten aus mehreren Tabellen lesen: Joins
- Zeilenfunktionen, Gruppenfunktionen, analytische Funktionen
- Unterabfragen
- Datenmanipulation
- Views, Tabellen und Indizes erstellen
- Einführung in die Rechteverwaltung von Oracle
- Hierarchische Abfragen und XML-Abfragen
- Die Model-Klausel
- Row Pattern Matching
- Pivotierung und Abfragetabellen
- Arbeit mit großen Datenstrukturen
- Performanzoptimierung von SQL-Abfragen
- Normalisierung von Datenmodellen
- Häufige Fehler der Datenmodellierung
- Parameter verwalten
- Multilinguale Daten
Inhaltsverzeichnis
Materialien zum Buch . . . 21 1. Einführung . . . 23 1. 1 . . . Für wen ist dieses Buch geschrieben? . . . 23 1. 2 . . . Aufbau des Buches . . . 24 1. 3 . . . Anmerkung zur dritten Auflage . . . 33 1. 4 . . . Anmerkung zur zweiten Auflage . . . 34 1. 5 . . . Danksagung . . . 35Teil I Einführung und Grundlagen . . . 37 2. Verwendete Werkzeuge und Skripte . . . 39 2. 1 . . . Aufsetzen einer Beispieldatenbank . . . 39 2. 2 . . . Die Datenbankbenutzer . . . 53 2. 3 . . . SQL Developer . . . 55 2. 4 . . . Online-Dokumentation und weiterführende Literatur . . . 60 3. Konzept einer relationalen Datenbank . . . 65 3. 1 . . . Die Idee der relationalen Speicherung . . . 65 3. 2 . . . SQL - die »Lingua franca« der Datenbank . . . 82 3. 3 . . . Analyse vorhandener Datenmodelle . . . 89Teil II Die SELECT-Anweisung . . . 97 4. Grundlagen: Auswahl und Projektion . . . 99 4. 1 . . . Projektion . . . 99 4. 2 . . . Auswahl . . . 113 4. 3 . . . Sortieren von Zeilenmengen . . . 129 4. 4 . . . Fallunterscheidungen . . . 133 4. 5 . . . Die Klausel ROW LIMITING . . . 140 4. 6 . . . Pseudospalten . . . 143 4. 7 . . . Kommentare . . . 149 4. 8 . . . Der NULL-Wert . . . 151 4. 9 . . . Übungen . . . 159 5. Daten aus mehreren Tabellen lesen: Joins . . . 161 5. 1 . . . Einführung in Joins . . . 162 5. 2 . . . Inner Join . . . 163 5. 3 . . . Outer Join . . . 176 5. 4 . . . Anti-Join, Semi-Join, Self-Join und Natural Join . . . 185 5. 5 . . . Mengenoperationen mit UNION, MINUS und INTERSECT . . . 191 5. 6 . . . Übungen . . . 197 5. 7 . . . Zusatz: Weiterführende Join-Konzepte . . . 198 6. Zeilenfunktionen . . . 205 6. 1 . . . Grundsätzliches zu Funktionen . . . 206 6. 2 . . . Zeichenfunktionen . . . 209 6. 3 . . . Datumsfunktionen . . . 233 6. 4 . . . Mathematische Funktionen . . . 255 6. 5 . . . Allgemeine Funktionen . . . 271 6. 6 . . . Eigene Funktionen erstellen: Berechnung der Fakultät . . . 291 7. Gruppenfunktionen . . . 297 7. 1 . . . Die Standardgruppenfunktionen . . . 298 7. 2 . . . Gruppierung von Gruppenfunktionen . . . 303 7. 3 . . . Spezielle Gruppenfunktionen . . . 317 7. 4 . . . Wenn ungefähr ausreicht . . . 324 7. 5 . . . Übungen . . . 326 8. Unterabfragen . . . 327 8. 1 . . . Die Unterabfrage in der WHERE-Klausel . . . 327 8. 2 . . . Die Unterabfrage in der FROM-Klausel (Inner View) . . . 339 8. 3 . . . Die Unterabfrage in der SELECT-Klausel (skalare Unterabfrage) . . . 346 8. 4 . . . Unterabfragen und Joins . . . 349 8. 5 . . . Funktionen in der WITH-Klausel . . . 352 8. 6 . . . Übungen . . . 354Teil III Datenmanipulation und Erzeugung von Datenbankobjekten . . . 355 9. Datenmanipulation . . . 357 9. 1 . . . Die INSERT-Anweisung . . . 357 9. 2 . . . Die UPDATE-Anweisung . . . 363 9. 3 . . . Die DELETE-Anweisung . . . 373 9. 4 . . . Die MERGE-Anweisung . . . 374 9. 5 . . . Exkurs: Flashback . . . 385 9. 6 . . . Sequenzen und Trigger . . . 386 9. 7 . . . Ihr Sicherheitsnetz - die Transaktion . . . 392 9. 8 . . . Erweiterung: Fehlerbehandlung während der Datenmanipulation . . . 395 9. 9 . . . Erweiterung: Multi-Table-Insert . . . 40210. Views erstellen . . . 413 10. 1 . . . »Normale« Views . . . 413 10. 2 . . . Einsatzbereiche von Views . . . 426 10. 3 . . . Wer sollte Views verwenden? . . . 429 10. 4 . . . Materialized View . . . 43111. Tabellen erstellen . . . 447 11. 1 . . . Einfache Tabellen erstellen . . . 448 11. 2 . . . Weitere Tabellentypen . . . 464 11. 3 . . . Erweiterung zur »aktiven Tabelle« . . . 47512. Indizes erstellen . . . 483 12. 1 . . . Was ist ein Index? . . . 484 12. 2 . . . Indextypen bei Oracle . . . 490 12. 3 . . . Spezielle Indextypen . . . 49513. Aufbau einer Oracle-Datenbank . . . 511 13. 1 . . . Wie arbeitet eine Oracle-Datenbank? . . . 511 13. 2 . . . Datensicherheit . . . 523 13. 3 . . . Erstellung eines Datenbankbenutzers . . . 526 13. 4 . . . System- und Objektprivilegien . . . 531 13. 5 . . . Rollen . . . 537 13. 6 . . . Passwort- und Ressourcenrechte . . . 538 13. 7 . . . Datentypen . . . 539 13. 8 . . . Zeichensatzcodierung . . . 552Teil IV Spezielle Abfragetechniken . . . 55714. Analytische Funktionen . . . 559 14. 1 . . . Die Idee der analytischen Funktionen . . . 559 14. 2 . . . Gruppenfunktionen als analytische Funktionen . . . 567 14. 3 . . . Analytische Rangfunktionen . . . 586 14. 4 . . . Zusammenfassung . . . 601 14. 5 . . . Übungen . . . 60315. Hierarchische Abfragen . . . 605 15. 1 . . . Das Problem . . . 605 15. 2 . . . Lösung mit der Abfrage CONNECT BY . . . 607 15. 3 . . . Erweiterungen zur Abfrage CONNECT BY . . . 615 15. 4 . . . Hierarchische Abfragen nach ISO-Standard . . . 62716. Arbeiten mit XML . . . 637 16. 1 . . . XML-Instanzen mit SQL/XML erzeugen . . . 640 16. 2 . . . Bearbeitung von XML-Instanzen in SQL/XML . . . 651 16. 3 . . . Speicherung von XML in der Datenbank . . . 665 16. 4 . . . Der Datentyp »XMLType« . . . 67517. JSON . . . 685 17. 1 . . . Übersicht über JSON . . . 685 17. 2 . . . Oracles JSON-Unterstützung . . . 687 17. 3 . . . Abfragen gegen JSON-Instanzen . . . 692 17. 4 . . . JSON-Funktionen und -Operatoren . . . 694 17. 5 . . . Relationale Daten aus JSON extrahieren . . . 702 17. 6 . . . Erzeugung von JSON aus relationalen Daten . . . 705 17. 7 . . . JSON Data Guide . . . 711 17. 8 . . . Beurteilung . . . 71518. Pivotieren von Daten . . . 717 18. 1 . . . Pivotierung mit Gruppenfunktionen . . . 718 18. 2 . . . Pivotierung mit der PIVOT-Klausel . . . 720 18. 3 . . . Unpivotierung mit Gruppenfunktionen . . . 729 18. 4 . . . Unpivotierung mit der UNPIVOT-Klausel . . . 73419. Row Pattern Matching . . . 737 19. 1 . . . Die Grundlagen . . . 737 19. 2 . . . Syntaktische Grundlagen . . . 739 19. 3 . . . Erweiterungen zur Grundsyntax . . . 746 19. 4 . . . Zusammenfassung . . . 76020. Die MODEL-Klausel . . . 763 20. 1 . . . Lösung des Problems mit der MODEL-Klausel . . . 767 20. 2 . . . Partitionierung, Dimension und Messung . . . 770 20. 3 . . . Regeln . . . 773 20. 4 . . . Weiterführende Konzepte . . . 784 20. 5 . . . Bewertung der MODEL-Klausel . . . 79121. Umgang mit Datum und Zeit . . . 793 21. 1 . . . Erzeugung von Datumstypen . . . 793 21. 2 . . . Erzeugung von Intervallen . . . 800 21. 3 . . . Konvertierung von Zeichenketten in Datumstypen . . . 804 21. 4 . . . Zeilenfunktionen für Zeitstempel mit Zeitzonen . . . 810 21. 5 . . . Abfragen über die Zeit: Flashback . . . 81422. Objektorientierung in der Oracle-Datenbank . . . 821 22. 1 . . . Einführung in die Objektorientierung . . . 822 22. 2 . . . SQL-Typen . . . 830 22. 3 . . . Objektorientierte Tabellen . . . 846 22. 4 . . . Objekttabellen als Speichermechanismus . . . 855 22. 5 . . . Beurteilung . . . 86023. Datenwarenhaus . . . 863 23. 1 . . . Star-Schema . . . 866 23. 2 . . . Dimensionen . . . 869 23. 3 . . . Arbeiten mit dem Star-Schema . . . 873 23. 4 . . . Zusammenfassung . . . 88924. Performanzoptimierung von SQL . . . 891 24. 1 . . . Sagen Sie der Datenbank, was Sie wollen! . . . 891 24. 2 . . . Nutzen Sie alle verfügbaren Optionen von SQL . . . 895 24. 3 . . . Vermeiden Sie Umgebungswechsel . . . 899 24. 4 . . . Die Verwendung von Indizes . . . 907Teil V Datenbankmodellierung . . . 92125. Die Grundlagen der Datenmodellierung . . . 923 25. 1 . . . Normalisierung . . . 923 25. 2 . . . Tabellendesign . . . 927 25. 3 . . . Primärschlüssel . . . 930 25. 4 . . . Fremdschlüssel . . . 935 25. 5 . . . Überlegungen zu Datentypen und zur Namenskonvention in Tabellen . . . 936 25. 6 . . . Zusammenfassung . . . 94426. Datenmodellierung von Datum und Zeit . . . 947 26. 1 . . . Datumsbereiche . . . 947 26. 2 . . . Historisierung und Logging . . . 96527. Speicherung hierarchischer Daten . . . 985 27. 1 . . . Hierarchie mittels zusätzlicher Hierarchietabelle . . . 985 27. 2 . . . Closure Table . . . 989 27. 3 . . . Weitere Modelle . . . 993 27. 4 . . . Zusammenfassung . . . 99528. Abbildung objektorientierter Strukturen . . . 997 28. 1 . . . Vererbung . . . 998 28. 2 . . . Kollektionen . . . 1003 28. 3 . . . Alternative Lösungsansätze . . . 1004 28. 4 . . . Zusammenfassung . . . 100629. Internationalisierung . . . 1007 29. 1 . . . Oracle im multilingualen Kontext . . . 1007 29. 2 . . . Datenmodelle zur Übersetzung von Stammdaten . . . 1014 Index . . . 1031