Sieben | Oracle SQL | E-Book | www2.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



Unverzichtbar für jeden Oracle-Datenbankentwickler!

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

  • Einführung, Grundlagen, Referenz
  • Inkl. Transaktionsverwaltung, Rechtevergabe, Optimierung
  • Erweiterte SQL-Funktionalität, SQL/JSON, analytische Funktionen, Datenbank-Modellierung

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