Zurück zur Artikelliste Artikel
10 Leseminuten

Die wichtigsten SQL-Abfragen für Einsteiger

Wie holt man Daten aus einer Tabelle? Wie erstellt oder löscht man eine Tabelle? Wie zeigt man unterschiedliche Datensätze an? Wie wählt man Zeilen aus, die einen bestimmten Wert in einer Spalte speichern? All dies können Sie ganz einfach durch das Schreiben grundlegender SQL-Abfragen erreichen.

In diesem Leitfaden werden die 30 wichtigsten SQL-Abfragen für Anfänger behandelt. Werfen wir einen Blick darauf.

1. Abrufen von Daten aus allen Spalten

Dies ist eine sehr einfache Abfrage, um alle Daten aus einer Tabelle anzuzeigen. Beachten Sie, dass diese Abfrage nur ein Zeichen nach SELECT enthält: "*" (dies steht für alle Spalten). Daher müssen Sie die Namen der Spalten nicht auflisten. Vergessen Sie natürlich nicht, FROM und den Namen der Tabelle, aus der Sie Daten abrufen wollen, anzugeben. In diesem Beispiel holen wir Daten aus der Tabelle animal.

SELECT *
FROM animal;

2. Abrufen von Daten aus bestimmten Spalten

Die obige Abfrage zeigt alle Daten aus der Tabelle animal. Wenn Sie nur Daten aus bestimmten Spalten abrufen möchten, führen Sie diese nach SELECT auf. In diesem Beispiel rufen wir Daten aus den Spalten id und name ab.

SELECT id, name
FROM animal;

3. Filtern von Daten mithilfe der WHERE-Klausel

Zusätzlich zum Abruf von Daten aus bestimmten Spalten können Sie Daten auch filtern, indem Sie Bedingungen nach WHERE auflisten. In diesem Beispiel gibt es eine Bedingung: age>=2. Wir suchen nach Datensätzen mit einem Wert von 2 oder mehr in der Spalte age.

SELECT id, name, age
FROM animal
WHERE age>=2;

4. Filtern von Daten anhand von Bedingungen, die mit dem Operator AND verknüpft sind

Wenn Sie Daten anhand von mehr als einer Bedingung filtern möchten, können Sie AND verwenden. In diesem Beispiel suchen wir nach Datensätzen mit einem Wert von 2 oder mehr in der Spalte age und 'dog' in der Spalte name.

SELECT id, name, age 
FROM animal
WHERE age >= 2 AND name = 'dog';

5. Filtern von Daten mithilfe von Bedingungen, die mit dem Operator OR verknüpft sind

Wenn nur eine der Bedingungen erfüllt sein muss, können Sie OR verwenden. In diesem Beispiel suchen wir nach Datensätzen mit einem Wert von 2 oder mehr in der Spalte age oder 'dog' in der Spalte name.

SELECT id, name, age 
FROM animal
WHERE age >= 2 OR name = 'dog';

6. Verwendung von DISTINCT zum Abrufen von nicht wiederholten Datensätzen

Sie können DISTINCT nach SELECT einfügen, um nur einen Datensatz von jedem Typ abzurufen. In diesem Beispiel sollen Datensätze aus den Spalten name und color abgerufen werden. Wenn die Werte aus diesen Spalten in mehr als einem Datensatz gleich sind (z. B. wenn es mehr als ein gelbes T-Shirt in der Tabelle gibt), gibt die Abfrage nur einen dieser Datensätze zurück.

SELECT DISTINCT name, color
FROM clothing;

7. Abrufen von Daten ohne NULL in einer bestimmten Spalte

Wenn Sie nur Daten von Zeilen ohne NULL in einer bestimmten Spalte abrufen möchten, verwenden Sie IS NOT NULL. In diesem Beispiel darf der Wert in der Spalte color nicht NULL sein. Es werden also nur Datensätze zurückgegeben, deren Wert in der Spalte color gespeichert ist. Ein ähnlicher Operator wie IS NOT NULL ist IS NULL, der prüft, ob ein Wert gleich NULL ist.

SELECT name, color
FROM clothing
WHERE color IS NOT NULL;

