SQL – kurz & gut - Alice Zhao - E-Book

SQL – kurz & gut E-Book

Alice Zhao

0,0

Beschreibung

Komprimiertes SQL-Praxiswissen zum Taschenbuchpreis

  • Kompaktes Nachschlagewerk zu typischen Aufgabenstellungen mit SQL
  • Deckt Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL und SQLite ab
  • Jetzt mit Informationen, wie Python und R mit einer relationalen Datenbank verbunden werden
  • Leichterer Einstieg durch das Kapitel »Wie mache ich das?«, das häufig gestellte Fragen zu SQL beantwortet

Wenn Sie bei Ihrer täglichen Arbeit als Datenanalyst, Data Scientist oder Data Engineer SQL verwenden, ist dieses beliebte Taschenbuch das ideale Nachschlagewerk für Sie. Zahlreiche Beispiele verdeutlichen die Vielschichtigkeit der Sprache. Beschrieben werden außerdem wichtige Aspekte von SQL, die in Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL und SQLite zum Einsatz kommen.

In dieser aktualisierten Ausgabe zeigt die Autorin Alice Zhao, wie diese Datenbankmanagementsysteme die SQL-Syntax für Abfragen und Änderungen an einer Datenbank implementieren. Sie finden Näheres zu Datentypen und Konvertierungen, zur Syntax regulärer Ausdrücke, zu Fensterfunktionen, Pivoting und Unpivoting und vieles mehr.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 284

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



3. AUFLAGE

SQL

kurz & gut

Alice Zhao

Deutsche Übersetzung vonKathrin Lichtenberg

Copyright und Urheberrechte:

Die durch die dpunkt.verlag GmbH vertriebenen digitalen Inhalte sind urheberrechtlich geschützt. Der Nutzer verpflichtet sich, die Urheberrechte anzuerkennen und einzuhalten. Es werden keine Urheber-, Nutzungs- und sonstigen Schutzrechte an den Inhalten auf den Nutzer übertragen. Der Nutzer ist nur berechtigt, den abgerufenen Inhalt zu eigenen Zwecken zu nutzen. Er ist nicht berechtigt, den Inhalt im Internet, in Intranets, in Extranets oder sonst wie Dritten zur Verwertung zur Verfügung zu stellen. Eine öffentliche Wiedergabe oder sonstige Weiterveröffentlichung und eine gewerbliche Vervielfältigung der Inhalte wird ausdrücklich ausgeschlossen. Der Nutzer darf Urheberrechtsvermerke, Markenzeichen und andere Rechtsvorbehalte im abgerufenen Inhalt nicht entfernen.

Alice Zhao

Lektorat: Ariane Hesse

Übersetzung: Kathrin Lichtenberg

Copy-Editing: Sibylle Feldmann, www.richtiger-text.de

Satz: III-Satz, www.drei-satz.de

Herstellung: Stefanie Weidner

Umschlaggestaltung: Karen Montgomery und Michael Oreal, www.oreal.de

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

Print

978-3-96009-194-3

PDF

978-3-96010-692-0

ePub

978-3-96010-693-7

mobi

978-3-96010-694-4

3. Auflage 2022

Translation Copyright für die deutschsprachige Ausgabe © 2022 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Authorized German translation of the English edition of SQL Pocket Guide, 4E ISBN 9781492090403 © 2021 Alice Zhao. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.

Dieses Buch erscheint in Kooperation mit O’Reilly Media, Inc. unter dem Imprint »O’REILLY«. O’REILLY ist ein Markenzeichen und eine eingetragene Marke von O’Reilly Media, Inc. und wird mit Einwilligung des Eigentümers verwendet.

Hinweis:

Dieses Buch wurde auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt. Der Umwelt zuliebe verzichten wir auf die Einschweißfolie.

Schreiben Sie uns:

Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen. Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen. Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autorin noch Verlag noch Übersetzerin können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Inhalt

Vorwort

1SQL-Crashkurs

Was ist eine Datenbank?

SQL

NoSQL

Datenbankmanagementsysteme (DBMS)

Eine SQL-Abfrage

SQL-Anweisungen

SQL-Abfragen

Die SELECT-Anweisung

Reihenfolge der Ausführung

Ein Datenmodell

2Wo kann ich SQL-Code schreiben?

RDBMS-Software

Welches RDBMS sollte man wählen?

Was ist ein Terminal-Fenster?

SQLite

MySQL

Oracle

PostgreSQL

SQL Server

Datenbankwerkzeuge

Ein Datenbankwerkzeug mit einer Datenbank verbinden

Andere Programmiersprachen

Python mit einer Datenbank verbinden

R mit einer Datenbank verbinden

3Die Sprache SQL

Vergleich mit anderen Sprachen

ANSI-Standards

SQL-Begriffe

Schlüsselwörter und Funktionen

Bezeichner und Aliasse

Anweisungen und Klauseln

Ausdrücke und Prädikate

Kommentare, Anführungszeichen und Whitespace

Teilsprachen

4SQL-Abfragen: Die Grundlagen

Die SELECT-Klausel

Spalten auswählen

Alle Spalten auswählen

Ausdrücke auswählen

Funktionen auswählen

Aliasse für Spalten

Spalten qualifizieren

Unterabfragen auswählen

DISTINCT

Die FROM-Klausel

Aus mehreren Tabellen

Aus Unterabfragen

Wieso sollte man eine Unterabfrage in der FROM-Klausel benutzen?

Die WHERE-Klausel

Mehrere Prädikate

Auf Unterabfragen filtern

Die GROUP BY-Klausel

Die HAVING-Klausel

Die ORDER BY-Klausel

Die LIMIT-Klausel

5Erzeugen, Aktualisieren und Löschen

Datenbanken

Datenmodell versus Schema

Namen vorhandener Datenbanken anzeigen

Namen der aktuellen Datenbank anzeigen

Zu einer anderen Datenbank wechseln

Eine Datenbank erzeugen

Eine Datenbank löschen

Tabellen anlegen

Eine einfache Tabelle anlegen

Namen vorhandener Tabellen anzeigen

Erzeugen einer Tabelle, die noch nicht existiert

Eine Tabelle mit Constraints erzeugen

Eine Tabelle mit Primär- und Fremdschlüsseln erzeugen

