Sieben | Oracle SQL | E-Book | sack.de
E-Book

E-Book, Deutsch, 1089 Seiten

Reihe: Rheinwerk Computing

Sieben Oracle SQL

Das umfassende Handbuch
4. Auflage 2025
ISBN: 978-3-367-10589-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 1089 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-10589-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



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 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


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.
Sieben Oracle SQL jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


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.2    Aufbau des Buches


Das Buch ist in mehrere Teile untergliedert, dem Gedanken folgend, dass ich zunächst die Grundlagen sowohl der Datenbank als auch der Abfragesprache SQL besprechen möchte. Danach folgt ein Teil, der sich mit der Anwendung von SQL in konkreten Einsatzszenarien auseinandersetzt und weitergehende technologische Konzepte erläutert. Zu ausgewählten Kapiteln (zu den einführenden insbesondere) biete ich darüber hinaus Übungen an, deren Lösung Sie mit einer kurzen Darstellung der Strategie online auf www.rheinwerk-verlag.de/6035 finden.

1.2.1    Teil I – Einführung und Grundlagen


Im ersten Teil des Buches werde ich das nötige Vorwissen erläutern, das Sie benötigen, um SQL zu erlernen. Diese Kapitel haben daher noch nichts mit SQL direkt zu tun, bereiten aber die Basis, sowohl technisch als auch vom Verständnis her.

Kapitel 2 – Verwendete Werkzeuge und Skripte

In diesem Kapitel beschreibe ich, wie eine Oracle-Datenbank installiert und konfiguriert wird. Die Beschreibung ist so gehalten, dass Sie eine Datenbank einrichten können, die Sie für die Beispiele des Buches benötigen. Zudem erläutere ich das Programm SQL Developer, mit dem wir in diesem Buch die SQL-Anweisungen erstellen werden.

Kapitel 3 – Konzept einer relationalen Datenbank

Dieses Kapitel erläutert, was eine Datenbank ausmacht und welche Anforderungen an solche Systeme gestellt werden. Wir werden untersuchen, warum es sinnvoll ist, Daten auf Tabellen zu verteilen, und welche grundlegenden Regeln hierbei beachtet werden müssen. Zudem werde ich Ihnen die – überraschend einfachen – Spielregeln für relationale Datenbanken erläutern. Das Kapitel führt aber auch in SQL ein und erläutert, woher diese Sprache kommt und was man damit machen kann. Schließlich können Sie Ihr Wissen an einem bestehenden Datenmodell des Benutzers HR ausprobieren, um zu verstehen, auf welche Weise Datenbanken modelliert werden.

1.2.2    Teil I – Die SELECT-Anweisung


Der zweite Teil des Buches befasst sich mit den Grundlagen der Sprache SQL sowie mit der Syntax des wichtigsten SQL-Befehls, der select-Anweisung, mit deren Hilfe Sie Daten der Datenbank lesen und Auswertungen erstellen können. Alle Kapitel des zweiten Teils enden mit einer kleinen Gruppe von Aufgaben, mit deren Hilfe Sie im Selbststudium Ihr Wissen prüfen können.

Kapitel 4 – Grundlagen: Auswahl und Projektion

Mit diesem Kapitel beginnen wir die Beschäftigung mit der Sprache SQL. Sie werden einfache SQL-Anweisungen schreiben und verstehen. Hier legen wir die syntaktischen Grundlagen, überlegen, wie einzelne Spalten und Zeilen ausgewählt werden können, und beginnen damit, einfache Rechnungen und Operationen an den Daten für eine Auswertung vorzunehmen.

Neben diesen Kernfunktionen werden Sie aber auch bereits leistungsfähigere Fallunterscheidungen anwenden und Pseudospalten, Schlüsselwerte und speziellere Werte, wie etwa den null-Wert, kennenlernen. Gerade dieses letzte Thema wird uns bereits hier in logische Randbereiche führen, die bei der Beschäftigung mit Datenbanken allgegenwärtig sind.

Kapitel 5 – Daten aus mehreren Tabellen lesen: Joins

In diesem Kapitel werden wir die Möglichkeiten, die wir in SQL haben, erweitern, indem wir Daten aus mehreren Tabellen abfragen. Mit Hilfe dieser Fähigkeiten entstehen leistungsfähige Berichte, die für die Arbeit mit Datenbanken unerlässlich sind. Das Mittel hierfür sind die sogenannten Joins, deren verschiedene Varianten in diesem Kapitel besprochen werden. In dieses Kapitel fällt aber auch die Verwendung der Mengenoperationen, die – ähnlich einem Join – Daten aus verschiedenen Tabellen kombinieren.

Kapitel 6 – Zeilenfunktionen

Dieses Kapitel erweitert die Kenntnis von SQL um Zeilenfunktionen, die es ermöglichen, die Daten der Tabelle für einen Bericht aufzuarbeiten, zu ändern oder anders darzustellen. Diese Funktionen werden sehr häufig im Berichtswesen eingesetzt, stellen aber gleichzeitig auch den ersten Bereich dar, in dem sich Datenbanken verschiedener Hersteller voneinander unterscheiden, denn nicht alle Funktionen haben standardisierte Bezeichner.