8. Sortieren von Daten nach einer Spalte

Um Daten nach einer Spalte zu sortieren, setzen Sie den Spaltennamen hinter ORDER BY. Die Standard-Sortiermethode ist alphabetisch, aber Sie können die Zeilen auch in absteigender Reihenfolge anzeigen, indem Sie DESC nach dem Namen der Spalte hinzufügen. In diesem Beispiel sollen die Daten in den Spalten id und name nach der Spalte name sortiert werden.

SELECT id, name 
FROM animal
ORDER BY name;

9. Sortieren von Daten nach mehr als einer Spalte

Sie können Daten auch nach mehr als einer Spalte sortieren. In diesem Beispiel werden die Datensätze zunächst nach der Spalte name in absteigender Reihenfolge und anschließend nach der Spalte id in aufsteigender Reihenfolge sortiert. Wenn die Abfrage Datensätze mit demselben Namen findet (z. B. alle Datensätze mit 'dog' im Spaltennamen), werden diese Datensätze in aufsteigender Reihenfolge nach id sortiert.

SELECT id, name 
FROM animal
ORDER BY name DESC, id;

10. Suche nach Werten, die einem bestimmten Muster entsprechen

Sie können LIKE verwenden, um Daten abzurufen, die einem bestimmten Muster entsprechen. In diesem Beispiel sollen Datensätze aus den Spalten id und name abgerufen werden, die eine Zeichenfolge mit dem Buchstaben "e" in der Spalte name enthalten (z. B. Datensätze mit Namen wie Elefant, Biene usw.)

SELECT id, name 
FROM animal
WHERE name LIKE '%e%';

11. Verbinden von Werten aus Textspalten zu einer Zeichenkette

Die Funktion CONCAT fügt Zeichenketten zusammen. In diesem Beispiel werden die in den Spalten category und name gespeicherten Zeichenfolgen als eine einzige Spalte von Zeichenfolgen mit einem Leerzeichen zwischen dem Wert in der Spalte category und dem Wert in der Spalte name zurückgegeben.

SELECT CONCAT(category, ' ', name) 
FROM tab;

12. Mathematische Operatoren verwenden

Sie können Abfragen zur Berechnung von Werten schreiben, indem Sie mathematische Operatoren wie "+", "-", "*" und "/" verwenden. In diesem Beispiel soll der ermäßigte Preis berechnet werden, indem der Wert in der Spalte discount von dem Wert in der Spalte price subtrahiert wird.

SELECT price - discount
FROM product;

13. Hinzufügen von Daten aus verschiedenen Tabellen

Sie können Datensätze aus verschiedenen Tabellen mit dem Operator UNION ALL verbinden. Denken Sie daran, dass die Datensätze den gleichen Datentyp haben müssen. In diesem Beispiel wollen wir alle Zeilen mit Nachnamen aus der Tabelle customer und alle Zeilen mit Nachnamen aus der Tabelle employee. Es werden alle Nachnamen abgerufen, auch wenn sie sich wiederholen. Wenn wir alle Nachnamen ohne Wiederholungen auswählen wollen, würden wir UNION anstelle von UNION ALL verwenden.

SELECT last_name FROM customer
UNION ALL
SELECT last_name FROM employee;

14. Finden der Schnittmenge von Datensätzen

INTERSECT gibt die Schnittmenge von zwei Datensätzen zurück. In diesem Beispiel wollen wir nur die Nachnamen abrufen, die in beiden Tabellen aufgeführt sind. Um zu sehen, was sich zwischen den Gruppen unterscheidet, verwenden Sie die Operatoren MINUS oder EXCEPT.

Wenn Sie mehr über Mengenoperatoren wissen und eine visuelle Erklärung dieses Konzepts sehen möchten, lesen Sie diesen Artikel.

SELECT last_name FROM customer
INTERSECT
SELECT last_name FROM employee;

15. Verknüpfung von Daten aus verschiedenen Tabellen

