Zum Inhalt springen

SQL: Was ist die Structured Query Language?

  • Daten

Die Structured Query Language (SQL) ist die am häufigsten genutzte Sprache bei der Arbeit mit relationalen Datenbanken. Die Sprache ist für weit mehr nutzbar als simple Abfragen, trotz des Namens. Damit können auch alle Operationen durchgeführt werden, die zur Erstellung und Instandhaltung von Datenbanken nötig sind.

Was sind die Vorteile der Structured Query Language?

Die strukturierte Abfragesprache bietet viele Funktionen, um Daten zu lesen, zu verändern oder zu löschen. Darüber hinaus wird sie von vielen Analysten aus den folgenden Gründen anderen Sprachen vorgezogen:

  • Es ist semantisch sehr einfach zu lesen und zu verstehen. Die Befehle können auch von Anfängern weitestgehend verstanden werden.
  • Die Sprache kann direkt innerhalb der Datenbankumgebung genutzt werden. Zur grundlegenden Arbeit mit Informationen müssen die Daten nicht erst aus der Datenbank in ein anderes Tool überführt werden. Einfache Berechnungen und Abfragen sind direkt in der Datenbank möglich.
  • Verglichen mit anderen Tabellentools, wie beispielsweise Excel, können Datenanalysen mit der Structured Query Language einfach repliziert und kopiert werden, da alle Zugriff auf die gleichen Daten in der Datenbank haben. Somit führt dieselbe Abfrage auch immer zum gleichen Ergebnis.

SQL bietet eine Alternative zu der Art von Zusammenfassungen und Berechnungen, die die meisten in Excel Tabellen vornehmen, wie Summen, Durchschnittsberechnungen oder finden des Maximums innerhalb einer Spalte. Diese Berechnungen können auch über mehrere Datensätze gleichzeitig ausgeführt werden.

Welche Kategorien von SQL Befehlen gibt es?

Die Structured Query Language kann für alle möglichen Arbeiten im Zusammenhang mit Relationalen Datenbanken genutzt werden. Deshalb unterscheiden wir insgesamt drei Kategorien von Befehlen.

KategorieBeschreibung
Data Manipulation Language– Einfügen von Daten in bestehende Tabelle
– Aktualisierung von Daten
– Löschen von Tabellenzeilen
– Auswahl von Daten aus Tabellen unter bestimmten Bedingungen.
Data Definition Language– Erstellung, Änderung und Löschung von Tabellen
Data Control Language– Administrative Aufgaben
– Anlegen neuer Benutzer
– Gewähren von Zugriff auf Teile der Datenbank
Kategorien von Structured Query Language Befehlen

Welche Datentypen werden unterstützt?

Wenn wir eine Tabelle in einer Relationalen Datenbank anlegen wollen, müssen wir gezwungenermaßen immer auch einen Datentyp angeben, der dann in den einzelnen Spalten gelten soll. Alle Daten, welche über die Zeit hinzugefügt werden, müssen dann auch diesem Schema entsprechen.

Das Bild zeigt, wie die Structured Query Language genutzt wird, um Nutzern Zugriff auf verschiedene Datenbanken und Tabellen zu gewähren.
SQL als Verbindung zwischen Datenbanken und den Nutzern

Die bekanntesten Datentypen sind die folgenden:

  • Integer: Für Ganzzahlen ohne Nachkommastellen. Diese können sowohl positiv als auch negativ sein.
  • Numeric oder Decimal: Diese werden für die sogenannten Festkommazahlen genutzt, d.h. vor und nach der Dezimalstelle gibt es eine fest definierte Anzahl an Stellen. Wenn wir Booleans definieren wollen, also Spalten, die nur einen von zwei Werten annehmen, nutzen wir auch Numeric.
  • FloatReal oder Double: Diese Typen nutzen wir für Gleitkommazahlen. Das sind Zahlen, die keine fest definierte Anzahl vor und nach der Dezimalstelle haben.
  • Charakter und Text: Für alle Arten von Zeichenketten.
  • Date und Time: Diese Datentypen können für alle Spalten genutzt werden, in denen wir Datums- oder Zeitangaben speichern wollen.

Darüber hinaus gibt es natürlich noch deutlich mehr Datentypen, die wir in der Structured Query Language nutzen können. Je nach Anwendungsfall müssen die Datentypen und deren Vorteile und Nachteile evaluiert werden.

