Structured Query Language (SQL)
Sprache zur Kommunikation mit einer relationalen Datenbank.
Befehle
Select
Um Werte aus einer oder mehreren Tabellen zu bekommen.
Beispiel:
SELECT col_names FROM table_name;
Insert
Um Daten in eine Tabelle zu schreiben.
Beispiel:
INSERT INTO table_name (col_names) VALUES (val_names);
Delete
Um Daten aus einer Tabelle zu löschen.
Beispiel:
DELETE FROM table_name WHERE condition;
Update
Um Datensätze in einer Tabelle zu updaten.
Beispiel:
UPDATE table_name SET col1 = val1, col2 = val2 WHERE condition;
Select Distinct
Um Werte aus einer oder mehreren Tabellen zu bekommen, welche nicht den gleichen Inhalt haben.
Beispiel:
SELECT DISTINCT col_names FROM table_name;
Bedingungen
Where
Bedingung
Beispiel:
SELECT col_names FROM table_name WHERE condition;
AND, OR, NOT
Mehrere Bedingungen, welche erfüllt werden müssen.
Im folgenden Beispiel muss ein Datensatz die Kriterien erfüllen um abgerufen zu werden.
Entweder condition1 oder (condition 2 und nicht condition3).
Beispiel:
SELECT col_names FROM table_name WHERE condition1 OR condition2 AND NOT condition3;
Is Null Bedingung
Überprüft, ob eine Spalte keinen Wert hat. Kann verneint werden mit IS NOT NULL.
Beispiel:
SELECT col_names FROM table_name WHERE column_name IS NULL;
Like Bedingung
Überprüft, ob der Wert einem Regex entspricht. Kann verwendet werden, um string values zu überprüfen. Oft werden folgende Operator mit LIKE verwendet. "%": 0 oder mehrere Zeichen. "_": Ein Zeichen.
Beispiel:
SELECT col_names FROM table_name WHERE column_name LIKE pattern;
-- Alle Datensätze bei denen column_name mit a anfängt.
SELECT col_names FROM table_name WHERE column_name LIKE 'a%';
Exists Bedingung
Testet, ob sich ein Datensatz in einer Sub-query befindet.
Beispiel:
SELECT col_names FROM table_name WHERE EXISTS(SELECT col_name FROM table_name);
In Bedingung
Testet, ob ein Wert sich in einer Liste oder in den Werten von einer Sub-query befindet.
Beispiel:
SELECT col_names FROM table_name WHERE column_name IN (val1, val2, val3)
-- Testet ob der Wert von Country in der Liste ist.
SELECT * FROM Customers WHERE Country IN ('Germany', 'France', 'UK')
-- Testet ob der Wert in dem Rückgabewert von der Sub-query ist.
SELECT col_names FROM table_name WHERE EXISTS(SELECT col_name FROM table_name);
Between Bedingung
Testet, ob ein Wert sich in einem Bereich befindet.
Beispiel:
SELECT column_names FROM table_name WHERE column_name BETWEEN 10 AND 20;
Aggregatfunktionen
MIN()
Finde den kleinsten Wert aus den Datensätzen.
Beispiel:
SELECT MIN(column_name) FROM table_name WHERE condition;
MAX()
Finde den größten Wert aus den Datensätzen.
Beispiel:
SELECT MAX(column_name) FROM table_name WHERE condition;
COUNT()
Gibt an wie viele Datensätze diesem Kriterium entsprechen.
Beispiel:
SELECT COUNT(column_name) FROM table_name WHERE condition;
AVG()
Gibt den Durchschnittswert einer numerischen Spalte an.
Beispiel:
SELECT AVG(column_name) FROM table_name WHERE condition;
SUM()
Gibt die Summe aller Werte einer numerischen Spalte an.
Beispiel:
SELECT SUM(column_name) FROM table_name WHERE condition;
Select Top (LIMIT)
Gibt nur so viele Werte zurück wie im Limit festgelegt wurden.
Folgendes Beispiel funktioniert mit MySQL.
Andere Datenbanksysteme haben eine andere Syntax.
Beispiel:
SELECT column_names FROM table_name WHERE condition LIMIT number;
Andere Befehle
Aliases
Damit kann man einer Tabelle oder Spalte einen Alias für die Abfrage geben.
Beispiel:
SELECT column_name AS alias1 FROM table_name WHERE alias1 == 'test';
Union
Mehrere Selects zusammenfügen
Beispiel:
SELECT column_names FROM table1 UNION SELECT column_names2 FROM table2;
Order by
Ordnet die Datensätze nach der angegebenen Spalte. Aufsteigend: ASC. Absteigend: DESC
Beispiel:
SELECT col1, col2 FROM table ORDER BY col2 ASC;
Group by
Das SQL GROUP BY ist eine Funktion, die es ermöglicht,
Zeilen in einer Tabelle zu gruppieren, indem sie nach einer oder mehreren
Spalten sortiert werden.
Anschließend können aggregierte Funktionen wie SUM oder COUNT auf diese Gruppen
angewendet werden, um Zusammenfassungen der Daten zu erhalten.
Beispiel:
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country;
Having
Wird bei Group by verwendet!
SQL Having ist eine Klausel in einer SQL-Abfrage, die auf Gruppen von Daten
angewendet wird, die durch die GROUP BY-Klausel definiert sind.
Die HAVING-Klausel ermöglicht es, eine zusätzliche Bedingung auf
die Ergebnisse einer Gruppenaggregatfunktion wie SUM, COUNT oder AVG anzuwenden,
um nur die Gruppen anzuzeigen, die diese Bedingung erfüllen.
Dadurch können Daten weiter gefiltert werden, um spezifischere Ergebnisse zu erhalten.
Beispiel:
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 5;
Join
(INNER) JOIN
Returns records that have matching values in both tables.
Beispiel:
SELECT col_name FROM table1 INNER JOIN table2 ON table1.col = table2.col;
LEFT (OUTER) JOIN
Returns all records from the left table, and the matched records from the right table.
Beispiel:
SELECT col_name FROM table1 LEFT JOIN table2 ON table1.col = table2.col;
RIGHT (OUTER) JOIN
Returns all records from the right table, and the matched records from the left table.
Beispiel:
SELECT col_name FROM table1 RIGHT JOIN table2 ON table1.col = table2.col;
FULL (OUTER) JOIN
Returns all records when there is a match in either left or right table.
Beispiel:
SELECT col_name FROM table1 FULL OUTER JOIN table2 ON table1.col = table2.col;