Sie können Tabellen mit JOIN verknüpfen, einschließlich INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN und CROSS JOIN (weitere Informationen finden Sie in den am Ende dieses Artikels aufgeführten Kursen). In diesem Beispiel wollen wir Daten aus den Tabellen customer und city. INNER JOIN muss nach FROM und dem Namen der ersten Tabelle stehen, customer. Nach INNER JOIN muss der Name der zweiten Tabelle stehen, city. Die Datensätze mit Daten aus beiden Tabellen werden von ON mit der Bedingung für die Verknüpfung abgeglichen. Die Datensätze in der Tabelle city werden mit den Datensätzen aus der Tabelle customer abgeglichen, wenn sie denselben Wert in der Spalte id in der Tabelle customer und in der Spalte customer_id in der Tabelle city.

SELECT customer.last_name, city.name 
FROM customer
INNER JOIN city 
  ON customer.id = city.customer_id;

16. Aliase von Tabellen und Spalten verwenden

Wenn Sie Tabellen verknüpfen, ist es eine gute Idee, Aliase für Tabellen- und Spaltennamen zu verwenden. In diesem Beispiel wollen wir zwei Tabellen verbinden, customer und cityund benennen sie c und tbenennen. Wir definieren diese neuen Namen in FROM oder JOIN, indem wir AS verwenden. In ähnlicher Weise benennen wir die Spalten last_name in der Tabelle customer und name in der Tabelle city in lname bzw. city um.

SELECT c.last_name AS lname, t.name AS city
FROM customer AS c
INNER JOIN city AS t
  ON c.id = t.customer_id;

17. Zählen der Anzahl von Zeilen in einer Tabelle

COUNT zählt die Anzahl der Zeilen. In diesem Beispiel wird die Anzahl der Werte aus der Spalte id zurückgegeben, die in der Tabelle product (die Anzahl aller Produkte).

SELECT COUNT(id)
FROM product;

18. Berechnen des Durchschnitts der Werte in einer Spalte

Sie können den Durchschnitt der Werte in einer Spalte mit AVG berechnen. In diesem Beispiel gibt die Abfrage den Durchschnittspreis für alle Produkte in der Tabelle zurück product.

SELECT AVG(price)
FROM product;

19. Berechnen der Summe der Werte in einer Spalte

SUM berechnet die Summe der Werte in einer Spalte. In diesem Beispiel gibt sie den Wert aller Produkte zurück.

SELECT SUM(price)
FROM product;

20. Suche nach dem Mindestwert in einer Spalte

Sie können den in einer Spalte gespeicherten Mindestwert mit MIN finden. In diesem Beispiel gibt die Abfrage den Mindestpreis unter den Produkten zurück.

SELECT MIN(price)
FROM product;

21. Suche nach dem Maximalwert in einer Spalte

Sie können den in einer Spalte gespeicherten Maximalwert mithilfe von MAX finden. In diesem Beispiel gibt die Abfrage den Höchstpreis unter den Produkten zurück.

SELECT MAX(price)
FROM product;

22. Berechnen des Aggregatwerts für Gruppen von Datensätzen

GROUP BY fasst Zeilen in Gruppen zusammen, um einen Wert zu berechnen. In diesem Beispiel verwenden wir COUNT, um die Anzahl der Zeilen (die Anzahl der Produkte) in jeder Gruppe zu berechnen (category). Die Spalten in SELECT müssen in die GROUP BY Klausel eingefügt werden. GROUP BY kann auf die gleiche Weise mit anderen Aggregatfunktionen wie MAX, MIN, AVG und SUM verwendet werden.

SELECT category, COUNT(id)
FROM product
GROUP BY category;

23. Filtern von Zeilen mit Aggregatfunktionen

Sie können Datensätze filtern, nachdem Sie die Werte für jede Gruppe mit HAVING berechnet haben. In diesem Beispiel möchten wir Kategorien mit einem Durchschnittspreis der Produkte von weniger als 56,50 abrufen.

SELECT category, AVG(price)
FROM product
GROUP BY category
HAVING AVG(price) < 56.50;

24. Entfernen von Daten aus einer Tabelle

DELETE FROM entfernt alle Daten aus einer Tabelle. In diesem Beispiel wollen wir alle Daten aus der Tabelle product.

