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.
Kategorie | Beschreibung |
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 |
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.
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.
- Float, Real 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”.
Was ist die Bivariate Analyse?
Nutzen Sie die Bivariate Analyse: Erforschen Sie Typen und Streudiagramme und nutzen Sie Korrelation und Regression.
Was ist eine RESTful API?
Erfahren Sie alles über RESTful APIs und wie sie Ihre Webentwicklungsprojekte effizienter und skalierbarer machen können.
Was sind Zeitreihendaten?
Gewinnen Sie mithilfe von Analyse- und Prognosetechniken Erkenntnisse aus Zeitreihendaten. Entdecken Sie Trends und Muster!
Was ist ein Balkendiagramm?
Entdecken Balkendiagramme bei der Datenvisualisierung. Lernen Sie, wie man sie für aufschlussreiche Datenanalyse erstellt und anpasst.
Was ist ein Liniendiagramm?
Meistern Sie die Kunst der Liniendiagramme: Lernen Sie in unserem Leitfaden, wie Sie Trends und Muster visualisieren können.
Was ist Data Preprocessing?
Optimieren Sie Ihre Datenanalyse mit effektivem Data Preprocessing. Lernen Sie das Wesentliche in unserem Leitfaden zur Datenvorverarbeitung.
Andere Beiträge zum Thema SQL
- Ein ausführliches Tutorial für die Abfragesprache findest Du hier.
Niklas Lang
Seit 2020 bin ich als Machine Learning Engineer und Softwareentwickler tätig und beschäftige mich leidenschaftlich mit der Welt der Daten, Algorithmen und Softwareentwicklung. Neben meiner Arbeit in der Praxis unterrichte ich an mehreren deutschen Hochschulen, darunter die IU International University of Applied Sciences und die Duale Hochschule Baden-Württemberg, in den Bereichen Data Science, Mathematik und Business Analytics.
Mein Ziel ist es, komplexe Themen wie Statistik und maschinelles Lernen so aufzubereiten, dass sie nicht nur verständlich, sondern auch spannend und greifbar werden. Dabei kombiniere ich praktische Erfahrungen aus der Industrie mit fundierten theoretischen Grundlagen, um meine Studierenden bestmöglich auf die Herausforderungen der Datenwelt vorzubereiten.