Eine Tabelle mit einem automatisch generierten Feld erzeugen

Die Ergebnisse einer Abfrage in eine Tabelle einfügen

Daten aus einer Textdatei in eine Tabelle einfügen

Tabellen modifizieren

Eine Tabelle oder Spalte umbenennen

Spalten anzeigen, hinzufügen und löschen

Zeilen anzeigen, hinzufügen und löschen

Constraints anzeigen, hinzufügen und modifizieren

Eine Spalte mit Daten aktualisieren

Eine Zeile mit Daten aktualisieren

Datenzeilen mit den Ergebnissen einer Abfrage aktualisieren

Eine Tabelle löschen

Indizes

Vergleich eines Buchindex mit einem SQL-Index

Einen Index erzeugen, um Abfragen zu beschleunigen

Views

Einen View erzeugen, um die Ergebnisse einer Abfrage zu speichern

Transaktionsmanagement

Prüfen Sie vor einem COMMIT genau

Änderungen mit einem ROLLBACK widerrufen

6Datentypen

Wie Sie einen Datentyp wählen

Numerische Daten

Numerische Werte

Integer-Datentypen

Dezimal-Datentypen

Gleitkommadatentypen

String-Daten

String-Werte

Zeichendatentypen

Unicode-Datentypen

Datum/Zeit-Daten

Datum/Zeit-Werte

Datum/Zeit-Datentypen

Andere Daten

Boolesche Daten

Externe Dateien (Bilder, Dokumente usw.)

7Operatoren und Funktionen

Operatoren

Logikoperatoren

Vergleichsoperatoren

Mathematische Operatoren

Aggregatfunktionen

Numerische Funktionen

Mathematische Funktionen anwenden

Generieren von Zufallszahlen

Zahlen runden und trunkieren

Daten in einen numerischen Datentyp konvertieren

String-Funktionen

Die Länge eines Strings ermitteln

Die Groß- und Kleinschreibung eines Strings ändern

Unerwünschte Zeichen rund um einen String wegschneiden

Strings verketten

In einem String nach Text suchen

Einen Teil eines Strings extrahieren

Text in einem String ersetzen

Text aus einem String löschen

Reguläre Ausdrücke verwenden

Daten in einen String-Datentyp konvertieren

Datum/Zeit-Funktionen

Das aktuelle Datum oder die aktuelle Zeit zurückgeben

Ein Datums- oder Zeitintervall addieren oder subtrahieren

Die Differenz zwischen zwei Datums- oder Zeitangaben ermitteln

Einen Teil eines Datums oder einer Zeit extrahieren

Den Wochentag eines Datums ermitteln

Ein Datum auf die nächstgelegene Zeiteinheit runden

Einen String in einen Datum/Zeit-Datentyp konvertieren

Null-Funktionen

Einen alternativen Wert zurückgeben, wenn es einen Null-Wert gibt

8Erweiterte Abfragekonzepte

Case-Anweisungen

Werte basierend auf einer If-Then-Logik für eine einzelne Spalte anzeigen

Werte basierend auf einer If-Then-Logik für mehrere Spalten anzeigen

Gruppieren und Zusammenfassen

GROUP BY-Grundlagen

Zeilen in einem einzigen Wert oder einer einzigen Liste zusammenfassen

ROLLUP, CUBE und GROUPING SETS

Fensterfunktionen

Aggregatfunktion

Fensterfunktion

Die Zeilen in einer Tabelle ordnen

Den ersten Wert in jeder Gruppe zurückliefern

Den zweiten Wert aus jeder Gruppe zurückliefern

Die ersten zwei Werte aus jeder Gruppe zurückliefern

Den Wert der vorhergehenden Zeile zurückliefern

Den gleitenden Durchschnitt berechnen

Die laufende Gesamtsumme berechnen

Pivoting und Unpivoting

Die Werte einer Spalte in mehrere Spalten zerlegen

Die Werte mehrerer Spalten in einer einzigen Spalte auflisten

9Arbeiten mit mehreren Tabellen und Abfragen

Tabellen mit Joins zusammenbringen

Join-Grundlagen und INNER JOIN

LEFT JOIN, RIGHT JOIN und FULL OUTER JOIN

USING und NATURAL JOIN

CROSS JOIN und Self Join

Vereinigungsoperatoren

UNION

EXCEPT und INTERSECT

Common Table Expressions

CTEs versus Unterabfragen

Rekursive CTEs

10Wie mache ich …?

Zeilen finden, die doppelte Werte enthalten

Alle einmaligen Kombinationen zurückliefern

Nur die Zeilen mit doppelt vorhandenen Werten zurückliefern

Zeilen mit einem Maximalwert für eine andere Spalte auswählen

Text aus mehreren Feldern in einem einzigen Feld verketten

Text aus Feldern in einer einzigen Zeile verketten

Text aus Feldern in mehreren Zeilen verketten

Alle Tabellen finden, die einen bestimmten Spaltennamen enthalten

Eine Tabelle aktualisieren, deren ID einer anderen Tabelle entspricht

Index

Vorwort

Warum SQL?

Seit der letzten Ausgabe des SQL Pocket Guide hat sich in der Welt der Daten viel geändert. Die Menge an Daten, die generiert und gesammelt werden, ist explosionsartig angestiegen, und es sind eine ganze Reihe von Werkzeugen und Jobs entstanden, um mit dem Datenaufkommen klarzukommen. Durch all diese Änderungen hindurch ist SQL ein integraler Bestandteil der Datenlandschaft geblieben.

Im Laufe der vergangenen 15 Jahre habe ich als Ingenieurin, Beraterin, Analystin und Datenwissenschaftlerin gearbeitet, und in jeder dieser Rollen habe ich SQL benutzt. Selbst wenn sich meine eigentlichen Verantwortlichkeiten auf ein anderes Werkzeug oder eine andere Fertigkeit konzentrierten, musste ich SQL kennen, um auf die Daten im Unternehmen zuzugreifen.

Wenn es einen Programmiersprachenpreis für die beste Nebenrolle gäbe, wäre SQL ein würdiger Kandidat.