Welche Befehle sollte man als Einsteiger kennen?

Wie wir bereits kennengelernt haben, werden SQL-Befehle in drei Bereiche eingeordnet. In jedem dieser Bereiche gibt es grundlegende Abfragen, die bei der Arbeit mit relationalen Datenbanken hilfreich sind.

Data Definition Language

In diesen Bereich fallen alle Befehle mit denen sich neue Datenstrukturen anlegen lassen, wie Datenbanken, Tabellen oder Views. Für unsere Beispiele nutzen wir die Tabelle „orders“, die Auftragsinformationen in den Spalten „order_id“, „customer_id“ und „sales“ enthält.

Mit dem Befehl „CREATE TABLE“ kann die Tabelle definiert werden und die Spalten mit deren Datentypen angegeben werden:

CREATE TABLE orders (
    order_id int,
    customer_id int,
    sales decimal(6,2))

Data Manipulation Language

In diesem Bereich geht es darum sich konkrete Daten ausgeben zu lassen oder sogar zu verändern.

Mithilfe des „SELECT“ Befehls können Daten aus der genannten Tabelle abgerufen werden. Um die Spalte „order_id“ aus der Tabelle „orders“ abzurufen, nutzt man die folgende Abfrage:

SELECT order_id FROM orders

Diese grundsätzliche Abfrage kann mithilfe von „WHERE“ gefiltert werden. Wenn wir beispielsweise alle Auftragsnummern abfragen wollen, die einen höheren Umsatz als 50€ hatten, sieht der Befehl so aus:

SELECT order_id FROM orders WHERE sales > 50

Wenn mehr als ein Filter benötigt werden lassen diese sich mit „AND“ und „OR“ verbinden. Mithilfe der „AND“-Verbindung kann man dann beispielsweise herausfinden, welche Auftragsnummern einen höheren Umsatz als 50€ hatten und vom Kunden „12345“ getätigt wurden:

SELECT order_id FROM order WHERE sales > 50 AND customer_id = 12345

Data Control Language

Nachdem wir die Tabelle nun erstellt haben und die Daten auch abfragen können, müssen wir noch Rechte verteilen, sodass nicht jeder User Änderungen vornehmen kann. Ansonsten kann es sehr schnell zu Problemen kommen, wenn beispielsweise unerfahrene Nutzer Daten verändern oder sogar löschen.

Mit dem Befehl „GRANT“ kann definiert werden, welche Abfragetypen ein Nutzer auf eine bestimmte Tabelle oder Datenbank ausführen darf. In unserem Fall darf User 1 sowohl Daten abfragen, als auch Daten ändern. Der User 2 hingegen darf nur Daten abfragen.

GRANT SELECT, UPDATE ON orders TO user_1
GRANT SELECT ON orders TO user_2

Der gegenteilige Befehl dazu ist „REVOKE“ mit dem bestehende Rechte auch wieder zurückgezogen werden können:

REVOKE UPDATE ON orders FROM user_1

Wie spricht man SQL aus?

Falls Du den Beitrag bis hierhin gelesen und Dich von Anfang an gefragt hast, wie man die Abkürzung SQL überhaupt ausspricht, müssen wir Dich leider enttäuschen. Das wird wohl leider für immer ein Mysterium bleiben. Im Allgemeinen gibt es zwei Lager: S-Q-L und „Sequel“. Einen ausführlichen Beitrag zu diesem Thema findest Du hier. Der Autor fragt tatsächlich einen der Erfinder von SQL, Don Chamberlin, genau diese Frage.

Das solltest Du mitnehmen

  • Die Structured Query Language kann für alle Arbeiten rund um eine Relationale Datenbank genutzt werden.
  • Dazu gehören beispielsweise das Anlegen von neuen Tabellen, die Definition von Userberechtigungen und natürlich die Abfrage von Daten.
  • Wenn wir neue Tabellen anlegen müssen wir die Datentypen im Schema definieren. Dafür gibt es einige klassische Datentypen, wie Integer, Float oder Date.
  • Es ist leider noch immer nicht abschließend geklärt, ob man die Abkürzung von Structured Query Language S-Q-L ausspricht oder „Sequel“.

Andere Beiträge zum Thema SQL

  • Ein ausführliches Tutorial für die Abfragesprache findest Du hier.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner