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 ein Kreisdiagramm?
Visualisieren Sie Datenproportionen mit Kreisdiagrammen: Eine intuitive und effektive Methode, um die relative Verteilung zu verstehen.
Was ist die Fuzzy Logic?
Entdecken Sie die Leistungsfähigkeit der Fuzzy Logic in Technik und KI. Erfahren Sie, wie sie funktioniert und welche Vor- und Nachteile sie hat.
Was ist Swagger UI?
Erlernen Sie die API-Dokumentation mit Swagger UI. Erfahren Sie, wie Sie Ihre Dokumentation für eine gute Benutzerfreundlichkeit anpassen.
Was ist die Kosinus-Ähnlichkeit?
Erschließen Sie das Potenzial der Kosinus-Ähnlichkeit: Erforschen Sie effiziente Techniken der Ähnlichkeitsmessung und erweitern Sie Ihr Wissen.
Was ist Apache Flink?
Entdecken Sie Apache Flink: Nutzen Sie den Artikel um in Echtzeit-Stream-Verarbeitung und Big-Data-Analysen einzutauchen. Erfahren Sie mehr!
Was ist Stream Processing?
Einführung in Stream Processing, seine Anwendungen und Unterschiede zur Stapelverarbeitung.
Andere Beiträge zum Thema SQL
- Ein ausführliches Tutorial für die Abfragesprache findest Du hier.