Auch wenn neue Technologien auftauchen, wird immer noch zuerst an SQL gedacht, wenn es um das Arbeiten mit Daten geht. Cloud-basierte Speicherlösungen wie Amazon Redshift und Google BigQuery verlangen von ihren Anwendern, SQL-Abfragen zu schreiben, um Daten abzurufen. Frameworks für die verteilte Datenverarbeitung wie Hadoop und Spark haben die Sidekicks Hive bzw. Spark SQL, die SQL-artige Schnittstellen für Anwenderinnen bieten, um Daten zu analysieren.

SQL gibt es seit mittlerweile fast fünf Jahrzehnten, und es wird auf absehbare Zeit auch nicht verschwinden. Es ist eine der ältesten Programmiersprachen, die heute noch sehr verbreitet ist, und ich freue mich ungemein, das Neueste und Tollste mit Ihnen in diesem Buch zu teilen.

Ziele dieses Buchs

Es gibt bereits viele SQL-Bücher, von Werken für Einsteiger bis zu ausführlichen technischen Spezifikationen für Datenbankadministratoren. Dieses Buch soll nicht alle SQL-Konzepte ausführlich behandeln, sondern ist eine einfache Referenz für Fälle wie diese:

Sie haben irgendeine SQL-Syntax vergessen und müssen sie schnell nachschlagen.

Ihnen sind bei einem neuen Job irgendwelche etwas anderen Datenbankwerkzeuge begegnet, und Sie wollen sich über die feinen Unterschiede informieren.

Sie haben sich in letzter Zeit mit einer anderen Programmiersprache befasst und brauchen eine schnelle Auffrischung in die Arbeitsweise von SQL.

Falls SQL in Ihrem Beruf eine wichtige Nebenrolle spielt, ist dies der perfekte Begleiter für Sie.

Neu in der 4. Auflage

Die 3. Auflage des SQL Pocket Guide von Jonathan Gennick wurde 2010 veröffentlicht und war ein großer Erfolg bei den Leserinnen und Lesern. Ich habe in der 4. Auflage folgende Aktualisierungen vorgenommen:

Die Syntax wurde für Microsoft SQL Server, MySQL, Oracle Database und PostgreSQL aktualisiert. Dafür wurde Db2 von IBM weggelassen, weil seine Popularität abgenommen hat, während SQLite aufgrund seiner zunehmenden Beliebtheit neu hinzugekommen ist.

Die 3. Auflage dieses Buchs war alphabetisch organisiert. Ich habe diese Abschnitte in der 4. Auflage so angeordnet, dass verwandte Konzepte zusammenstehen. Am Ende des Buchs gibt es einen Index, der die Konzepte alphabetisch aufführt.

Da es mittlerweile viele Datenanalysten und Data Scientists gibt, die SQL bei ihrer Arbeit einsetzen, habe ich Abschnitte hinzugefügt, in denen ich beschreibe, wie sich SQL mit Python und R verwenden lässt (beliebte Open-Source-Programmiersprachen). Außerdem gibt es einen SQL-Crashkurs für den schnellen Wiedereinstieg in die Sprache.

Häufig gestellte (SQL-)Fragen

Das letzte Kapitel dieses Buchs heißt »Wie mache ich…?« und enthält Fragen, die von SQL-Anfängern oder Menschen, die SQL eine Weile nicht benutzt haben, oft gestellt werden.

Es ist ein guter Startpunkt, wenn Sie sich nicht an ein bestimmtes Schlüsselwort oder Konzept erinnern können, das Sie suchen. Sie finden dort zum Beispiel solche Fragen:

Wie finde ich die Zeilen, die Duplikate enthalten?Wie wähle ich Zeilen mit dem Maximalwert für eine andere Spalte aus?Wie verkette ich Text aus mehreren Feldern in einem einzigen Feld?

Aufbau dieses Buchs

Dieses Buch ist in drei Abschnitte unterteilt.

Grundkonzepte

Die

Kapitel 1

bis

3

stellen grundlegende Schlüsselwörter, Konzepte und Werkzeuge zum Schreiben von SQL-Code vor.

Kapitel 4

analysiert die einzelnen Klauseln einer SQL-Abfrage.

Datenbankobjekte, Datentypen und Funktionen

Kapitel 5

führt gebräuchliche Möglichkeiten auf, um Objekte in einer Datenbank zu erzeugen und zu verändern.

Kapitel 6

beschreibt gebräuchliche Datentypen, die in SQL eingesetzt werden.

Kapitel 7

listet gebräuchliche Operatoren und Funktionen in SQL auf.

Erweiterte Konzepte

Die

Kapitel 8

und

9

erläutern erweiterte Abfragekonzepte einschließlich Joins, Case-Ausdrücken, Fensterfunktionen usw.

Kapitel 10

demonstriert Lösungen für einige der am häufigsten gesuchten SQL-Fragen.

Konventionen in diesem Buch

Folgende typografische Konventionen werden in diesem Buch verwendet:

Kursiv

Kennzeichnet neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen.

Proportionalschrift

Wird für Programmlistings benutzt und kennzeichnet innerhalb des Texts Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Ausdrücke und Schlüsselwörter.

Proportionalschrift fett

Zeigt Befehle oder andere Texte, die unverändert von der Benutzerin oder dem Benutzer eingetippt werden sollen, oder Werte, die durch den Kontext bestimmt sind.

Dieses Element kennzeichnet einen Tipp oder Vorschlag.

Dieses Element kennzeichnet einen allgemeinen Hinweis.

Dieses Element kennzeichnet eine Warnung.

Die Codebeispiele verwenden

Dieses Buch soll Ihnen bei Ihrer Arbeit helfen. Falls Beispielcode mit diesem Buch angeboten wird, können Sie diesen im Allgemeinen in Ihren Programmen und Dokumentationen einsetzen. Sie müssen uns nicht um Erlaubnis ersuchen, es sei denn, Sie reproduzieren einen bedeutsamen Teil des Codes. Zum Beispiel brauchen Sie keine Erlaubnis, wenn Sie ein Programm schreiben, das einige Codeausschnitte aus diesem Buch verwendet. Wenn Sie jedoch Beispiele aus O’Reilly-Büchern verkaufen oder vertreiben wollen, brauchen Sie eine Erlaubnis. Beantworten Sie eine Frage, indem Sie dieses Buch und Beispielcode daraus zitieren, brauchen Sie keine Erlaubnis. Nehmen Sie dagegen eine bedeutende Menge an Beispielcode aus diesem Buch in die Dokumentation Ihres Produkts auf, ist eine Erlaubnis erforderlich.

Wir wissen eine Quellenangabe zu schätzen, fordern sie aber im Allgemeinen nicht. Eine Quellenangabe enthält üblicherweise Titel, Autor, Verlag und ISBN, zum Beispiel: »SQL Pocket Guide by Alice Zhao (O’Reilly). Copyright 2021 Alice Zhao, 978-1-492-209040-3.«

Falls Sie das Gefühl haben, dass Ihr Einsatz der Codebeispiele nicht durch die oben genannten Erlaubnisse abgedeckt wird, schreiben Sie uns bitte an [email protected].

Danksagungen

Ich danke Jonathan Gennick, dem Erstautor dieses Buchs. Außerdem danke ich Andy Kwan für sein Vertrauen in mich, Jonathans Arbeit fortzuführen.

Ich hätte dieses Buch ohne die Hilfe meiner Lektorinnen und Lektoren Amelia Blevins, Jeff Bleiel und Caitlin Ghegan sowie meiner Fachkorrektorinnen und -korrektoren Alicia Nevels, Joan Wang, Scott Haines und Thomas Nield niemals fertigstellen können. Ich weiß die Zeit wirklich zu schätzen, die ihr aufgewandt habt, um jede Seite dieses Buchs gründlich zu lesen. Euer Feedback war unglaublich wertvoll.

Meinen Eltern danke ich, dass sie in mir die Liebe für das Lernen und die Kreativität genährt haben. Dank geht auch an meine Kinder Henry und Lily – eure Begeisterung für dieses Buch ist herzerwärmend. Und schließlich danke ich meinem Ehemann Ali – danke für all deine Hinweise zu diesem Buch, für deine Ermutigung und dafür, dass du mein größter Fan bist.

KAPITEL 1

SQL-Crashkurs

Dieses kurze Kapitel bietet Ihnen einen schnellen Einstieg in die grundlegende SQL-Terminologie und die SQL-Konzepte.

Was ist eine Datenbank?

Beginnen wir ganz von vorn. Eine Datenbank ist ein Ort, an dem man auf organisierte Art und Weise Daten ablegen kann. Es gibt viele Möglichkeiten, Daten zu organisieren, und entsprechend gibt es viele Datenbanken, unter denen man wählen kann. Die zwei Kategorien, in die Datenbanken fallen, nennen sich SQL und NoSQL.

SQL

SQL ist die Abkürzung für Structured Query Language (strukturierte Abfragesprache). Stellen Sie sich vor, Sie hätten eine App, die sich die Geburtstage all Ihrer Freunde merkt. Mit sehr hoher Wahrscheinlichkeit würden Sie SQL verwenden, um mit dieser App zu reden.

Deutsch: »Hallo App. Wann ist der Geburtstag meines Mannes?«

SQL: SELECT * FROM birthdays

SQL-Datenbanken werden oft als relationale Datenbanken bezeichnet, weil sie aus Relationen bestehen, die üblicherweise Tabellen genannt werden. Viele Tabellen, die miteinander verbunden sind, bilden eine Datenbank. Abbildung 1-1 zeigt das Bild einer Relation in einer SQL-Datenbank.

Abbildung 1-1: Eine Relation (auch bekannt als Tabelle) in einer SQL-Datenbank

Das Wichtigste, das man über SQL-Datenbanken wissen sollte, ist, dass sie vordefinierte Schemata erfordern. Stellen Sie sich ein Schema als die Art vor, in der die Daten in einer Datenbank organisiert oder strukturiert sind. Nehmen wir einmal an, Sie wollten eine Tabelle anlegen. Bevor Sie Daten in die Tabelle laden, muss die Struktur der Tabelle festgelegt werden, darunter solche Dinge wie die Spalten der Tabelle, ob diese Spalten Integer- oder Dezimalwerte enthalten usw.

Irgendwann jedoch kommt der Zeitpunkt, an dem sich die Daten nicht mehr auf diese strukturierte Weise organisieren lassen. Ihre Daten haben vielleicht unterschiedliche Felder. Oder möglicherweise brauchen Sie eine effektivere Methode, um eine große Menge an Daten zu speichern und abzurufen. Hier kommt NoSQL ins Spiel.

NoSQL

NoSQL steht für Not only SQL (nicht nur SQL). Ich werde in diesem Buch nicht näher darauf eingehen, wollte es aber erwähnen, da der Begriff seit den 2010er-Jahren an Popularität gewonnen hat und es wichtig ist, zu verstehen, dass es auch noch andere Wege gibt, um Daten zu speichern, als nur Tabellen.

NoSQL-Datenbanken werden oft als nicht relationale Datenbanken bezeichnet, und es gibt sie in allen Formen und Größen. Ihre wichtigsten Merkmale bestehen darin, dass sie dynamische Schemata haben (das heißt, ihre Schemata müssen nicht im Vorhinein starr festgelegt werden) und dass sie eine horizontale Skalierung erlauben (was bedeutet, dass die Daten sich über mehrere Rechner ausbreiten können).

Die beliebteste NoSQL-Datenbank ist MongoDB, die zu den dokumentenorientierten Datenbanken gehört. Abbildung 1-2 zeigt, wie Daten in MongoDB gespeichert werden. Sie werden bemerken, dass die Daten nicht mehr in einer strukturierten Tabelle vorliegen und die Anzahl der Felder (vergleichbar einer Spalte) für die einzelnen Dokumente (vergleichbar einer Zeile) variiert.

Abbildung 1-2: Eine Collection (eine Variante einer Tabelle) in MongoDB, einer NoSQL-Datenbank

Wie gesagt, der Schwerpunkt dieses Buchs liegt auf SQL-Datenbanken. Selbst mit der Einführung von NoSQL speichern die meisten Unternehmen die Mehrzahl ihrer Daten in Tabellen relationaler Datenbanken.

Datenbankmanagementsysteme (DBMS)

Sie haben vermutlich schon Begriffe wie PostgreSQL oder SQLite gehört und fragen sich vielleicht, worin diese sich von SQL unterscheiden. Es gibt zwei Typen von Datenbankmanagementsystemen (DBMS), also von Software, die benutzt wird, um mit einer Datenbank zu arbeiten.

