Sql Language Cheat Sheet

SQL (Structured Query Language) ist die Standardsprache für die Kommunikation mit relationalen Datenbanken. Ob Sie Daten abfragen, modifizieren oder die Datenbankstruktur verwalten – SQL ist das Werkzeug der Wahl. Diese Übersicht dient als eine Art "Spickzettel", um Ihnen die grundlegenden Konzepte und Befehle in SQL schnell zugänglich zu machen. Beachten Sie, dass verschiedene Datenbankmanagementsysteme (DBMS) wie MySQL, PostgreSQL, SQL Server und Oracle leicht unterschiedliche Dialekte von SQL verwenden. Diese Übersicht konzentriert sich auf die grundlegenden SQL-Standards, die in den meisten Systemen gelten.
Grundlegende SELECT-Anweisung
Die SELECT-Anweisung ist das Herzstück von SQL. Sie dient dazu, Daten aus einer oder mehreren Tabellen abzufragen. Die einfachste Form ist:
SELECT * FROM Tabelle;
Hierbei wählt alle Spalten der Tabelle aus. Um nur bestimmte Spalten auszuwählen, geben Sie diese durch Kommata getrennt an:
Must Read
SELECT Spalte1, Spalte2 FROM Tabelle;
Mit der WHERE-Klausel können Sie die Ergebnisse filtern:
SELECT * FROM Tabelle WHERE Bedingung;
Beispiele für Bedingungen:
- `Spalte > 10` (Größer als)
- `Spalte < 100` (Kleiner als)
- `Spalte = 'Wert'` (Gleich)
- `Spalte != 'Wert'` oder `Spalte <> 'Wert'` (Ungleich)
- `Spalte LIKE 'M%'` (Beginnt mit 'M')
- `Spalte IN ('Wert1', 'Wert2')` (Enthält 'Wert1' oder 'Wert2')
- `Spalte BETWEEN Wert1 AND Wert2` (Liegt zwischen Wert1 und Wert2)
Mehrere Bedingungen können mit AND und OR kombiniert werden:
SELECT * FROM Tabelle WHERE Bedingung1 AND Bedingung2;
Um die Ergebnisse zu sortieren, verwenden Sie die ORDER BY-Klausel:
SELECT * FROM Tabelle ORDER BY Spalte ASC;
ASC steht für aufsteigend (Standard), DESC für absteigend:

SELECT * FROM Tabelle ORDER BY Spalte DESC;
Datenmanipulationssprache (DML)
Die DML umfasst Befehle zum Einfügen, Aktualisieren und Löschen von Daten.
INSERT fügt neue Daten in eine Tabelle ein:
INSERT INTO Tabelle (Spalte1, Spalte2) VALUES ('Wert1', 'Wert2');
Um Daten in alle Spalten einzufügen (in der Reihenfolge, in der sie in der Tabelle definiert sind):
INSERT INTO Tabelle VALUES ('Wert1', 'Wert2', 'Wert3');
UPDATE ändert bestehende Daten:
UPDATE Tabelle SET Spalte1 = 'NeuerWert' WHERE Bedingung;
Die WHERE-Klausel ist entscheidend, da sie bestimmt, welche Zeilen aktualisiert werden. Ohne sie werden alle Zeilen in der Tabelle aktualisiert!
DELETE löscht Daten aus einer Tabelle:

DELETE FROM Tabelle WHERE Bedingung;
Auch hier ist die WHERE-Klausel wichtig. Ohne sie werden alle Zeilen in der Tabelle gelöscht!
Datenbanksprache (DDL)
Die DDL umfasst Befehle zum Erstellen, Ändern und Löschen von Datenbankstrukturen wie Tabellen und Indizes.
CREATE TABLE erstellt eine neue Tabelle:
CREATE TABLE Tabelle (
Spalte1 Datentyp1,
Spalte2 Datentyp2,
...
);
Beispiele für Datentypen sind INTEGER, VARCHAR (Zeichenkette), DATE, BOOLEAN.
ALTER TABLE ändert die Struktur einer bestehenden Tabelle:
ALTER TABLE Tabelle ADD Spalte3 Datentyp3;
ALTER TABLE Tabelle DROP COLUMN Spalte1;
DROP TABLE löscht eine Tabelle:

DROP TABLE Tabelle;
Vorsicht: Dieser Befehl ist irreversibel! Die Tabelle und alle darin enthaltenen Daten werden unwiederbringlich gelöscht.
JOIN-Operationen
JOIN-Operationen werden verwendet, um Daten aus mehreren Tabellen zu kombinieren. Dies ist besonders nützlich, wenn Informationen über verschiedene Tabellen verteilt sind und in Beziehung zueinander stehen.
INNER JOIN gibt nur die Zeilen zurück, für die in beiden Tabellen eine Übereinstimmung besteht:
SELECT * FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Spalte = Tabelle2.Spalte;
LEFT JOIN (oder LEFT OUTER JOIN) gibt alle Zeilen aus der linken Tabelle (Tabelle1) und die passenden Zeilen aus der rechten Tabelle (Tabelle2) zurück. Wenn keine Übereinstimmung gefunden wird, werden für die Spalten der rechten Tabelle NULL-Werte angezeigt.
SELECT * FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.Spalte = Tabelle2.Spalte;
RIGHT JOIN (oder RIGHT OUTER JOIN) ist das Gegenteil von LEFT JOIN. Es gibt alle Zeilen aus der rechten Tabelle und die passenden Zeilen aus der linken Tabelle zurück.
SELECT * FROM Tabelle1 RIGHT JOIN Tabelle2 ON Tabelle1.Spalte = Tabelle2.Spalte;
FULL JOIN (oder FULL OUTER JOIN) gibt alle Zeilen aus beiden Tabellen zurück. Wenn keine Übereinstimmung gefunden wird, werden NULL-Werte für die entsprechenden Spalten angezeigt. Nicht alle Datenbanken unterstützen FULL JOIN.

SELECT * FROM Tabelle1 FULL JOIN Tabelle2 ON Tabelle1.Spalte = Tabelle2.Spalte;
Gruppierung und Aggregation
Die GROUP BY-Klausel gruppiert Zeilen mit gleichen Werten in einer oder mehreren Spalten. Dies wird oft in Verbindung mit Aggregationsfunktionen verwendet.
Aggregationsfunktionen berechnen einen Wert über eine Gruppe von Zeilen. Die wichtigsten sind:
- COUNT(): Zählt die Anzahl der Zeilen
- SUM(): Berechnet die Summe der Werte
- AVG(): Berechnet den Durchschnitt der Werte
- MIN(): Findet den minimalen Wert
- MAX(): Findet den maximalen Wert
SELECT Spalte, COUNT() FROM Tabelle GROUP BY Spalte;
Die HAVING-Klausel filtert die Ergebnisse nach der Gruppierung. Sie ähnelt der WHERE-Klausel, wird aber auf gruppierte Daten angewendet.
SELECT Spalte, COUNT() FROM Tabelle GROUP BY Spalte HAVING COUNT() > 10;
Subqueries (Unterabfragen)
Eine Subquery ist eine Abfrage, die innerhalb einer anderen Abfrage verschachtelt ist. Sie wird verwendet, um komplexe Abfragen zu erstellen.
SELECT * FROM Tabelle WHERE Spalte IN (SELECT Spalte FROM AndereTabelle);
Subqueries können in der WHERE-Klausel, der FROM-Klausel oder der SELECT-Liste verwendet werden.
Diese Übersicht bietet einen grundlegenden Einblick in die SQL-Sprache. Es ist wichtig, die Konzepte zu verstehen und mit verschiedenen SQL-Befehlen zu experimentieren, um Ihre Fähigkeiten zu verbessern. Konsultieren Sie die Dokumentation Ihres spezifischen DBMS für detailliertere Informationen und spezifische Funktionen.
