Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Seit ihrer ersten Einführung in den 1970er Jahren hat sich die Structured Query Language (SQL) Hand in Hand mit dem Informationsboom entwickelt. Daher ist sie die am weitesten verbreitete Sprache zur Verwaltung und Abfrage relationaler Datenbanken. Viele Softwareunternehmen und Entwickler, darunter auch die Vertreter der Open-Source- und NoSQL-Bewegung, haben ihre eigenen SQL-Dialekte entwickelt, um auf spezielle Anforderungen zu reagieren. Gleichzeitig haben die Standardisierungsgremien eine wachsende Liste von Funktionen kodifiziert.
SQL in a Nutshell, 4. Auflage, beschreibt die neueste Version des SQL-Standards - SQL:2016 - für viele SQL-Befehle und geht dann detailliert darauf ein, wie verschiedene Plattformen den jeweiligen Befehl implementieren. (Obwohl die Standardisierungsgremien SQL:2019 veröffentlicht haben, liegen die neuen Spezifikationen hauptsächlich im Bereich der multidimensionalen Arrays, die von den großen Anbietern noch nicht implementiert wurden. Mehr darüber, wie SQL in Verbindung mit diesen Arrays verwendet werden kann, erfährst du auf der ISO-Website). In diesem Buch findest du einen kurzen Überblick über das relationale Datenbankmodell, das allen relationalen Datenbankmanagementsystemen (RDBMS) zugrunde liegt, gefolgt von einer ausführlicheren Behandlung der häufig verwendeten SQL-Syntax und -Befehle. Neu in der vierten Auflage sind erweiterte Erklärungen zu Programmierkonzepten, die in den Angeboten der einzelnen Anbieter verwendet werden, wie z.B. Stored Procedures und benutzerdefinierte Funktionen. Und natürlich haben wir beliebte Befehle hinzugefügt, die seit der Veröffentlichung der dritten Auflage hinzugekommen sind.
SQL in a Nutshell, 4. Auflage, bietet einen kompakten Leitfaden zu den beiden am häufigsten installierten kommerziellen Datenbankpaketen auf dem Markt, Oracle und Microsoft SQL Server, sowie zu den drei am häufigsten installierten Open-Source-Datenbanken: MySQL, PostgreSQL und MariaDB (eine Abspaltung von MySQL).
In diesem Buch werden folgende Sprach- und Datenbankversionen behandelt:
SQL:2016 Standard-Syntax
MySQL 8 und MariaDB 10.5
Oracle Datenbank 19c
PostgreSQL 14
Microsoft SQL Server 2019
Warum dieses Buch?
Die wichtigste und maßgebliche Informationsquelle für jedes relationale Datenbankpaket ist die offizielle Dokumentation, zusammen mit Hilfedateien, Tutorials, Hinweisen und anderen Informationen, die von den Anbietern selbst bereitgestellt werden. Obwohl die Dokumentation eines jeden Anbieters die erste Anlaufstelle für Entwickler und Datenbankadministratoren sein sollte, hat die offizielle Dokumentation einige Einschränkungen:
Er beschreibt die SQL-Implementierung des Anbieters, ohne einen Hinweis darauf zu geben, wie gut diese Implementierung den SQL-Standard erfüllt.
Er deckt nur das spezifische Produkt des Anbieters ab, ohne auf mögliche Probleme bei der Übersetzung, Migration oder Integration zwischen verschiedenen Anbietern einzugehen.
Es behandelt die einzelnen Befehle oft unerbittlich detailliert, wodurch die häufigsten Anwendungsfälle unklar bleiben.
In der Regel werden Programmiermethoden in einer überwältigenden Anzahl von unzusammenhängenden Artikeln oder Hilfedateien beschrieben.
Von der offiziellen Dokumentation eines Anbieters kann man erwarten, dass sie jeden Aspekt seines Angebots ausführlich erklärt. Darin wird jeder Befehl beschrieben, auch jede obskure Variante, und es werden Hinweise zur Implementierung gegeben. Subjektive Kommentare sind tabu. Wenn du dich jedoch zwischen verschiedenen Datenplattformen bewegst und schnell produktiv sein musst, wirst du selten so viele Details zu all den obskuren Befehlsvarianten benötigen. Stattdessen bist du auf der Suche nach den am besten geeigneten Anwendungen, die du in realen Situationen findest.
Dieses Buch beginnt dort, wo die Herstellerdokumentation aufhört, indem es die Erfahrungen professioneller Datenbankadministratoren und -entwickler zusammenfasst, die diese SQL-Produkte zur Unterstützung komplexer Unternehmensanwendungen eingesetzt haben. Es bietet dir den Vorteil ihrer jahrzehntelangen Erfahrung in einem kompakten und leicht nutzbaren Format. Egal, ob du neu in SQL bist oder SQL schon seit seinen Anfängen verwendest, es gibt immer neue Tipps und Techniken zu lernen. Und wenn du zwischen verschiedenen Datenplattformen wechselst, ist es immer wichtig, Kompatibilitätsprobleme aufzudecken, bevor sie dich beißen.
Wer sollte dieses Buch lesen?
SQL in a Nutshell, 4. Auflage, richtet sich an mehrere Benutzergruppen. Es ist nützlich für Entwickler, die ein prägnantes und handliches SQL-Referenzwerkzeug benötigen; für Entwickler, die von einem SQL-Dialekt zu einem anderen migrieren müssen; und für Datenbankadministratoren (DBAs), die eine Vielzahl von SQL-Anweisungen ausführen müssen, um ihre Unternehmensdatenbanken am Laufen zu halten und Objekte wie Tabellen, Indizes und Ansichten zu erstellen und zu verwalten.
Dieses Buch ist ein Nachschlagewerk, kein Lehrbuch. Der Text ist nicht expositorisch. Wir erklären zum Beispiel nicht das Konzept eines elementaren verschachtelten Schleifenalgorithmus. Stattdessen erklären wir die Funktionsweise des Cursors, wie er in den Standards implementiert ist, und dann die besonderen Fähigkeiten von Cursoren auf jeder Datenbankplattform. Außerdem geben wir Tipps, wie du bei der Verwendung von Cursorn Fallstricke vermeiden und umgehen kannst.
Dieses Buch soll zwar kein Tutorial über SQL oder ein Handbuch für Datenbankarchitekten sein, aber wir behandeln einige einführende Designthemen. Die Kapitel 1 und2 bieten eine knappe Einführung in die Sprache selbst und behandeln die wichtigsten Strukturen, die grundlegende Verwendung und die Geschichte. Wenn du neu in SQL bist, werden dir diese beiden Kapitel den Einstieg erleichtern.
Wie dieses Buch aufgebaut ist
Das Buch ist in 10 Kapitel und einen Anhang unterteilt:
- Kapitel 1, "SQL-Geschichte und Implementierungen"
- Erläutert das relationale Datenbankmodell, beschreibt die aktuellen und früheren SQL-Standards und stellt die in diesem Buch behandelten SQL-Implementierungen vor.
- Kapitel 2, "Grundlegende Konzepte"
- Beschreibt die grundlegenden Konzepte, die für das Verständnis von relationalen Datenbanken und SQL-Befehlen notwendig sind, einschließlich der verschiedenen Syntaxelemente, Datentypen und Beschränkungen.
- Kapitel 3, "Strukturierung deiner Daten"
- Enthält die Befehlsreferenz für SQL-Anweisungen, die
CREATE
,ALTER
undDROP
die verschiedenen Objekte einer relationalen Datenbank wie Tabellen, Ansichten und Schemata beschreiben. Die hier beschriebenen Befehle zur Definition von Datenstrukturen werden als Data Definition Language (DDL)-Anweisungen bezeichnet. - Kapitel 4, "Lesen deiner Daten"
- Behandelt die glorreiche Anweisung
SELECT
und alle optionalen Klauseln und Schlüsselwörter, die für das Lesen von Daten relevant sind. Von Unterabfragen und Joins bis hin zu Cursors und Common Table Expressions (CTEs) - dieses Kapitel befasst sich eingehend mit der am häufigsten verwendeten SQL-Anweisung. - Kapitel 5, "Manipulation deiner Daten"
- Hier findest du Details zu SQL-Anweisungen, mit denen du Daten in einer bestimmten Datenbank manipulieren kannst. Diese werden als Data Manipulation Language (DML)-Anweisungen bezeichnet; dazu gehören
INSERT
,UPDATE
,DELETE
,MERGE
undTRUNCATE
sowieSELECT
(siehe Kapitel 4). - Kapitel 6, "Sichern deiner Daten"
- Erläutert, wie man mit den Data Control Language (DCL)-Anweisungen des SQL-Standards den Zugriff auf Daten kontrolliert und für deren Sicherheit sorgt:
GRANT
,REVOKE
,SET
, und einige andere. - Kapitel 7, "Eingebaute SQL-Funktionen"
- Deckt den gesamten Umfang der eingebauten Funktionen ab, sowohl die im SQL-Standard beschriebenen als auch die von den im Buch behandelten Datenbankplattformen bereitgestellten. Von Funktionen zur Datenverarbeitung über Funktionen zur Konvertierung von Datentypen bis hin zu Funktionen zur Manipulation von Zeichenketten - hier findest du sie alle.
- Kapitel 8, "Eingebaute SQL-Aggregat- und Fensterfunktionen"
- Erläutert die Verwendung und Handhabung von zwei der wichtigsten und leistungsfähigsten Komponenten des SQL-Codes. Aggregatfunktionen bieten die Möglichkeit, Summen zu bilden, den Durchschnitt zu bilden, Mindest- und Höchstwerte zu ermitteln und vieles mehr. Fensterfunktionen sind Funktionen, die Werte aus einem oder mehreren Datensätzen verwenden und für jede Zeile einen Wert zurückgeben. Sie zeichnen sich durch die Verwendung der
OVER
Klausel aus. Dies steht im Gegensatz zu Aggregatfunktionen, die einen einzigen Wert für mehrere Zeilen zurückgeben. - Kapitel 9, "Speichern von Logik in der Datenbank"
- Gibt einen Überblick über wichtige Aspekte von SQL-Code, der zum Schreiben von Stored Procedures, Triggern und benutzerdefinierten Funktionen verwendet wird. In diesem Kapitel findest du Details zu bedingter Steuerung, Variablenhandhabung, Unterroutinen und anderen Aspekten der Entwicklung von datenbankabhängigem Code.
- Kapitel 10, "Flexibel und schemafrei"
- Bietet eine schnelle Einführung in den Umgang mit JSON- und XML-Daten in relationalen Datenbanken.
- Anhang A, "Gemeinsame und plattformspezifische Schlüsselwörter"
- Bietet eine umfassende Liste von Schlüsselwörtern, die vom SQL-Standard und von den verschiedenen in diesem Buch behandelten Datenbankplattformen deklariert werden. Du kannst sie als Referenz verwenden, um nach Wörtern zu suchen, die du nicht für Objekt- oder Variablennamen verwenden solltest.
Wie man dieses Buch benutzt
SQL in a Nutshell, 4. Auflage, ist in erster Linie eine Befehlsreferenz. Daher wirst du es wahrscheinlich benutzen, um eine Vielzahl von SQL-Befehlen und -Funktionen nachzuschlagen. Mit der Dokumentation für den SQL-Standard selbst und vier Datenbankplattformen kann die Beschreibung für jeden Befehl jedoch sehr umfangreich werden.
Um redundante Beschreibungen der einzelnen Befehle und ihrer Varianten für die verschiedenen Datenbankplattformen zu vermeiden, werden die Implementierungen der einzelnen Plattformen mit dem SQL-Standard verglichen, der zum Zeitpunkt der Erstellung des Buches aktuell ist. Wenn die Plattform eine Klausel wie in der SQL-Diskussion beschrieben unterstützt, wird diese Klausel in den Abschnitten, die die Implementierungen des SQL-Standards durch die Anbieter beschreiben, nicht noch einmal wiederholt.
Für jede SQL-Anweisung werden allgemeine und übertragbare Beispiele gegeben. Plattformspezifische Beispiele werden nur gegeben, wenn mindestens ein im Buch behandeltes RDBMS den Befehl unterstützt, was nicht immer der Fall ist, da der SQL-Standard in der Regel der Implementierung durch die Datenbankplattformen vorausgeht. Beispiele, die die einzigartigen Erweiterungen und Verbesserungen der verschiedenen Plattformen, von denen es viele gibt, hervorheben, sind ebenfalls enthalten.
Wir sind uns bewusst, dass unser Ansatz dazu führen kann, dass wir von der Beschreibung der Implementierung eines Befehls auf einer Plattform zurück zur Beschreibung der SQL-Standardsyntax und der Implementierungsdetails springen müssen. Wir waren jedoch der Meinung, dass dies besser ist, als das Buch mit Hunderten von Seiten überflüssigen Inhalts aufzublähen.
Ressourcen
Dieses Buch versucht, eine aktuelle und umfassende Diskussion über den SQL-Standard und seine Umsetzung durch die führenden Datenbankplattformen zu liefern. Das ist jedoch eine große Aufgabe, und es ist, als würde man auf ein bewegliches Ziel schießen. Auch wenn das Buch nützliche Informationen aus mehreren Jahrzehnten enthält, solltest du dich bei den Anbietern der jeweiligen Datenbankplattformen über die neuesten Details informieren. Die folgenden Websites bieten zusätzliche Informationen zu den verschiedenen Plattformen, die in diesem Buch behandelt werden:
- MySQL und MariaDB
- Die MySQL-Website und das MySQL 8.0 Referenzhandbuch sind gute Quellen, ebenso wie die MariaDB-Dokumentation.
- PostgreSQL
- Die PostgreSQL-Website stellt viele nützliche Informationen zum Download bereit und unterhält außerdem Mailinglisten für PostgreSQL-Benutzer. Die Dokumentation für das letzte Major Stable Release von PostgreSQL und die Dokumentation für das kommende Release sind beide gute Ressourcen.
- Oracle
- Auf der Website von Oracle findest du eine großartige Ressource für eingefleischte Oracle-Nutzer sowie die gesamte Oracle-Dokumentation.
- SQL Server
- Die offizielle Microsoft SQL Server-Website und die SQL Server-Dokumentation enthalten die vollständige Dokumentation für SQL Server und sein Cloud-Pendant, Azure SQL.
Änderungen in der vierten Auflage
Einer der wichtigsten Gründe für die Veröffentlichung einer neuen Ausgabe eines Technologiebuchs ist, dass sich die Technologie weiterentwickelt hat. Seit der dritten Auflage dieses Buches wurden drei neue Versionen des ANSI/ISO-Standards veröffentlicht, und die Datenbankplattformen, die das Buch behandelt, haben jeweils mindestens zwei neue Versionen herausgebracht. Deshalb wollen unsere Leserinnen und Leser aktuelle Inhalte zu den neuesten Versionen von SQL, die heute auf dem Markt sind.
Hier sind einige zusätzliche Details zu den Änderungen in dieser vierten Ausgabe:
- Verbesserte Navigation
- In früheren Ausgaben dieses Buches waren alle SQL-Befehle in einem einzigen Kapitel zusammengefasst. Als das Buch im Laufe der Jahre wuchs, wurde das Kapitel über die SQL-Befehle immer unübersichtlicher. Deshalb gibt es in der neuesten Ausgabe jetzt mehrere Kapitel, die nach den traditionellen Kategorien des SQL-Standards unterteilt sind, um die Navigation zu erleichtern.
- Grundlagen der Programmierung
- Während frühere Ausgaben gezeigt haben, wie man eine Stored Procedure, einen Trigger oder ein anderes SQL-Modul programmiert, enthält die vierte Ausgabe ein ganzes Kapitel, das dem Schreiben von strukturiertem prozeduralen Code auf Oracle, SQL Server, MySQL, MariaDB und PostgreSQL gewidmet ist. Die Syntax für Schlüsselwörter wie
IF
Anweisungen undWHILE
Schleifen ist eigentlich nicht Teil des SQL-Standards, aber sie gehören zum Alltag von DBAs und Entwicklern. Deshalb war es sinnvoll, den Lesern einen guten Überblick darüber zu geben, wie man diesen Aspekt der SQL-Kodierung durchführt. - Größere Breite
- SQL ist die lingua franca der Daten und Datenbanken. In gewisser Weise ist sie vergleichbar mit der englischen Sprache, die die beliebteste Zweitsprache der Welt ist. Überall auf der Welt ist Englisch oft die erste Sprache, die ein Mensch nach seiner Muttersprache lernt. Genauso gibt es eine Vielzahl beliebter Programmiersprachen, mit denen Entwickler/innen großartige Arbeit leisten können, die jedoch alle SQL-Code zur Kommunikation mit dem Datenbank-Backend enthalten.
- Mehr Beispiele
- Man kann nie zu viele Beispiele haben. Wir haben unser ohnehin schon großes Set an grundlegenden Beispielen um weitere Codebeispiele erweitert, die die einzigartigen und leistungsstarken Funktionen des SQL-Standards und die Erweiterungen der einzelnen Datenbankplattformen verdeutlichen. Außerdem enthält diese Version Beispiele, die die Funktionen der neueren SQL-Standards, wie die JSON-Unterstützung, veranschaulichen.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
- Wird verwendet, um neue Begriffe einzuführen, zur Hervorhebung, für Dateinamen und Dateierweiterungen und für Benutzer-/Gruppen-/Rollennamen; wird verwendet, um Programmierelemente wie Befehle, Funktionen, Datentypen, Variablen und Werte anzuzeigen; und wird verwendet, um die Namen von Datenbankobjekten wie Tabellen, Spalten und Schemata anzuzeigen.
UPPERCASE CONSTANT WIDTH
- Wird verwendet, um SQL-Schlüsselwörter anzuzeigen, wenn sie im Text vorkommen.
Constant width
- Wird verwendet, um Programmier-Syntax, Code-Fragmente und Beispiele anzuzeigen.
Constant width italic
- Wird verwendet, um Variablen im Code anzuzeigen, die durch vom Benutzer eingegebene Werte ersetzt werden sollen.
Constant width bold
- Wird in Codeabschnitten verwendet, um Teile des Codes hervorzuheben und in Beispielen, um Eingaben von Ergebnissen zu unterscheiden.
Dieses Element steht für einen Tipp oder eine Anregung.
Dieses Element steht für einen allgemeinen Hinweis.
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
O'Reilly Online Learning
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/sql-nutshell-4e aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.
Finde uns auf LinkedIn: https://linkedin.com/company/oreilly-media
Folge uns auf Twitter: https://twitter.com/oreillymedia
Schau uns auf YouTube: https://youtube.com/oreillymedia
Danksagungen
Wir möchten uns an dieser Stelle bei ein paar besonderen Personen bei O'Reilly Media bedanken. Zunächst einmal schulden wir Rita Fernando, der Herausgeberin dieser vierten Ausgabe, und Gary O'Brien, der uns als erster Herausgeber geholfen hat, großen Dank. Alle Mitarbeiter von O'Reilly sind außergewöhnlich, aber Rita ist eine Ausnahme. Sie hat uns mit Rat und Tat zur Seite gestanden und dafür gesorgt, dass wir das, was wir angefangen haben, auch zu Ende bringen. Mit ihrem hilfsbereiten, kooperativen und entspannten Arbeitsstil ist es ein Vergnügen, mit Rita zu arbeiten. Vielen Dank für alles, was du für uns getan hast!
Wir sind auch unseren guten technischen Prüfern und Helfern zu Dank verpflichtet. Ein herzliches Dankeschön an unsere ausgezeichneten technischen Prüfer: Robert de Graaf, Keith Hare, Evelyn Nunez, Caitlin O'Nan und Bert Scalzo. Eure Beiträge haben die Genauigkeit, Lesbarkeit und den Wert dieses Buches erheblich verbessert. Ohne eure Hilfe hätten wir noch viel mehr Probleme mit der Genauigkeit und der Qualität zu lösen gehabt. Außerdem möchten wir unseren Hut vor Daniel Mainle, Faisal Azeem und Stella Zhou ziehen, die uns bei wichtigen Forschungsarbeiten geholfen haben.
Kevin E. Kline's Danksagungen
Viele Menschen haben dazu beigetragen, dass du dieses dicke Buch in den Händen hältst. Mit dieser Notiz möchte ich denjenigen danken, die dazu beigetragen haben, dass dieses Buch Wirklichkeit geworden ist.
Zunächst einmal ein großes Dankeschön an meine beiden großartigen Co-Autoren, Regina und Leo. Es war mir eine große Freude, mit euch an diesem großen Projekt zu arbeiten. Euer Fachwissen, eure Hartnäckigkeit und eure Professionalität haben dieses Projekt erst möglich gemacht. Ich bin sehr dankbar für euch und schätze euch sehr!
Hier ist eine Widmung an meine geliebte Rachel. Aus einem kleinen Samen, der vor so vielen Jahren gepflanzt wurde, ist unser Baum der Liebe und der Freude größer und breiter geworden, als ich es je hätte erwarten können. Kostbarer als Juwelen und wertvoller als Rubine - deine Liebe stärkt mein Herz und meinen Glauben jeden Tag aufs Neue.
Regina Obe und Leo Hsu's Danksagungen
Wir danken unseren beiden Entwicklungsredakteuren: Gary O'Brien, der uns durch die schlimmste Zeit der Pandemie getragen hat, und Rita Fernando, die unser Manuskript zur Fertigstellung gebracht hat. Sie waren unsere Schutzengel, aber auch teuflisch, wenn es nötig war.
Ein großes Dankeschön geht an Evelyn Nunez, die einige der neuen Kapitel akribisch durchgesehen, unsere zahlreichen Fehler korrigiert und fehlende Informationen ergänzt hat .
Wir danken unserer eigenen Caitlin O'Nan, die seit unzähligen Jahren unsere Mitarbeiterin ist. Sie hat das Manuskript durchgesehen und ihre SQL- und Programmierkenntnisse in das Buch eingebracht. Wenn jemand unsere Fehler finden kann, dann ist es Caitlin.
Schließlich danken wir Kevin dafür, dass er uns eingeladen hat, mit ihm zusammen zu schreiben. Das Zitat "Wir standen auf den Schultern eines Riesen" kommt uns in den Sinn. Natürlich wäre diese vierte Ausgabe ohne seine Arbeit an den vorherigen drei Ausgaben nicht möglich gewesen.
Get SQL in a Nutshell, 4. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.