Dazu gehören Dinge wie das Festlegen, wie Daten importiert und organisiert werden, aber auch Dinge wie die Handhabung des Zugriffs von Benutzern oder Programmen auf die Daten. Ein relationales Datenbankmanagementsystem (RDBMS) ist eine Software, die speziell für relationale Datenbanken oder Datenbanken, die aus Tabellen bestehen, gedacht ist.

Jedes RDBMS hat eine andere Implementierung von SQL, das heißt, die Syntax variiert leicht von Software zu Software. So würden Sie zum Beispiel in fünf unterschiedlichen RDBMS zehn Zeilen mit Daten ausgeben:

MySQL, PostgreSQL und SQLite

SELECT * FROM birthdays LIMIT 10;

Microsoft SQL Server

SELECT TOP 10 * FROM birthdays;

Oracle Database

SELECT * FROM birthdays WHERE ROWNUM <= 10;

SQL-Syntax mit Google suchen

Wenn Sie online nach SQL-Syntax suchen, sollten Sie immer das RDBMS, mit dem Sie arbeiten, in die Suche aufnehmen. Als ich SQL lernte, konnte ich beim besten Willen nicht herausfinden, weshalb mein aus dem Internet kopierter Code nicht funktionierte. Und genau das war der Grund!

Machen Sie dies.

Suche: create table datetimepostgresql

→ Ergebnis: timestamp

Suche: create table datetimemicrosoft sql server

→ Ergebnis: datetime

Nicht das.

Suche: create table datetime

→ Ergebnis: Syntax könnte für irgendein RDBMS gelten.

Dieses Buch behandelt die SQL-Grundlagen zusammen mit den Nuancen von fünf beliebten Datenbankmanagementsystemen: Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL und SQLite.

Manche sind proprietär, das heißt, sie gehören einem Unternehmen, und man muss Geld bezahlen, wenn man sie benutzen möchte. Andere sind Open Source, dürfen also kostenlos von allen verwendet werden. Tabelle 1-1 stellt die Unterschiede zwischen den einzelnen RDBMS dar.

Tabelle 1-1: Relationale Datenbankmanagementsysteme im Vergleich

RDBMS

Besitzer

Besondere Merkmale

Microsoft SQL Server

Microsoft

•Beliebtes proprietäres RDBMS.

•Wird oft zusammen mit anderen Microsoft-Produkten verwendet, einschließlich Microsoft Azure dem .NET Framework.

•Auf Windows-Plattformen verbreitet.

•Wird auch als MSSQL oder SQL Server bezeichnet.

MySQL

Open Source

•Beliebtes Open-Source-RDBMS.

•Wird oft zusammen mit Webprogrammiersprachen wie HTML/CSS/JavaScript eingesetzt.

•Wurde von Oracle gekauft, ist aber weiterhin Open Source.

Oracle Database

Oracle

•Beliebtes proprietäres RDBMS.

•Wird aufgrund seiner vielen verfügbaren Funktionen, Werkzeuge und Supportmöglichkeiten häufig in großen Unternehmen eingesetzt.

•Wird oft einfach als Oracle bezeichnet.

PostgreSQL

Open Source

•Nimmt schnell an Popularität zu.

•Wird oft zusammen mit Open-Source-Technologien wie Docker und Kubernetes eingesetzt.

•Effizient und hervorragend für große Datenmengen geeignet.

SQLite

Open Source

•Die weltweit am häufigsten eingesetzte Datenbank-Engine.

•Verbreitet auf iOS- und Android-Plattformen.

•Leichtgewichtig und hervorragend für eine kleine Datenbank geeignet.

Ab sofort in diesem Buch:

Microsoft SQL Server wird als

SQL Server

bezeichnet.

Oracle Database wird als

Oracle

bezeichnet.

Installationsanweisungen und Codeausschnitte für die einzelnen RDBMS finden Sie in RDBMS Software in Kapitel 2.

Eine SQL-Abfrage

Ein verbreitetes Akronym in der SQL-Welt ist CRUD, das für Create, Read, Update, and Delete (Erzeugen, Lesen, Aktualisieren und Löschen) steht. Dabei handelt es sich um die vier wichtigsten Operationen, die in einer Datenbank zur Verfügung stehen.

SQL-Anweisungen

Menschen, die Lese- und Schreibzugriff auf eine Datenbank haben, dürfen alle vier Operationen ausführen. Sie können Tabellen anlegen und löschen, Daten in Tabellen aktualisieren und Daten aus Tabellen lesen. Mit anderen Worten, sie haben die ganze Macht.

Sie schreiben SQL-Anweisungen (auch SQL-Statements genannt), also allgemeinen SQL-Code, der geschrieben werden kann, um irgendeine der CRUD-Operationen auszuführen. Solche Menschen tragen oft Titel wie Datenbankadministrator (DBA) oder Datenbankprogrammiererin.

SQL-Abfragen

Diejenigen, die Lesezugriff auf eine Datenbank haben, dürfen nur eine Leseoperation ausführen, das heißt, sie können sich die Daten in den Tabellen anschauen.

Diese Menschen schreiben SQL-Abfragen. Dabei handelt es sich um einen spezielleren Typ der SQL-Anweisung. Abfragen dienen dem Suchen und Anzeigen von Daten. Das wird als »Lesen« der Daten bezeichnet. Manchmal nennt man diese Aktion auch Abfragen von Tabellen. Solche Menschen tragen oft Titel wie Datenanalyst, Datenwissenschaftler oder Data Scientist.

Die nächsten zwei Abschnitte bieten einen Schnelleinstieg in das Schreiben von SQL-Abfragen, da dies der Typ von SQL-Code ist, den Sie am häufigsten sehen werden. Weitere Einzelheiten zum Anlegen und Aktualisieren von Tabellen können Sie in Kapitel 5 finden.

Die SELECT-Anweisung

Die grundlegendste SQL-Abfrage (die in jeder SQL-Software funktioniert) ist:

SELECT * FROM my_table;

und bedeutet: Zeige mir alle Daten innerhalb der Tabelle namens my_table – alle Spalten und alle Zeilen.

