Jürgen Sieben
Oracle SQL
Das umfassende Handbuch für den effizienten Einsatz von Oracle SQL. Mit vielen Aufgaben und Beispielen. Aktuell zu Oracle 23ai
Jürgen Sieben
Oracle SQL
Das umfassende Handbuch für den effizienten Einsatz von Oracle SQL. Mit vielen Aufgaben und Beispielen. Aktuell zu Oracle 23ai
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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. Die vierte Auflage berücksichtigt die umfassenden Erleichterungen und Syntaxänderung der Datenbankversion 23ai und gibt auch erfahrenen Anwendern einen…mehr
Andere Kunden interessierten sich auch für
- Jürgen SiebenOracle PL/SQL89,90 €
- Michael KoflerDatenbanksysteme49,90 €
- Michael LaubeEinstieg in SQL29,90 €
- Alan BeaulieuEinführung in SQL29,90 €
- Jörg BrandeisSQLScript für SAP HANA79,90 €
- Bernd HeldVBA mit Access49,90 €
- Jeanne BoyarskyOCA46,99 €
-
-
-
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. Die vierte Auflage berücksichtigt die umfassenden Erleichterungen und Syntaxänderung der Datenbankversion 23ai und gibt auch erfahrenen Anwendern einen profunden Einstieg in die verbesserten Möglichkeiten der Sprache SQL.
Aus dem Inhalt:
Konzept einer relationalen DatenbankGrundlagen: Auswahl und ProjektionDaten aus mehreren Tabellen lesen: JoinsZeilenfunktionen, Gruppenfunktionen, analytische FunktionenUnterabfragenDatenmanipulationViews, Tabellen und Indizes erstellenEinführung in die Rechteverwaltung von OracleHierarchischeAbfragen und XML-AbfragenDie Model-KlauselRow Pattern MatchingPivotierung und AbfragetabellenArbeit mit großen DatenstrukturenPerformanzoptimierung von SQL-AbfragenNormalisierung von DatenmodellenHäufige Fehler der DatenmodellierungParameter verwaltenMultilinguale Daten
Aus dem Inhalt:
Konzept einer relationalen DatenbankGrundlagen: Auswahl und ProjektionDaten aus mehreren Tabellen lesen: JoinsZeilenfunktionen, Gruppenfunktionen, analytische FunktionenUnterabfragenDatenmanipulationViews, Tabellen und Indizes erstellenEinführung in die Rechteverwaltung von OracleHierarchischeAbfragen und XML-AbfragenDie Model-KlauselRow Pattern MatchingPivotierung und AbfragetabellenArbeit mit großen DatenstrukturenPerformanzoptimierung von SQL-AbfragenNormalisierung von DatenmodellenHäufige Fehler der DatenmodellierungParameter verwaltenMultilinguale Daten
Produktdetails
- Produktdetails
- Rheinwerk Computing
- Verlag: Rheinwerk Computing / Rheinwerk Verlag
- Artikelnr. des Verlages: 459/10588
- 4., erw. Aufl.
- Seitenzahl: 1089
- Erscheinungstermin: 6. März 2025
- Deutsch
- Abmessung: 240mm x 168mm
- ISBN-13: 9783367105885
- ISBN-10: 3367105880
- Artikelnr.: 72564196
- Herstellerkennzeichnung
- Rheinwerk Verlag GmbH
- Rheinwerkallee 4
- 53227 Bonn
- Info@rheinwerk-verlag.de
- +49228421500
- Rheinwerk Computing
- Verlag: Rheinwerk Computing / Rheinwerk Verlag
- Artikelnr. des Verlages: 459/10588
- 4., erw. Aufl.
- Seitenzahl: 1089
- Erscheinungstermin: 6. März 2025
- Deutsch
- Abmessung: 240mm x 168mm
- ISBN-13: 9783367105885
- ISBN-10: 3367105880
- Artikelnr.: 72564196
- Herstellerkennzeichnung
- Rheinwerk Verlag GmbH
- Rheinwerkallee 4
- 53227 Bonn
- Info@rheinwerk-verlag.de
- +49228421500
Jürgen Sieben ist inhabender Geschäftsführer der ConDeS GmbH. Er beschäftigt sich mit der Entwicklung und Parametrierung von Software, Computerberatung und Systemanalyse für namhafte Kunden wie T-Mobile und Metro AG. Zudem schult er Datenbanktechnologien, z. B. alle relevanten Oracle-Bereiche (Einführung, SQL, PL/SQL, Administration, Performance, Backup & Recovery, Datawarehousing etc.). Seit 2008 ist er Dozent an der Hochschule der in Medien Stuttgart.
1. Materialien zum Buch ... 23
1. Einführung ... 25
1.1 ... Für wen ist dieses Buch geschrieben? ... 25
1.2 ... Aufbau des Buches ... 26
1.3 ... Anmerkung zur vierten Auflage ... 35
1.4 ... Anmerkung zur dritten Auflage ... 36
1.5 ... Anmerkung zur zweiten Auflage ... 37
1.6 ... Danksagung ... 38
TEIL I. Einführung und Grundlagen ... 39
2. Verwendete Werkzeuge und Skripte ... 41
2.1 ... Aufsetzen einer Beispieldatenbank ... 41
2.2 ... SQL Developer ... 44
2.3 ... Die Datenbankbenutzer ... 49
2.4 ... Online-Dokumentation und weiterführende Literatur ... 50
3. Konzept einer relationalen Datenbank ... 53
3.1 ... Die Idee der relationalen Speicherung ... 53
3.2 ... SQL -- die »Lingua franca« der Datenbank ... 70
3.3 ... Analyse vorhandener Datenmodelle ... 78
TEIL II. Die SELECT-Anweisung ... 85
4. Grundlagen: Auswahl und Projektion ... 87
4.1 ... Projektion ... 87
4.2 ... Auswahl ... 102
4.3 ... Sortieren von Zeilenmengen ... 116
4.4 ... Fallunterscheidungen ... 120
4.5 ... Die Klausel ROW LIMITING ... 128
4.6 ... Pseudospalten ... 131
4.7 ... Kommentare ... 137
4.8 ... Der NULL-Wert ... 139
4.9 ... Übungen ... 146
5. Daten aus mehreren Tabellen lesen: Joins ... 147
5.1 ... Einführung in Joins ... 148
5.2 ... Inner Join ... 149
5.3 ... Outer Join ... 160
5.4 ... Anti-Join, Semi-Join, Self-Join und Natural Join ... 169
5.5 ... Mengenoperationen mit UNION, MINUS und INTERSECT ... 175
5.6 ... Übungen ... 182
5.7 ... Zusatz: Weiterführende Join-Konzepte ... 183
6. Zeilenfunktionen ... 191
6.1 ... Grundsätzliches zu Funktionen ... 191
6.2 ... Zeichenfunktionen ... 195
6.3 ... Datumsfunktionen ... 219
6.4 ... Mathematische Funktionen ... 239
6.5 ... Allgemeine Funktionen ... 255
6.6 ... Eigene Funktionen erstellen: Berechnung der Fakultät ... 274
7. Gruppenfunktionen ... 279
7.1 ... Die Standardgruppenfunktionen ... 280
7.2 ... Gruppierung von Gruppenfunktionen ... 285
7.3 ... Spezielle Gruppenfunktionen ... 300
7.4 ... Wenn ungefähr ausreicht ... 308
7.5 ... Übungen ... 309
8. Unterabfragen ... 311
8.1 ... Die Unterabfrage in der WHERE-Klausel ... 311
8.2 ... Die Unterabfrage in der FROM-Klausel (Inner View) ... 322
8.3 ... Unterabfragen und Joins ... 329
8.4 ... Funktionen in der WITH-Klausel ... 334
8.5 ... Übungen ... 336
9. Analytische Funktionen ... 337
9.1 ... Die Idee der analytischen Funktionen ... 337
9.2 ... Gruppenfunktionen als analytische Funktionen ... 343
9.3 ... Analytische Rangfunktionen ... 354
9.4 ... Zusammenfassung ... 370
9.5 ... Übungen ... 371
TEIL III. Datenmanipulation und Erzeugung von Datenbankobjekten ... 373
10. Datenmanipulation ... 375
10.1 ... Die INSERT-Anweisung ... 376
10.2 ... Die UPDATE-Anweisung ... 382
10.3 ... Die DELETE-Anweisung ... 389
10.4 ... Die MERGE-Anweisung ... 390
10.5 ... Exkurs: Flashback ... 401
10.6 ... Sequenzen und Trigger ... 403
10.7 ... Ihr Sicherheitsnetz -- die Transaktion ... 409
10.8 ... Fehlerbehandlung während der Datenmanipulation ... 412
10.9 ... Multi-Table-Insert ... 420
11. Views erstellen ... 429
11.1 ... »Normale« Views ... 429
11.2 ... Einsatzbereiche von Views ... 440
11.3 ... Wer sollte Views verwenden? ... 445
11.4 ... Materialized View ... 447
12. Tabellen erstellen ... 463
12.1 ... Einfache Tabellen erstellen ... 463
12.2 ... Datentypen ... 480
12.3 ... Domänen ... 493
12.4 ... Annotationen und Kommentare ... 504
12.5 ... Weitere Tabellentypen ... 507
12.6 ... Erweiterung zur »aktiven Tabelle« ... 520
13. Indizes erstellen ... 527
13.1 ... Was ist ein Index? ... 528
13.2 ... Indextypen bei Oracle ... 532
13.3 ... Spezielle Indextypen ... 537
14. Aufbau einer Oracle-Datenbank ... 553
14.1 ... Wie arbeitet eine Oracle-Datenbank? ... 553
14.2 ... Datensicherheit ... 564
14.3 ... Zeichensatzcodierung ... 579
15. Anwendungsbeispiele ... 585
15.1 ... Delta-View ... 585
15.2 ... Dubletten bereinigen ... 596
15.3 ... Entscheidungstabellen ... 601
15.4 ... Entscheidungstabelle 2: »Expertensystem« ... 608
TEIL IV. Spezielle Abfragetechniken ... 613
16. Umgang mit Datum und Zeit ... 615
16.1 ... Erzeugung von Datumstypen ... 615
16.2 ... Erzeugung von Intervallen ... 622
16.3 ... Konvertierung von Zeichenketten in Datumstypen ... 626
16.4 ... Zeilenfunktionen für Zeitstempel mit Zeitzonen ... 632
16.5 ... Abfragen über die Zeit: Flashback ... 635
17. Hierarchische Abfragen ... 641
17.1 ... Das Problem ... 641
17.2 ... Lösung mit der CONNECT BY-Klausel ... 644
17.3 ... Erweiterungen der CONNECT BY-Klausel ... 651
17.4 ... Hierarchische Abfragen nach ISO-Standard ... 662
18. Arbeiten mit XML ... 675
18.1 ... XML-Instanzen mit SQL/XML erzeugen ... 678
18.2 ... Bearbeitung von XML-Instanzen in SQL/XML ... 696
18.3 ... Extraktion relationaler Daten aus XML ... 702
18.4 ... Speicherung von XML in der Datenbank ... 707
18.5 ... Der Datentyp XMLTYPE ... 716
19. JSON ... 725
19.1 ... Übersicht über JSON ... 725
19.2 ... Oracles JSON-Unterstützung ... 728
19.3 ... Abfragen gegen JSON-Instanzen ... 731
19.4 ... JSON-Funktionen und -Operatoren ... 736
19.5 ... Erzeugung von JSON aus relationalen Daten ... 742
19.6 ... Relationale Daten aus JSON extrahieren ... 752
19.7 ... JSON-Instanzen bearbeiten ... 758
19.8 ... JSON Data Guide ... 764
19.9 ... JSON-Schema ... 767
19.10 ... JSON Duality Views ... 770
20. Pivotieren von Daten ... 777
20.1 ... Pivotierung mit Gruppenfunktionen ... 778
20.2 ... Pivotierung mit der PIVOT-Klausel ... 780
20.3 ... Unpivotierung mit Gruppenfunktionen ... 787
20.4 ... Unpivotierung mit der UNPIVOT-Klausel ... 790
21. Row Pattern Matching ... 793
21.1 ... Die Grundlagen ... 793
21.2 ... Syntaktische Grundlagen ... 795
21.3 ... Erweiterungen zur Grundsyntax ... 801
21.4 ... Weitere Beispiele und Optionen ... 809
21.5 ... Zusammenfassung ... 817
22. Die MODEL-Klausel ... 819
22.1 ... Lösung des Problems mit der MODEL-Klausel ... 822
22.2 ... Partitionierung, Dimension und Messung ... 825
22.3 ... Regeln ... 828
22.4 ... Weiterführende Konzepte ... 838
22.5 ... Bewertung der MODEL-Klausel ... 846
23. SQL Property Graphen ... 849
23.1 ... Einführung in Graphen ... 849
23.2 ... Erstellen von Property-Graphen ... 851
23.3 ... SQL/PGQ ... 857
23.4 ... Beurteilung ... 863
24. Objektorientierung in der Oracle-Datenbank ... 865
24.1 ... Einführung in die Objektorientierung ... 866
24.2 ... SQL-Typen ... 873
24.3 ... Multiset-Operatoren und -Bedingungen ... 887
24.4 ... Objektorientierte Tabellen ... 890
24.5 ... Beurteilung ... 902
25. Performanzoptimierung von SQL ... 905
25.1 ... Sagen Sie der Datenbank, was Sie wollen! ... 905
25.2 ... Nutzen Sie alle verfügbaren Optionen von SQL ... 909
25.3 ... Vermeiden Sie Umgebungswechsel ... 913
25.4 ... Die Verwendung von Indizes ... 921
Datenbankmodellierung ... 933
26. Die Grundlagen der Datenmodellierung ... 935
26.1 ... Normalisierung ... 935
26.2 ... Tabellendesign ... 939
26.3 ... Primärschlüssel ... 942
26.4 ... Fremdschlüssel ... 946
26.5 ... Überlegungen zu Datentypen und zur Namenskonvention in Tabellen ... 947
26.6 ... Zusammenfassung ... 955
27. Datenmodellierung von Datum und Zeit ... 959
27.1 ... Datumsbereiche ... 959
27.2 ... Analyse gegen eine Zeitdimension ... 975
27.3 ... Historisierung und Logging ... 979
28. Speicherung hierarchischer Daten ... 995
28.1 ... Hierarchie mittels zusätzlicher Hierarchietabelle ... 995
28.2 ... Closure Table ... 999
28.3 ... Weitere Modelle ... 1003
28.4 ... Zusammenfassung ... 1004
29. Datenwarenhaus ... 1007
29.1 ... Star-Schema und Indizierung ... 1010
29.2 ... Dimensionen ... 1013
29.3 ... Arbeiten mit dem Star-Schema ... 1017
29.4 ... Analytische Views ... 1022
29.5 ... Zusammenfassung ... 1035
30. Abbildung objektorientierter Strukturen ... 1037
30.1 ... Vererbung ... 1038
30.2 ... Kollektionen ... 1043
30.3 ... Alternative Lösungsansätze ... 1044
30.4 ... Zusammenfassung ... 1046
31. Internationalisierung ... 1049
31.1 ... Oracle im multilingualen Kontext ... 1049
31.2 ... Datenmodelle zur Übersetzung von Stammdaten ... 1057
Index ... 1073
1. Einführung ... 25
1.1 ... Für wen ist dieses Buch geschrieben? ... 25
1.2 ... Aufbau des Buches ... 26
1.3 ... Anmerkung zur vierten Auflage ... 35
1.4 ... Anmerkung zur dritten Auflage ... 36
1.5 ... Anmerkung zur zweiten Auflage ... 37
1.6 ... Danksagung ... 38
TEIL I. Einführung und Grundlagen ... 39
2. Verwendete Werkzeuge und Skripte ... 41
2.1 ... Aufsetzen einer Beispieldatenbank ... 41
2.2 ... SQL Developer ... 44
2.3 ... Die Datenbankbenutzer ... 49
2.4 ... Online-Dokumentation und weiterführende Literatur ... 50
3. Konzept einer relationalen Datenbank ... 53
3.1 ... Die Idee der relationalen Speicherung ... 53
3.2 ... SQL -- die »Lingua franca« der Datenbank ... 70
3.3 ... Analyse vorhandener Datenmodelle ... 78
TEIL II. Die SELECT-Anweisung ... 85
4. Grundlagen: Auswahl und Projektion ... 87
4.1 ... Projektion ... 87
4.2 ... Auswahl ... 102
4.3 ... Sortieren von Zeilenmengen ... 116
4.4 ... Fallunterscheidungen ... 120
4.5 ... Die Klausel ROW LIMITING ... 128
4.6 ... Pseudospalten ... 131
4.7 ... Kommentare ... 137
4.8 ... Der NULL-Wert ... 139
4.9 ... Übungen ... 146
5. Daten aus mehreren Tabellen lesen: Joins ... 147
5.1 ... Einführung in Joins ... 148
5.2 ... Inner Join ... 149
5.3 ... Outer Join ... 160
5.4 ... Anti-Join, Semi-Join, Self-Join und Natural Join ... 169
5.5 ... Mengenoperationen mit UNION, MINUS und INTERSECT ... 175
5.6 ... Übungen ... 182
5.7 ... Zusatz: Weiterführende Join-Konzepte ... 183
6. Zeilenfunktionen ... 191
6.1 ... Grundsätzliches zu Funktionen ... 191
6.2 ... Zeichenfunktionen ... 195
6.3 ... Datumsfunktionen ... 219
6.4 ... Mathematische Funktionen ... 239
6.5 ... Allgemeine Funktionen ... 255
6.6 ... Eigene Funktionen erstellen: Berechnung der Fakultät ... 274
7. Gruppenfunktionen ... 279
7.1 ... Die Standardgruppenfunktionen ... 280
7.2 ... Gruppierung von Gruppenfunktionen ... 285
7.3 ... Spezielle Gruppenfunktionen ... 300
7.4 ... Wenn ungefähr ausreicht ... 308
7.5 ... Übungen ... 309
8. Unterabfragen ... 311
8.1 ... Die Unterabfrage in der WHERE-Klausel ... 311
8.2 ... Die Unterabfrage in der FROM-Klausel (Inner View) ... 322
8.3 ... Unterabfragen und Joins ... 329
8.4 ... Funktionen in der WITH-Klausel ... 334
8.5 ... Übungen ... 336
9. Analytische Funktionen ... 337
9.1 ... Die Idee der analytischen Funktionen ... 337
9.2 ... Gruppenfunktionen als analytische Funktionen ... 343
9.3 ... Analytische Rangfunktionen ... 354
9.4 ... Zusammenfassung ... 370
9.5 ... Übungen ... 371
TEIL III. Datenmanipulation und Erzeugung von Datenbankobjekten ... 373
10. Datenmanipulation ... 375
10.1 ... Die INSERT-Anweisung ... 376
10.2 ... Die UPDATE-Anweisung ... 382
10.3 ... Die DELETE-Anweisung ... 389
10.4 ... Die MERGE-Anweisung ... 390
10.5 ... Exkurs: Flashback ... 401
10.6 ... Sequenzen und Trigger ... 403
10.7 ... Ihr Sicherheitsnetz -- die Transaktion ... 409
10.8 ... Fehlerbehandlung während der Datenmanipulation ... 412
10.9 ... Multi-Table-Insert ... 420
11. Views erstellen ... 429
11.1 ... »Normale« Views ... 429
11.2 ... Einsatzbereiche von Views ... 440
11.3 ... Wer sollte Views verwenden? ... 445
11.4 ... Materialized View ... 447
12. Tabellen erstellen ... 463
12.1 ... Einfache Tabellen erstellen ... 463
12.2 ... Datentypen ... 480
12.3 ... Domänen ... 493
12.4 ... Annotationen und Kommentare ... 504
12.5 ... Weitere Tabellentypen ... 507
12.6 ... Erweiterung zur »aktiven Tabelle« ... 520
13. Indizes erstellen ... 527
13.1 ... Was ist ein Index? ... 528
13.2 ... Indextypen bei Oracle ... 532
13.3 ... Spezielle Indextypen ... 537
14. Aufbau einer Oracle-Datenbank ... 553
14.1 ... Wie arbeitet eine Oracle-Datenbank? ... 553
14.2 ... Datensicherheit ... 564
14.3 ... Zeichensatzcodierung ... 579
15. Anwendungsbeispiele ... 585
15.1 ... Delta-View ... 585
15.2 ... Dubletten bereinigen ... 596
15.3 ... Entscheidungstabellen ... 601
15.4 ... Entscheidungstabelle 2: »Expertensystem« ... 608
TEIL IV. Spezielle Abfragetechniken ... 613
16. Umgang mit Datum und Zeit ... 615
16.1 ... Erzeugung von Datumstypen ... 615
16.2 ... Erzeugung von Intervallen ... 622
16.3 ... Konvertierung von Zeichenketten in Datumstypen ... 626
16.4 ... Zeilenfunktionen für Zeitstempel mit Zeitzonen ... 632
16.5 ... Abfragen über die Zeit: Flashback ... 635
17. Hierarchische Abfragen ... 641
17.1 ... Das Problem ... 641
17.2 ... Lösung mit der CONNECT BY-Klausel ... 644
17.3 ... Erweiterungen der CONNECT BY-Klausel ... 651
17.4 ... Hierarchische Abfragen nach ISO-Standard ... 662
18. Arbeiten mit XML ... 675
18.1 ... XML-Instanzen mit SQL/XML erzeugen ... 678
18.2 ... Bearbeitung von XML-Instanzen in SQL/XML ... 696
18.3 ... Extraktion relationaler Daten aus XML ... 702
18.4 ... Speicherung von XML in der Datenbank ... 707
18.5 ... Der Datentyp XMLTYPE ... 716
19. JSON ... 725
19.1 ... Übersicht über JSON ... 725
19.2 ... Oracles JSON-Unterstützung ... 728
19.3 ... Abfragen gegen JSON-Instanzen ... 731
19.4 ... JSON-Funktionen und -Operatoren ... 736
19.5 ... Erzeugung von JSON aus relationalen Daten ... 742
19.6 ... Relationale Daten aus JSON extrahieren ... 752
19.7 ... JSON-Instanzen bearbeiten ... 758
19.8 ... JSON Data Guide ... 764
19.9 ... JSON-Schema ... 767
19.10 ... JSON Duality Views ... 770
20. Pivotieren von Daten ... 777
20.1 ... Pivotierung mit Gruppenfunktionen ... 778
20.2 ... Pivotierung mit der PIVOT-Klausel ... 780
20.3 ... Unpivotierung mit Gruppenfunktionen ... 787
20.4 ... Unpivotierung mit der UNPIVOT-Klausel ... 790
21. Row Pattern Matching ... 793
21.1 ... Die Grundlagen ... 793
21.2 ... Syntaktische Grundlagen ... 795
21.3 ... Erweiterungen zur Grundsyntax ... 801
21.4 ... Weitere Beispiele und Optionen ... 809
21.5 ... Zusammenfassung ... 817
22. Die MODEL-Klausel ... 819
22.1 ... Lösung des Problems mit der MODEL-Klausel ... 822
22.2 ... Partitionierung, Dimension und Messung ... 825
22.3 ... Regeln ... 828
22.4 ... Weiterführende Konzepte ... 838
22.5 ... Bewertung der MODEL-Klausel ... 846
23. SQL Property Graphen ... 849
23.1 ... Einführung in Graphen ... 849
23.2 ... Erstellen von Property-Graphen ... 851
23.3 ... SQL/PGQ ... 857
23.4 ... Beurteilung ... 863
24. Objektorientierung in der Oracle-Datenbank ... 865
24.1 ... Einführung in die Objektorientierung ... 866
24.2 ... SQL-Typen ... 873
24.3 ... Multiset-Operatoren und -Bedingungen ... 887
24.4 ... Objektorientierte Tabellen ... 890
24.5 ... Beurteilung ... 902
25. Performanzoptimierung von SQL ... 905
25.1 ... Sagen Sie der Datenbank, was Sie wollen! ... 905
25.2 ... Nutzen Sie alle verfügbaren Optionen von SQL ... 909
25.3 ... Vermeiden Sie Umgebungswechsel ... 913
25.4 ... Die Verwendung von Indizes ... 921
Datenbankmodellierung ... 933
26. Die Grundlagen der Datenmodellierung ... 935
26.1 ... Normalisierung ... 935
26.2 ... Tabellendesign ... 939
26.3 ... Primärschlüssel ... 942
26.4 ... Fremdschlüssel ... 946
26.5 ... Überlegungen zu Datentypen und zur Namenskonvention in Tabellen ... 947
26.6 ... Zusammenfassung ... 955
27. Datenmodellierung von Datum und Zeit ... 959
27.1 ... Datumsbereiche ... 959
27.2 ... Analyse gegen eine Zeitdimension ... 975
27.3 ... Historisierung und Logging ... 979
28. Speicherung hierarchischer Daten ... 995
28.1 ... Hierarchie mittels zusätzlicher Hierarchietabelle ... 995
28.2 ... Closure Table ... 999
28.3 ... Weitere Modelle ... 1003
28.4 ... Zusammenfassung ... 1004
29. Datenwarenhaus ... 1007
29.1 ... Star-Schema und Indizierung ... 1010
29.2 ... Dimensionen ... 1013
29.3 ... Arbeiten mit dem Star-Schema ... 1017
29.4 ... Analytische Views ... 1022
29.5 ... Zusammenfassung ... 1035
30. Abbildung objektorientierter Strukturen ... 1037
30.1 ... Vererbung ... 1038
30.2 ... Kollektionen ... 1043
30.3 ... Alternative Lösungsansätze ... 1044
30.4 ... Zusammenfassung ... 1046
31. Internationalisierung ... 1049
31.1 ... Oracle im multilingualen Kontext ... 1049
31.2 ... Datenmodelle zur Übersetzung von Stammdaten ... 1057
Index ... 1073
1. Materialien zum Buch ... 23
1. Einführung ... 25
1.1 ... Für wen ist dieses Buch geschrieben? ... 25
1.2 ... Aufbau des Buches ... 26
1.3 ... Anmerkung zur vierten Auflage ... 35
1.4 ... Anmerkung zur dritten Auflage ... 36
1.5 ... Anmerkung zur zweiten Auflage ... 37
1.6 ... Danksagung ... 38
TEIL I. Einführung und Grundlagen ... 39
2. Verwendete Werkzeuge und Skripte ... 41
2.1 ... Aufsetzen einer Beispieldatenbank ... 41
2.2 ... SQL Developer ... 44
2.3 ... Die Datenbankbenutzer ... 49
2.4 ... Online-Dokumentation und weiterführende Literatur ... 50
3. Konzept einer relationalen Datenbank ... 53
3.1 ... Die Idee der relationalen Speicherung ... 53
3.2 ... SQL -- die »Lingua franca« der Datenbank ... 70
3.3 ... Analyse vorhandener Datenmodelle ... 78
TEIL II. Die SELECT-Anweisung ... 85
4. Grundlagen: Auswahl und Projektion ... 87
4.1 ... Projektion ... 87
4.2 ... Auswahl ... 102
4.3 ... Sortieren von Zeilenmengen ... 116
4.4 ... Fallunterscheidungen ... 120
4.5 ... Die Klausel ROW LIMITING ... 128
4.6 ... Pseudospalten ... 131
4.7 ... Kommentare ... 137
4.8 ... Der NULL-Wert ... 139
4.9 ... Übungen ... 146
5. Daten aus mehreren Tabellen lesen: Joins ... 147
5.1 ... Einführung in Joins ... 148
5.2 ... Inner Join ... 149
5.3 ... Outer Join ... 160
5.4 ... Anti-Join, Semi-Join, Self-Join und Natural Join ... 169
5.5 ... Mengenoperationen mit UNION, MINUS und INTERSECT ... 175
5.6 ... Übungen ... 182
5.7 ... Zusatz: Weiterführende Join-Konzepte ... 183
6. Zeilenfunktionen ... 191
6.1 ... Grundsätzliches zu Funktionen ... 191
6.2 ... Zeichenfunktionen ... 195
6.3 ... Datumsfunktionen ... 219
6.4 ... Mathematische Funktionen ... 239
6.5 ... Allgemeine Funktionen ... 255
6.6 ... Eigene Funktionen erstellen: Berechnung der Fakultät ... 274
7. Gruppenfunktionen ... 279
7.1 ... Die Standardgruppenfunktionen ... 280
7.2 ... Gruppierung von Gruppenfunktionen ... 285
7.3 ... Spezielle Gruppenfunktionen ... 300
7.4 ... Wenn ungefähr ausreicht ... 308
7.5 ... Übungen ... 309
8. Unterabfragen ... 311
8.1 ... Die Unterabfrage in der WHERE-Klausel ... 311
8.2 ... Die Unterabfrage in der FROM-Klausel (Inner View) ... 322
8.3 ... Unterabfragen und Joins ... 329
8.4 ... Funktionen in der WITH-Klausel ... 334
8.5 ... Übungen ... 336
9. Analytische Funktionen ... 337
9.1 ... Die Idee der analytischen Funktionen ... 337
9.2 ... Gruppenfunktionen als analytische Funktionen ... 343
9.3 ... Analytische Rangfunktionen ... 354
9.4 ... Zusammenfassung ... 370
9.5 ... Übungen ... 371
TEIL III. Datenmanipulation und Erzeugung von Datenbankobjekten ... 373
10. Datenmanipulation ... 375
10.1 ... Die INSERT-Anweisung ... 376
10.2 ... Die UPDATE-Anweisung ... 382
10.3 ... Die DELETE-Anweisung ... 389
10.4 ... Die MERGE-Anweisung ... 390
10.5 ... Exkurs: Flashback ... 401
10.6 ... Sequenzen und Trigger ... 403
10.7 ... Ihr Sicherheitsnetz -- die Transaktion ... 409
10.8 ... Fehlerbehandlung während der Datenmanipulation ... 412
10.9 ... Multi-Table-Insert ... 420
11. Views erstellen ... 429
11.1 ... »Normale« Views ... 429
11.2 ... Einsatzbereiche von Views ... 440
11.3 ... Wer sollte Views verwenden? ... 445
11.4 ... Materialized View ... 447
12. Tabellen erstellen ... 463
12.1 ... Einfache Tabellen erstellen ... 463
12.2 ... Datentypen ... 480
12.3 ... Domänen ... 493
12.4 ... Annotationen und Kommentare ... 504
12.5 ... Weitere Tabellentypen ... 507
12.6 ... Erweiterung zur »aktiven Tabelle« ... 520
13. Indizes erstellen ... 527
13.1 ... Was ist ein Index? ... 528
13.2 ... Indextypen bei Oracle ... 532
13.3 ... Spezielle Indextypen ... 537
14. Aufbau einer Oracle-Datenbank ... 553
14.1 ... Wie arbeitet eine Oracle-Datenbank? ... 553
14.2 ... Datensicherheit ... 564
14.3 ... Zeichensatzcodierung ... 579
15. Anwendungsbeispiele ... 585
15.1 ... Delta-View ... 585
15.2 ... Dubletten bereinigen ... 596
15.3 ... Entscheidungstabellen ... 601
15.4 ... Entscheidungstabelle 2: »Expertensystem« ... 608
TEIL IV. Spezielle Abfragetechniken ... 613
16. Umgang mit Datum und Zeit ... 615
16.1 ... Erzeugung von Datumstypen ... 615
16.2 ... Erzeugung von Intervallen ... 622
16.3 ... Konvertierung von Zeichenketten in Datumstypen ... 626
16.4 ... Zeilenfunktionen für Zeitstempel mit Zeitzonen ... 632
16.5 ... Abfragen über die Zeit: Flashback ... 635
17. Hierarchische Abfragen ... 641
17.1 ... Das Problem ... 641
17.2 ... Lösung mit der CONNECT BY-Klausel ... 644
17.3 ... Erweiterungen der CONNECT BY-Klausel ... 651
17.4 ... Hierarchische Abfragen nach ISO-Standard ... 662
18. Arbeiten mit XML ... 675
18.1 ... XML-Instanzen mit SQL/XML erzeugen ... 678
18.2 ... Bearbeitung von XML-Instanzen in SQL/XML ... 696
18.3 ... Extraktion relationaler Daten aus XML ... 702
18.4 ... Speicherung von XML in der Datenbank ... 707
18.5 ... Der Datentyp XMLTYPE ... 716
19. JSON ... 725
19.1 ... Übersicht über JSON ... 725
19.2 ... Oracles JSON-Unterstützung ... 728
19.3 ... Abfragen gegen JSON-Instanzen ... 731
19.4 ... JSON-Funktionen und -Operatoren ... 736
19.5 ... Erzeugung von JSON aus relationalen Daten ... 742
19.6 ... Relationale Daten aus JSON extrahieren ... 752
19.7 ... JSON-Instanzen bearbeiten ... 758
19.8 ... JSON Data Guide ... 764
19.9 ... JSON-Schema ... 767
19.10 ... JSON Duality Views ... 770
20. Pivotieren von Daten ... 777
20.1 ... Pivotierung mit Gruppenfunktionen ... 778
20.2 ... Pivotierung mit der PIVOT-Klausel ... 780
20.3 ... Unpivotierung mit Gruppenfunktionen ... 787
20.4 ... Unpivotierung mit der UNPIVOT-Klausel ... 790
21. Row Pattern Matching ... 793
21.1 ... Die Grundlagen ... 793
21.2 ... Syntaktische Grundlagen ... 795
21.3 ... Erweiterungen zur Grundsyntax ... 801
21.4 ... Weitere Beispiele und Optionen ... 809
21.5 ... Zusammenfassung ... 817
22. Die MODEL-Klausel ... 819
22.1 ... Lösung des Problems mit der MODEL-Klausel ... 822
22.2 ... Partitionierung, Dimension und Messung ... 825
22.3 ... Regeln ... 828
22.4 ... Weiterführende Konzepte ... 838
22.5 ... Bewertung der MODEL-Klausel ... 846
23. SQL Property Graphen ... 849
23.1 ... Einführung in Graphen ... 849
23.2 ... Erstellen von Property-Graphen ... 851
23.3 ... SQL/PGQ ... 857
23.4 ... Beurteilung ... 863
24. Objektorientierung in der Oracle-Datenbank ... 865
24.1 ... Einführung in die Objektorientierung ... 866
24.2 ... SQL-Typen ... 873
24.3 ... Multiset-Operatoren und -Bedingungen ... 887
24.4 ... Objektorientierte Tabellen ... 890
24.5 ... Beurteilung ... 902
25. Performanzoptimierung von SQL ... 905
25.1 ... Sagen Sie der Datenbank, was Sie wollen! ... 905
25.2 ... Nutzen Sie alle verfügbaren Optionen von SQL ... 909
25.3 ... Vermeiden Sie Umgebungswechsel ... 913
25.4 ... Die Verwendung von Indizes ... 921
Datenbankmodellierung ... 933
26. Die Grundlagen der Datenmodellierung ... 935
26.1 ... Normalisierung ... 935
26.2 ... Tabellendesign ... 939
26.3 ... Primärschlüssel ... 942
26.4 ... Fremdschlüssel ... 946
26.5 ... Überlegungen zu Datentypen und zur Namenskonvention in Tabellen ... 947
26.6 ... Zusammenfassung ... 955
27. Datenmodellierung von Datum und Zeit ... 959
27.1 ... Datumsbereiche ... 959
27.2 ... Analyse gegen eine Zeitdimension ... 975
27.3 ... Historisierung und Logging ... 979
28. Speicherung hierarchischer Daten ... 995
28.1 ... Hierarchie mittels zusätzlicher Hierarchietabelle ... 995
28.2 ... Closure Table ... 999
28.3 ... Weitere Modelle ... 1003
28.4 ... Zusammenfassung ... 1004
29. Datenwarenhaus ... 1007
29.1 ... Star-Schema und Indizierung ... 1010
29.2 ... Dimensionen ... 1013
29.3 ... Arbeiten mit dem Star-Schema ... 1017
29.4 ... Analytische Views ... 1022
29.5 ... Zusammenfassung ... 1035
30. Abbildung objektorientierter Strukturen ... 1037
30.1 ... Vererbung ... 1038
30.2 ... Kollektionen ... 1043
30.3 ... Alternative Lösungsansätze ... 1044
30.4 ... Zusammenfassung ... 1046
31. Internationalisierung ... 1049
31.1 ... Oracle im multilingualen Kontext ... 1049
31.2 ... Datenmodelle zur Übersetzung von Stammdaten ... 1057
Index ... 1073
1. Einführung ... 25
1.1 ... Für wen ist dieses Buch geschrieben? ... 25
1.2 ... Aufbau des Buches ... 26
1.3 ... Anmerkung zur vierten Auflage ... 35
1.4 ... Anmerkung zur dritten Auflage ... 36
1.5 ... Anmerkung zur zweiten Auflage ... 37
1.6 ... Danksagung ... 38
TEIL I. Einführung und Grundlagen ... 39
2. Verwendete Werkzeuge und Skripte ... 41
2.1 ... Aufsetzen einer Beispieldatenbank ... 41
2.2 ... SQL Developer ... 44
2.3 ... Die Datenbankbenutzer ... 49
2.4 ... Online-Dokumentation und weiterführende Literatur ... 50
3. Konzept einer relationalen Datenbank ... 53
3.1 ... Die Idee der relationalen Speicherung ... 53
3.2 ... SQL -- die »Lingua franca« der Datenbank ... 70
3.3 ... Analyse vorhandener Datenmodelle ... 78
TEIL II. Die SELECT-Anweisung ... 85
4. Grundlagen: Auswahl und Projektion ... 87
4.1 ... Projektion ... 87
4.2 ... Auswahl ... 102
4.3 ... Sortieren von Zeilenmengen ... 116
4.4 ... Fallunterscheidungen ... 120
4.5 ... Die Klausel ROW LIMITING ... 128
4.6 ... Pseudospalten ... 131
4.7 ... Kommentare ... 137
4.8 ... Der NULL-Wert ... 139
4.9 ... Übungen ... 146
5. Daten aus mehreren Tabellen lesen: Joins ... 147
5.1 ... Einführung in Joins ... 148
5.2 ... Inner Join ... 149
5.3 ... Outer Join ... 160
5.4 ... Anti-Join, Semi-Join, Self-Join und Natural Join ... 169
5.5 ... Mengenoperationen mit UNION, MINUS und INTERSECT ... 175
5.6 ... Übungen ... 182
5.7 ... Zusatz: Weiterführende Join-Konzepte ... 183
6. Zeilenfunktionen ... 191
6.1 ... Grundsätzliches zu Funktionen ... 191
6.2 ... Zeichenfunktionen ... 195
6.3 ... Datumsfunktionen ... 219
6.4 ... Mathematische Funktionen ... 239
6.5 ... Allgemeine Funktionen ... 255
6.6 ... Eigene Funktionen erstellen: Berechnung der Fakultät ... 274
7. Gruppenfunktionen ... 279
7.1 ... Die Standardgruppenfunktionen ... 280
7.2 ... Gruppierung von Gruppenfunktionen ... 285
7.3 ... Spezielle Gruppenfunktionen ... 300
7.4 ... Wenn ungefähr ausreicht ... 308
7.5 ... Übungen ... 309
8. Unterabfragen ... 311
8.1 ... Die Unterabfrage in der WHERE-Klausel ... 311
8.2 ... Die Unterabfrage in der FROM-Klausel (Inner View) ... 322
8.3 ... Unterabfragen und Joins ... 329
8.4 ... Funktionen in der WITH-Klausel ... 334
8.5 ... Übungen ... 336
9. Analytische Funktionen ... 337
9.1 ... Die Idee der analytischen Funktionen ... 337
9.2 ... Gruppenfunktionen als analytische Funktionen ... 343
9.3 ... Analytische Rangfunktionen ... 354
9.4 ... Zusammenfassung ... 370
9.5 ... Übungen ... 371
TEIL III. Datenmanipulation und Erzeugung von Datenbankobjekten ... 373
10. Datenmanipulation ... 375
10.1 ... Die INSERT-Anweisung ... 376
10.2 ... Die UPDATE-Anweisung ... 382
10.3 ... Die DELETE-Anweisung ... 389
10.4 ... Die MERGE-Anweisung ... 390
10.5 ... Exkurs: Flashback ... 401
10.6 ... Sequenzen und Trigger ... 403
10.7 ... Ihr Sicherheitsnetz -- die Transaktion ... 409
10.8 ... Fehlerbehandlung während der Datenmanipulation ... 412
10.9 ... Multi-Table-Insert ... 420
11. Views erstellen ... 429
11.1 ... »Normale« Views ... 429
11.2 ... Einsatzbereiche von Views ... 440
11.3 ... Wer sollte Views verwenden? ... 445
11.4 ... Materialized View ... 447
12. Tabellen erstellen ... 463
12.1 ... Einfache Tabellen erstellen ... 463
12.2 ... Datentypen ... 480
12.3 ... Domänen ... 493
12.4 ... Annotationen und Kommentare ... 504
12.5 ... Weitere Tabellentypen ... 507
12.6 ... Erweiterung zur »aktiven Tabelle« ... 520
13. Indizes erstellen ... 527
13.1 ... Was ist ein Index? ... 528
13.2 ... Indextypen bei Oracle ... 532
13.3 ... Spezielle Indextypen ... 537
14. Aufbau einer Oracle-Datenbank ... 553
14.1 ... Wie arbeitet eine Oracle-Datenbank? ... 553
14.2 ... Datensicherheit ... 564
14.3 ... Zeichensatzcodierung ... 579
15. Anwendungsbeispiele ... 585
15.1 ... Delta-View ... 585
15.2 ... Dubletten bereinigen ... 596
15.3 ... Entscheidungstabellen ... 601
15.4 ... Entscheidungstabelle 2: »Expertensystem« ... 608
TEIL IV. Spezielle Abfragetechniken ... 613
16. Umgang mit Datum und Zeit ... 615
16.1 ... Erzeugung von Datumstypen ... 615
16.2 ... Erzeugung von Intervallen ... 622
16.3 ... Konvertierung von Zeichenketten in Datumstypen ... 626
16.4 ... Zeilenfunktionen für Zeitstempel mit Zeitzonen ... 632
16.5 ... Abfragen über die Zeit: Flashback ... 635
17. Hierarchische Abfragen ... 641
17.1 ... Das Problem ... 641
17.2 ... Lösung mit der CONNECT BY-Klausel ... 644
17.3 ... Erweiterungen der CONNECT BY-Klausel ... 651
17.4 ... Hierarchische Abfragen nach ISO-Standard ... 662
18. Arbeiten mit XML ... 675
18.1 ... XML-Instanzen mit SQL/XML erzeugen ... 678
18.2 ... Bearbeitung von XML-Instanzen in SQL/XML ... 696
18.3 ... Extraktion relationaler Daten aus XML ... 702
18.4 ... Speicherung von XML in der Datenbank ... 707
18.5 ... Der Datentyp XMLTYPE ... 716
19. JSON ... 725
19.1 ... Übersicht über JSON ... 725
19.2 ... Oracles JSON-Unterstützung ... 728
19.3 ... Abfragen gegen JSON-Instanzen ... 731
19.4 ... JSON-Funktionen und -Operatoren ... 736
19.5 ... Erzeugung von JSON aus relationalen Daten ... 742
19.6 ... Relationale Daten aus JSON extrahieren ... 752
19.7 ... JSON-Instanzen bearbeiten ... 758
19.8 ... JSON Data Guide ... 764
19.9 ... JSON-Schema ... 767
19.10 ... JSON Duality Views ... 770
20. Pivotieren von Daten ... 777
20.1 ... Pivotierung mit Gruppenfunktionen ... 778
20.2 ... Pivotierung mit der PIVOT-Klausel ... 780
20.3 ... Unpivotierung mit Gruppenfunktionen ... 787
20.4 ... Unpivotierung mit der UNPIVOT-Klausel ... 790
21. Row Pattern Matching ... 793
21.1 ... Die Grundlagen ... 793
21.2 ... Syntaktische Grundlagen ... 795
21.3 ... Erweiterungen zur Grundsyntax ... 801
21.4 ... Weitere Beispiele und Optionen ... 809
21.5 ... Zusammenfassung ... 817
22. Die MODEL-Klausel ... 819
22.1 ... Lösung des Problems mit der MODEL-Klausel ... 822
22.2 ... Partitionierung, Dimension und Messung ... 825
22.3 ... Regeln ... 828
22.4 ... Weiterführende Konzepte ... 838
22.5 ... Bewertung der MODEL-Klausel ... 846
23. SQL Property Graphen ... 849
23.1 ... Einführung in Graphen ... 849
23.2 ... Erstellen von Property-Graphen ... 851
23.3 ... SQL/PGQ ... 857
23.4 ... Beurteilung ... 863
24. Objektorientierung in der Oracle-Datenbank ... 865
24.1 ... Einführung in die Objektorientierung ... 866
24.2 ... SQL-Typen ... 873
24.3 ... Multiset-Operatoren und -Bedingungen ... 887
24.4 ... Objektorientierte Tabellen ... 890
24.5 ... Beurteilung ... 902
25. Performanzoptimierung von SQL ... 905
25.1 ... Sagen Sie der Datenbank, was Sie wollen! ... 905
25.2 ... Nutzen Sie alle verfügbaren Optionen von SQL ... 909
25.3 ... Vermeiden Sie Umgebungswechsel ... 913
25.4 ... Die Verwendung von Indizes ... 921
Datenbankmodellierung ... 933
26. Die Grundlagen der Datenmodellierung ... 935
26.1 ... Normalisierung ... 935
26.2 ... Tabellendesign ... 939
26.3 ... Primärschlüssel ... 942
26.4 ... Fremdschlüssel ... 946
26.5 ... Überlegungen zu Datentypen und zur Namenskonvention in Tabellen ... 947
26.6 ... Zusammenfassung ... 955
27. Datenmodellierung von Datum und Zeit ... 959
27.1 ... Datumsbereiche ... 959
27.2 ... Analyse gegen eine Zeitdimension ... 975
27.3 ... Historisierung und Logging ... 979
28. Speicherung hierarchischer Daten ... 995
28.1 ... Hierarchie mittels zusätzlicher Hierarchietabelle ... 995
28.2 ... Closure Table ... 999
28.3 ... Weitere Modelle ... 1003
28.4 ... Zusammenfassung ... 1004
29. Datenwarenhaus ... 1007
29.1 ... Star-Schema und Indizierung ... 1010
29.2 ... Dimensionen ... 1013
29.3 ... Arbeiten mit dem Star-Schema ... 1017
29.4 ... Analytische Views ... 1022
29.5 ... Zusammenfassung ... 1035
30. Abbildung objektorientierter Strukturen ... 1037
30.1 ... Vererbung ... 1038
30.2 ... Kollektionen ... 1043
30.3 ... Alternative Lösungsansätze ... 1044
30.4 ... Zusammenfassung ... 1046
31. Internationalisierung ... 1049
31.1 ... Oracle im multilingualen Kontext ... 1049
31.2 ... Datenmodelle zur Übersetzung von Stammdaten ... 1057
Index ... 1073