Das Kapitel dient, im Sinne eines ersten Herangehens an diese Funktionen, als Überblickskapitel, das die Zeilenfunktionen so darstellt, dass der besprochene Funktionsumfang für 90 % der Anweisungen ausreicht. Speziellere Optionen werden dann in späteren Kapiteln besprochen. Die Zeilenfunktionen dieses Kapitels werden in Datums-, Text-, mathematische und allgemeine Funktionen unterteilt. Den Abschluss bildet ein kurzes Beispiel zur Programmierung eigener Funktionen mittels der Programmiersprache PL/SQL.

Kapitel 7 – Gruppenfunktionen

Eine weitere Stufe auf der Komplexitätsleiter stellen die Gruppenfunktionen dar, mit deren Hilfe aus Daten einer Tabelle leistungsfähige Berichte erstellt werden. Wir starten in diesem Kapitel mit den Grundfunktionen zur Summierung, Durchschnittsbildung, zu Maximal- bzw. Minimalfunktionen etc. Doch werden auch weitergehende Konzepte der Gruppenfunktionen besprochen, wie etwa die Gruppierung oder das Filtern von Gruppenfunktionen. Ein Überblick über spezielle Gruppenfunktionen rundet das Kapitel ab.

Kapitel 8 – Unterabfragen

Dieses Kapitel erweitert Ihre Kenntnis über SQL durch Unterabfragen, mit deren Hilfe Hilfsabfragen berechnet werden können, um mit deren Ergebnissen die eigentliche Abfrage beantworten zu können. Die Vermittlung der Fähigkeit, erkennen zu können, wann eine Unterabfrage erforderlich ist, wird der zentrale Schwerpunkt dieses Kapitels sein. Dabei betrachten wir die verschiedenen Formen der Unterabfrage: die skalare, die harmonisierte, aber auch Unterabfragen mit mehreren Zeilen und/oder mehreren Spalten. Zudem werden Sie Unterabfragen in den unterschiedlichsten Klauseln der SQL-Anweisung und die with-Klausel kennenlernen.

Kapitel 9 – Analytische Funktionen

Analytische Funktionen sind für viele, die bereits mit SQL arbeiten, eine Offenbarung, weil sie komplexe Fragestellungen einfacher und performanter lösen können als herkömmliche SQL-Strategien. Dieses Kapitel bespricht diesen Typ Funktion, dabei widmen wir uns der Partitionierung, Sortierung und Filterung über Fensterfunktionen, die für diese Gruppe von Funktionen typisch sind. Schließlich werden die analytischen Funktionen, die nur als solche existieren, besprochen und in Anwendungsszenarien gezeigt.

1.2.3    Teil I – Datenmanipulation und Erzeugung von Datenbankobjekten


Während sich Teil I mit der Syntax und den verschiedenen Formen der select-Anweisung beschäftigt, mit deren Hilfe Daten aus einer Tabelle ausgelesen werden können, werden Sie in Teil I Ihre Kenntnis von SQL durch Anweisungen erweitern, die es Ihnen gestatten, Daten innerhalb der Datenbank zu manipulieren. Zudem sehen wir uns an, auf welche Weise Datenbankobjekte wie Tabellen oder Views erstellt werden.

Kapitel 10 – Datenmanipulation

Den Anfang macht ein Kapitel über die Anweisungen zum Einfügen, Ändern und Löschen von Daten. Neben diesen »klassischen« Anweisungen lernen Sie aber auch die merge-Anweisung kennen, die sehr leistungsfähig ist und für viele Arbeiten eingesetzt werden kann. Sie werden erkennen, dass Sie sehr von dem Wissen profitieren, das Sie sich im zweiten Teil des Buches erarbeitet haben, so dass Sie hier zügig vorankommen werden. Einen gewichtigen Teil dieses Kapitels nimmt aber auch die Diskussion des Transaktionsbegriffs ein, denn dieser Begriff ist für das Verständnis von Datenbanken zentral. Nun werden Sie, nach der allgemeinen Einführung in den Teilen I und II, diesen Begriff konkret im Einsatz sehen. Schließlich zeige ich Ihnen noch, wie Sie mit Fehlern bei der Manipulation sinnvoll umgehen.

Kapitel 11 – Views erstellen

Dieses Kapitel führt in die Arbeit mit Views ein. Diese Datenbankobjekte werde ich über den grünen Klee loben, denn für mich sind Views eines der wichtigsten Hilfsmittel bei der Arbeit mit Datenbanken. Ich werde erläutern, woher meine Begeisterung für Views kommt und wie sie verwendet werden können. Wir werden dabei sowohl einfache als auch komplexe Views besprechen und auch ihre Cousins, die materialisierten Views, darstellen. Eine Diskussion der möglichen Einsatzbereiche rundet das Verständnis ab.

Kapitel 12 – Tabellen erstellen

Konsequenterweise muss natürlich auch das Erstellen von Tabellen besprochen werden. Im Gegensatz zur Erstellung von Views ist bei der Erstellung einer Tabelle jedoch fast immer eine grafische Oberfläche...


Sieben, Jürgen
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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.