SQL ist zwar »case-insensitive« (d.h., es ist egal, ob Sie Groß- oder Kleinbuchstaben verwenden, SELECT und select sind also äquivalent), Sie werden aber bemerken, dass manche Wörter komplett in Großbuchstaben geschrieben sind, andere dagegen nicht.

Die komplett großgeschriebenen Wörter in der Abfrage werden

Schlüsselwörter

genannt, was bedeutet, dass SQL sie für das Ausführen irgendeiner Art von Operation auf den Daten reserviert hat.

Alle anderen Wörter werden kleingeschrieben. Das schließt Tabellennamen, Spaltennamen usw. ein.

Die Großbuchstaben- und Kleinbuchstabenformate sind nicht zwingend vorgeschrieben. Die Konvention stellt aber einen guten Stil dar, der die Lesbarkeit des SQL-Codes verbessert.

Kommen wir wieder zu dieser Abfrage zurück:

SELECT * FROM my_table;

Nehmen wir einmal an, Sie wollten nicht alle Daten in ihrem aktuellen Zustand zurückgeben, sondern stattdessen:

die Daten filtern

die Daten sortieren

Dazu müssten Sie die SELECT-Anweisung so modifizieren, dass sie einige weitere Klauseln enthält, damit das Ergebnis z. B. so aussieht:

SELECT *

FROM my_table

WHERE column1 > 100

ORDER BY column2;

Näheres zu all den Klauseln finden Sie in Kapitel 4, merken Sie sich an dieser Stelle vor allem eins: Die Klauseln müssen immer in der gleichen Reihenfolge aufgelistet werden.

Merken Sie sich diese Reihenfolge

Alle SQL-Abfragen enthalten irgendeine Kombination dieser Klauseln. Auch wenn Sie sich sonst an nichts erinnern können, merken Sie sich diese Reihenfolge!

SELECT -- anzuzeigende Spalten

FROM -- Tabelle(n) wird (werden) geholt von

WHERE -- Zeilen filtern

GROUP BY -- Zeilen in Gruppen aufteilen

HAVING -- gruppierte Zeilen filtern

ORDER BY -- zu sortierende Spalten

Die zwei Bindestriche -- sind der Anfang eines Kommentars in SQL, was bedeutet, dass der nachfolgende Text nur der Dokumentation dient und der Code nicht ausgeführt wird.

Meist sind die SELECT- und FROM-Klauseln erforderlich und alle anderen Klauseln optional. Die Ausnahme: Wenn Sie eine bestimmte Datenbankfunktion auswählen, ist nur SELECT erforderlich.

Die klassische Eselsbrücke zum Merken der Reihenfolge der Klauseln lautet:

Sweaty Feet Will Give Horrible Odors.

Falls Sie nicht jedes Mal an Schweißfüße denken wollen, wenn Sie eine Abfrage schreiben, dann nehmen Sie einfach die, die ich mir ausgedacht habe:

Start Fridays With Grandma’s Homemade Oatmeal.

Reihenfolge der Ausführung

Die Reihenfolge, in der SQL-Code ausgeführt wird, wird normalerweise nicht in einem SQL-Anfängerkurs gelehrt. Ich erkläre sie hier trotzdem, da mir dazu häufig Fragen gestellt wurden, wenn ich Menschen SQL beigebracht habe, die aus der Python-Programmierung kamen.

Eine vernünftige Annahme wäre, dass die Reihenfolge, in der Sie die Klauseln schreiben, die gleiche Reihenfolge ist, in der der Computer die Klauseln ausführt, doch das ist nicht der Fall. Nachdem eine Abfrage aufgerufen wurde, arbeitet sich der Computer in dieser Reihenfolge durch die Daten:

FROM

WHERE

GROUP BY

HAVING

SELECT

ORDER BY

Wenn Sie dies mit der Reihenfolge vergleichen, in der Sie die Klauseln geschrieben haben, werden Sie bemerken, dass SELECT an die fünfte Position gerückt ist. Die Erkenntnis ist im Prinzip die, dass SQL in dieser Reihenfolge arbeitet:

Sammelt alle Daten mit

FROM

.

Filtert die Datenzeilen mit

WHERE

.

Gruppiert Zeilen mit

GROUP BY

.

Filtert gruppierte Zeilen mit

HAVING

.

Legt anzuzeigende Spalten fest mit

SELECT

.

Ordnet die Ergebnisse neu an mit

ORDER BY

.

Ein Datenmodell

Ich würde den letzten Abschnitt des Crashkurses gern dafür nutzen, ein einfaches Datenmodell durchzugehen und auf einige Begriffe hinzuweisen, die Ihnen in Gesprächen über SQL begegnen können.

Ein Datenmodell ist eine Visualisierung, die zusammenfasst, wie alle Tabellen in einer Datenbank miteinander verwandt sind, und außerdem einige Details über die einzelnen Tabellen zeigt. Abbildung 1-3 ist ein einfaches Datenmodell einer Datenbank mit Schülernoten.

Abbildung 1-3: Ein Datenmodell der Schülernoten

Tabelle 1-2 listet die technischen Begriffe auf, die beschreiben, was in dem Datenmodell passiert.

Tabelle 1-2: Begriffe, die beschreiben, was in einem Datenmodell passiert

Begriff

Definition

Beispiel

Datenbank

Eine Datenbank ist ein Ort zum Abspeichern von Daten auf organisierte Weise.

Dieses Datenmodell zeigt alle Daten in der Datenbank der Schülernoten.

Tabelle

Tabellen werden aus Zeilen und Spalten zusammengesetzt. Im Datenmodell werden sie durch Rechtecke dargestellt.

Es gibt zwei Tabellen in der Datenbank der Schülernoten: Students/Schüler und Grades/Noten

Spalte

Eine Tabelle besteht aus mehreren Spalten, die manchmal auch als Attribute oder Felder bezeichnet werden. Jede Spalte enthält einen bestimmten Typ von Daten. Im Datenmodell sind alle Spalten einer Tabelle in dem jeweiligen Rechteck aufgeführt.

In der Tabelle Students befinden sich die Spalten student_id, student_name und date_of_birth.

Primärschlüssel