DELETE FROM product;

25. Entfernen von Datensätzen, die eine bestimmte Bedingung erfüllen, aus einer Tabelle

Sie können Datensätze, die eine bestimmte Bedingung erfüllen, mit WHERE entfernen. In diesem Beispiel möchten wir Datensätze aus der Tabelle product mit id gleich 5.

DELETE FROM product
WHERE id = 5;

26. Einfügen von Daten in eine Tabelle

Mit INSERT INTO können Sie einen neuen Datensatz zu einer Tabelle hinzufügen. Geben Sie nach INSERT INTO den Namen der Tabelle und dann in Klammern die Namen der Tabellenspalten ein. Danach geben Sie VALUES und in den Klammern die Werte für die Spalten ein. In diesem Beispiel wollen wir 25 in id, 'sofa' in name und 'furniture' in category in die Tabelle einfügen product.

INSERT INTO product(id, name, category) 
VALUES(25, 'sofa', 'furniture');

27. Aktualisieren einer Spalte in einer Tabelle

UPDATE ermöglicht es Ihnen, Daten in den Datensätzen zu ändern. Geben Sie nach UPDATE den Namen der Tabelle ein, dann SET, dann den Namen der zu ändernden Spalte mit "=" und den neuen einzufügenden Wert. Mit dieser Abfrage werden alle Werte in der Spalte geändert. In diesem Beispiel wollen wir alle Werte in der Spalte company in 'ABC' ändern.

UPDATE product SET company = 'ABC';

28. Aktualisieren einer Spalte durch Filtern von Datensätzen

Wenn Sie jedoch nicht alle Werte in einer Spalte ändern möchten, können Sie WHERE mit einer Bedingung hinzufügen. In der Bedingung können Sie angeben, welche Datensätze geändert werden sollen. In diesem Beispiel sollen die Werte in der Spalte name nur für Datensätze mit id=25 in 'armchair' geändert werden.

UPDATE product
SET name = 'armchair'
WHERE id = 25;

29. Erstellen einer Tabelle

Sie können eine Tabelle mit CREATE TABLE erstellen. Geben Sie nach CREATE TABLE den Namen der Tabelle ein und definieren Sie in Klammern die Namen der Spalten und deren Datentypen. In diesem Beispiel wollen wir die Tabelle tab mit zwei Spalten erstellen: id mit dem Datentyp Integer und name mit einer maximalen Länge von 50 Zeichen.

CREATE TABLE tab(id int, name varchar(50));

30. Löschen einer Tabelle

Sie können eine Tabelle mit DROP TABLE löschen. Geben Sie einfach den Namen der Tabelle, die Sie löschen möchten, nach DROP TABLE ein. In diesem Beispiel wollen wir die Tabelle löschen tab.

DROP TABLE tab;

Zusammenfassung

Die oben beschriebenen Abfragen werden sowohl von Anfängern als auch von Profis am häufigsten verwendet. Diese Abfragen benötigen Sie, um eine Tabelle zu erstellen oder zu löschen, Daten in eine Tabelle einzufügen, Datensätze zu aktualisieren oder Daten aus einer Tabelle zu entfernen.

Möchten Sie mehr über das Erstellen und Löschen von Tabellen erfahren? Möchten Sie in das Einfügen, Aktualisieren und Entfernen von Daten in SQL eintauchen? Schauen Sie sich diese hilfreichen Kurse an, in denen Sie praktische Erfahrungen sammeln können:"Erstellen von Tabellen in SQL" und"Einfügen, Aktualisieren oder Löschen von Daten in SQL". "

Wenn Sie mehr über das Überprüfen von Daten in einer Tabelle, das Filtern von Daten, das Berechnen von Aggregatwerten in Spalten oder Gruppen und das Suchen nach Werten, die einem Muster entsprechen, erfahren möchten, sehen Sie sich unseren "SQL für Anfänger" und das dazugehörige Übungsset.

Wenn Sie mehr über die Verknüpfung von Daten aus mehr als zwei Tabellen lernen möchten, verfeinern Sie Ihre Kenntnisse mit "SQL-JOINs."