Ein Primärschlüssel identifiziert eindeutig jede Datenzeile in einer Tabelle. Ein Primärschlüssel kann aus einer oder mehreren Spalten in einer Tabelle zusammengesetzt werden. In einem Datenmodell wird er als pk (für Primary Key) oder mit einem Schlüsselsymbol gekennzeichnet.

In der Tabelle Students ist der Primärschlüssel die student_id-Spalte, was bedeutet, dass der student_id-Wert für jede Datenzeile anders ist.

Fremdschlüssel

Ein Fremdschlüssel in einer Tabelle verweist auf einen Primärschlüssel in einer anderen Tabelle. Die zwei Tabellen können durch die gemeinsame Spalte miteinander verknüpft werden. Eine Tabelle kann mehrere Fremdschlüssel haben. Im Datenmodell ist der Fremdschlüssel mit fk (für Foreign Key) gekennzeichnet.

In der Tabelle Grades ist student_id ein Fremdschlüssel, was bedeutet, dass die Werte in dieser Spalte mit den Werten in der entsprechenden Primärschlüsselspalte in der Tabelle Students übereinstimmen.

Beziehung

Eine Beziehung (Relationship) beschreibt, wie die Zeilen in einer Tabelle zu den Zeilen in einer anderen Tabelle passen. In einem Datenmodell wird dies durch eine Linie mit Symbolen an den Enden dargestellt. Gebräuchliche Typen sind Eins-zu-eins- und Eins-zuviele-Beziehungen.

In diesem Datenmodell haben die beiden Tabellen eine Eins-zuviele-Beziehung, die durch die gegabelte Linie repräsentiert wird. Ein Schüler kann viele Noten haben, oder eine Zeile in der Tabelle Students wird auf mehrere Zeilen in der Tabelle Grades abgebildet.

Weitere Einzelheiten zu diesen Begriffen finden Sie in »Tabellen anlegen« auf Seite 104 in Kapitel 5.

Sie fragen sich vielleicht, warum wir so viel Zeit damit zubringen, ein Datenmodell zu lesen, statt endlich SQL-Code zu schreiben! Der Grund besteht darin, dass Sie häufig Abfragen schreiben werden, die eine ganze Reihe von Tabellen miteinander verknüpfen. Deshalb ist es eine gute Idee, sich mit dem Datenmodell vertraut zu machen, damit Sie wissen, wie alle verbunden sind.

Datenmodelle sind häufig in einem Dokumentationsrepository in einem Unternehmen zu finden. Sie könnten sich Datenmodelle ausdrucken, mit denen Sie häufig arbeiten – als schnelle und einfache Referenz und weil sie recht dekorativ sind.

Sie können außerdem Abfragen in einem RDBMS schreiben, um Informationen nachzuschlagen, die in einem Datenmodell enthalten sind, wie etwa die Tabellen in einer Datenbank, die Spalten einer Tabelle oder die Constraints (Bedingungen, Einschränkungen) einer Tabelle.

Und das war Ihr Crashkurs!

Der Rest dieses Buchs ist als Referenz gedacht und muss nicht in einer festen Reihenfolge von vorn nach hinten gelesen werden. Nutzen Sie diese, um Konzepte, Schlüsselwörter und Standards nachzuschlagen.

KAPITEL 2

Wo kann ich SQL-Code schreiben?

In diesem Kapitel schauen wir uns drei Stellen an, an denen Sie SQL-Code schreiben können:

RDBMS-Software

Um SQL-Code zu schreiben, müssen Sie zuerst ein RDBMS wie MySQL, Oracle, PostgreSQL, SQL Server oder SQLite herunterladen. Die Feinheiten der einzelnen RDBMS werden in »RDBMS-Software« auf Seite 30 vorgestellt.

Datenbankwerkzeuge

Nachdem Sie ein RDBMS heruntergeladen haben, ist es am einfachsten, SQL-Code über ein Terminal-Fenster zu schreiben, also im Prinzip ein Schwarz-Weiß-Fenster, in dem nur Text möglich ist. Die meisten Menschen bevorzugen allerdings stattdessen ein Datenbankwerkzeug, also eine benutzerfreundlichere Anwendung, die hinter den Kulissen mit einem RDBMS arbeitet.

Ein Datenbankwerkzeug oder -modellierungswerkzeug besitzt eine grafische Benutzeroberfläche (GUI, Graphical User Interface), die es Anwendern erlaubt, Tabellen visuell zu analysieren und den SQL-Code einfacher zu bearbeiten. »Datenbankwerkzeuge« auf Seite 36 erklärt, wie man ein Datenbankwerkzeug mit einem RDBMS verbindet.

Andere Programmiersprachen

SQL kann auch innerhalb vieler anderer Programmiersprachen geschrieben werden. Dieses Kapitel konzentriert sich besonders auf zwei: Python und R. Hierbei handelt es sich um beliebte Open-Source-Programmiersprachen, die von Datenwissenschaftlerinnen und Datenanalysten verwendet werden, die ebenfalls oft SQL-Code schreiben müssen.

Anstatt zwischen Python/R und einem RDBMS hin- und herzuwechseln, können Sie Python/R direkt mit einem RDBMS verbinden und den SQL-Code in Python/R schreiben. »Andere Programmiersprachen« auf Seite 39 zeigt Ihnen dies Schritt für Schritt.

RDBMS-Software

In diesem Abschnitt finden Sie Installationsanweisungen und kurze Codeausschnitte für die fünf RDBMS, die in diesem Buch behandelt werden.

Welches RDBMS sollte man wählen?

Falls Sie in einem Unternehmen arbeiten, das bereits ein RDBMS verwendet, müssen Sie dasselbe nehmen.

Arbeiten Sie an einem eigenen Projekt, müssen Sie selbst entscheiden, welches RDBMS Sie benutzen wollen. Schauen Sie einfach noch einmal zurück zu Tabelle 1-1 in Kapitel 1, um die Details der beliebtesten Systeme anzuschauen.

Schnellstart mit SQLite

Sie wollen so schnell wie möglich mit dem Schreiben von SQL-Code beginnen? SQLite ist das RDBMS, das sich am schnellsten einrichten lässt.

Verglichen mit den anderen RDBMS in diesem Buch ist es weniger sicher und kann auch nicht mit mehreren Benutzern arbeiten, aber es bietet eine grundlegende SQL-Funktionalität in einem kompakten Paket.

Aus diesem Grund habe ich SQLite an den Anfang der einzelnen Abschnitte dieses Kapitels gesetzt, da seine Einrichtung im Allgemeinen einfacher ist als die der anderen.

Was ist ein Terminal-Fenster?

Ich verweise in diesem Kapitel oft auf ein Terminal-Fenster, da es die einfachste Möglichkeit ist, nach dem Herunterladen mit dem RDBMS zu interagieren.

Ein Terminal-Fenster ist ein Programm auf Ihrem Computer, das üblicherweise einen schwarzen Hintergrund besitzt und nur Texteingaben zulässt. Wie das Programm genau heißt, hängt vom Betriebssystem ab:

Unter Windows benutzen Sie das Programm

Eingabeaufforderung

.

In macOS und Linux verwenden Sie das Programm

Terminal

.

Wenn Sie ein Terminal-Fenster geöffnet haben, sehen Sie einen Befehlsprompt, der wie ein > aussieht, gefolgt von einem blinkenden Kästchen. Das bedeutet, dass das Terminal bereit ist, Textbefehle des Benutzers entgegenzunehmen.

In den nächsten Abschnitten gibt es Links zum Download von RDBMS-Installationsprogrammen für Windows, macOS und Linux.

Auf macOS und Linux besteht eine Alternative zum Herunterladen eines Installers darin, stattdessen den Paketmanager Homebrew (https://brew.sh) zu verwenden. Nachdem Sie Homebrew installiert haben, können Sie einfache brew install-Befehle im Terminal ausführen, um alle RDBMS-Installationen zu erledigen.

SQLite

SQLite ist kostenlos und leichtgewichtig, was bedeutet, dass es auf Ihrem Computer nicht viel Platz beansprucht und außerordentlich schnell einzurichten ist. Für Windows und Linux kann SQLite Tools von SQLite Download Page (https://oreil.ly/gNagl) heruntergeladen werden. Auf macOS ist SQLite bereits installiert.

Am einfachsten starten Sie mit SQLite, indem Sie ein Terminal-Fenster öffnen und sqlite3 eintippen. Allerdings wird bei dieser Vorgehensweise alles im Speicher erledigt. Das heißt, Änderungen werden nicht gespeichert, wenn Sie SQLite schließen.

> sqlite3

Falls Sie möchten, dass Ihre Änderungen gespeichert werden, sollten Sie beim Öffnen eine Verbindung zu einer Datenbank herstellen. Die folgende Syntax erledigt das für Sie:

> sqlite3 my_new_db.db

Der Befehlsprompt für SQLite sieht so aus:

sqlite>

Hier ein bisschen Code, um ein paar Dinge auszuprobieren:

sqlite> CREATE TABLE test (id int, num int);

sqlite> INSERT INTO test VALUES (1, 100), (2, 200);

sqlite> SELECT * FROM test LIMIT 1;

1|100

Zum Anzeigen der Datenbanken und Tabellen sowie zum Beenden von SQLite dienen folgende Befehle:

sqlite> .databases

sqlite> .tables

sqlite> .quit

Falls Sie Spaltennamen in Ihrer Ausgabe sehen wollen, tippen Sie:

sqlite> .headers on

Um sie wieder auszublenden, tippen Sie:

sqlite> .headers off

MySQL

MySQL ist kostenlos, auch wenn es nun der Firma Oracle gehört. MySQL Community Server kann von der Seite MySQL Community Downloads (https://oreil.ly/Bkv0m) heruntergeladen werden. Auf macOS und Linux können Sie die Installation alternativ auch mit Homebrew durchführen, indem Sie brew install mysql in das Terminal eintippen.

Der Befehlsprompt für MySQL sieht so aus:

mysql>

Hier ein bisschen Code, um ein paar Dinge auszuprobieren:

mysql> CREATE TABLE test (id int, num int);

mysql> INSERT INTO test VALUES (1, 100), (2, 200);

mysql> SELECT * FROM test LIMIT 1;

+------+------+

| id | num |

+------+------+

| 1 | 100 |

+------+------+

1 row in set (0.00 sec)

Um Datenbanken anzuzeigen und zu wechseln, Tabellen anzuzeigen und MySQL zu beenden, verwenden Sie folgende Befehle:

mysql> show databases;

mysql> connect another_db;

mysql> show tables;

mysql> quit

Oracle

Oracle ist proprietär und läuft auf Windows- und Linux-Maschinen. Oracle Database Express Edition, die kostenlose Ausgabe, kann von der Seite Oracle Database XE Downloads (https://oreil.ly/FGoXw) heruntergeladen werden.

Der Befehlsprompt für Oracle sieht so aus:

SQL>

Hier ein bisschen Code, um ein paar Dinge auszuprobieren:

SQL> CREATE TABLE test (id int, num int);

SQL> INSERT INTO test VALUES (1, 100);

SQL> INSERT INTO test VALUES (2, 200);

SQL> SELECT * FROM test WHERE ROWNUM <=1;

ID NUM

---------- ----------

1 100

Um Datenbanken, alle Tabellen (einschließlich der Systemtabellen) sowie vom Benutzer erzeugte Tabellen anzuzeigen und Oracle zu beenden, verwenden Sie folgende Befehle:

SQL> SELECT * FROM global_name;

SQL> SELECT table_name FROM all_tables;

SQL> SELECT table_name FROM user_tables;

SQL> quit

PostgreSQL

PostgreSQL ist kostenlos und wird oft zusammen mit anderen Open-Source-Technologien eingesetzt. PostgreSQL kann von der Seite PostgreSQL Downloads (https://oreil.ly/8MyzC) heruntergeladen werden. Auf macOS und Linux können Sie die Installation alternativ mit Homebrew durchführen, indem Sie brew install postgresql im Terminal eintippen.

Der Befehlsprompt für PostgreSQL sieht so aus:

postgres=#

Hier ein bisschen Code, um ein paar Dinge auszuprobieren:

postgres=# CREATE TABLE test (id int, num int);

postgres=# INSERT INTO test VALUES (1, 100),

(2, 200);

postgres=# SELECT * FROM test LIMIT 1;

id | num

----+-----

1 | 100

(1 row)