2. Grundlagen von SQL

In diesem Kapitel lernst du die grundlegenden SQL-Befehle kennen, mit denen du Daten aus einer Datenbank abrufen und bearbeiten kannst. Wir beginnen mit der SELECT-Anweisung und erweitern dann dein Wissen um WHERE, ORDER BY und LIMIT.

2.1 SQL-Syntax

SQL-Befehle folgen einer klaren Struktur, die oft als Syntax bezeichnet wird. Hier sind die wichtigsten Regeln:

  • Groß- und Kleinschreibung: SQL ist in der Regel case-insensitive, d. h. es spielt keine Rolle, ob du Groß- oder Kleinschreibung verwendest,  so ist beispielsweiseSELECT dasselbe wie select. Es ist jedoch üblich, SQL-Schlüsselwörter, wie z.B. SELECT, FROModer WHERE in Großbuchstaben zu schreiben, um sie besser lesbar zu machen.

  • Semikolon: Ein SQL-Befehl endet in der Regel mit einem Semikolon (;), besonders wenn mehrere Befehle hintereinander ausgeführt werden. Es ist generell eine gute Praxis, immer ein Semikolon ans Ende eines Befehls zu setzen.

  • Kommentare: Du kannst Kommentare in deinem SQL-Code hinzufügen, um Notizen zu machen:

    • Einzeilige Kommentare: -- Dies ist ein Kommentar

    • Mehrzeilige Kommentare: /* Dies ist ein mehrzeiliger Kommentar */

Im nächsten Abschnitt schauen wir uns die grundlegenden Schlüsselwörter SELECT, FROM  und WHEREgenauer an. Dazu verwenden wir wieder unsere Tabelle benutzer mit den Spalten id, name, alter, email und gruppe.

Tabelle Benutzer

2.2 SELECT-Anweisung

Die SELECT-Anweisung ist der grundlegendste und am häufigsten verwendete SQL-Befehl. Mit SELECT kannst du Daten aus einer Tabelle abrufen.

Syntax:

SELECT spaltenname FROM tabellenname;

Beispiel 1:

Angenommen, du willst aus der Tabelle benutzer alle Namen abrufen, dann schreibst du:
SELECT name FROM benutzer;
Als Ergebnis erhältst du dann die folgende Tabelle, welche dir die Spalte mit den Namen ausgibt.

Tabelle Benutzer, Spalte Name

Beispiel 2:

Wenn du mehrere Spalten aus einer Tabelle abrufen möchtest, kannst du die gewünschten Spalten durch Kommas getrennt in dein SQL-Statement einfügen.
SELECT name, email, gruppe FROM benutzer;
Das Ergebnis dieses Statements ist eine Tabelle, die die drei angeforderten Spalten enthält.
Tabelle Benutzer Select

Alle Spalten abrufen:

Wenn du alle Spalten einer Tabelle abrufen möchtest, kannst du das Sternchen (*) verwenden:
SELECT * FROM benutzer;
Als Ergebnis wird die gesamte Tabelle ausgegeben.

2.3 FROM-Klausel

Die FROM-Klausel ist ein wesentlicher Bestandteil der SELECT-Anweisung. Sie gibt an, aus welcher Tabelle (oder welchen Tabellen) die Daten abgerufen werden sollen. Ohne die FROM-Klausel weiß die Datenbank nicht, wo sie die angeforderten Daten suchen soll.

Syntax:

SELECT spaltenname 
FROM tabellenname;
  • spaltenname: Die Spalte(n), die du abrufen möchtest. Du kannst auch * verwenden, um alle Spalten auszuwählen.
  • tabellenname: Die Tabelle, aus der die Daten abgerufen werden sollen.

Beispiel 1: Abrufen aller Spalten aus einer Tabelle

Um alle Spalten aus der Tabelle benutzer abzurufen, verwendest du:
SELECT * 
FROM benutzer;

Beispiel 2: Abrufen spezifischer Spalten aus einer Tabelle

Wenn du nur bestimmte Spalten abrufen möchtest, z. B. name und email, schreibst du:
SELECT name, email 
FROM benutzer;

Beispiel 3: Abrufen von Daten aus mehreren Tabellen (Grundlage für Joins)

Die FROM-Klausel kann auch verwendet werden, um Daten aus mehreren Tabellen abzurufen. Dies ist die Grundlage für das Konzept der Joins, das in späteren Kapiteln behandelt wird. Ein einfaches Beispiel:
SELECT benutzer.name, bestellungen.datum 
FROM benutzer, bestellungen 
WHERE benutzer.id = bestellungen.benutzer_id;
In diesem Beispiel werden Daten aus den Tabellen benutzer und bestellungen abgerufen, basierend auf einer gemeinsamen Bedingung.

Warum ist die FROM-Klausel wichtig?

  • Datenquelle: Sie legt fest, aus welcher Tabelle die Daten stammen.
  • Flexibilität: Sie ermöglicht das Abrufen von Daten aus einer oder mehreren Tabellen.
  • Grundlage für Joins: Sie ist der Ausgangspunkt für komplexere Abfragen, bei denen Daten aus mehreren Tabellen kombiniert werden.
Benutzer mit Alter über 22

2.4 WHERE-Klausel

Die WHERE-Klausel ist eines der wichtigsten Werkzeuge in SQL, um Daten basierend auf bestimmten Bedingungen zu filtern. Mit ihr kannst du gezielt nur die Zeilen auswählen, die deinen Kriterien entsprechen. Ohne die WHERE-Klausel würde eine Abfrage alle Zeilen einer Tabelle zurückgeben, was in den meisten Fällen nicht gewünscht ist.

Die grundlegende Syntax der WHERE-Klausel lautet:

SELECT spaltenname 
FROM tabellenname 
WHERE bedingung;

Dabei gilt:

  • spaltenname: Die Spalte(n), die du abrufen möchtest. Du kannst auch * verwenden, um alle Spalten auszuwählen.
  • tabellenname: Die Tabelle, aus der du Daten abrufen möchtest.
  • bedingung: Die Bedingung, die erfüllt sein muss, damit eine Zeile in das Ergebnis aufgenommen wird.

Syntax:

SELECT spaltenname FROM tabellenname WHERE bedingung;

Beispiel: Einfache Filterung

Um alle Benutzer abzurufen, die älter als 22 Jahre sind, schreibst du:

SELECT * FROM benutzer WHERE alter > 22;

Die Ergebnistabelle enthält nur die Zeilen, in denen der Wert der Spalte alter größer als 22 ist. In unserem Beispiel sieht die Ergebnistabelle wie folgt aus:

Benutzer mit Alter über 22

2.5 ORDER BY-Klausel

Die ORDER BY-Klausel wird verwendet, um die Ergebnisse einer Abfrage zu sortieren. Du kannst die Daten entweder in aufsteigender (ASC) oder absteigender (DESC) Reihenfolge sortieren.

Syntax:

SELECT spaltenname FROM tabellenname ORDER BY spaltenname ASC|DESC;

Beispiel:

Um alle Benutzer nach ihrem Namen in aufsteigender Reihenfolge zu sortieren, schreibst du:

SELECT * FROM benutzer ORDER BY name ASC;

2.6 LIMIT-Klausel

Die LIMIT-Klausel wird verwendet, um die Anzahl der zurückgegebenen Zeilen zu begrenzen. Dies ist besonders nützlich, wenn du nur eine bestimmte Anzahl von Ergebnissen anzeigen möchtest.

Syntax:

SELECT spaltenname FROM tabellenname LIMIT anzahl;

Beispiel:

Um nur die ersten 10 Benutzer aus der Tabelle abzurufen, schreibst du:

SELECT * FROM benutzer LIMIT 10;

2.7 Kombination der Klauseln

Du kannst die Klauseln WHERE, ORDER BY und LIMIT kombinieren, um präzise Abfragen zu erstellen.

Beispiel:

Um die Namen der 5 ältesten Benutzer abzurufen, schreibst du:

SELECT name FROM benutzer ORDER BY alter DESC LIMIT 5;

2.8 Zusammenfassung

In diesem Kapitel hast du gelernt:

  • Die Grundlagen der SQL-Syntax.

  • Wie du Daten mit SELECT abrufst.

  • Wie du mit der FROM-Klausel die Tabelle(n) angibst, aus der die Daten stammen.

  •  
  • Wie du Daten mit WHERE filterst.

  • Wie du Daten mit ORDER BY sortierst.

  • Wie du die Anzahl der Ergebnisse mit LIMIT begrenzt.

Im nächsten Kapitel werden wir uns mit Daten filtern und sortieren beschäftigen und lernen, wie du komplexere Abfragen erstellst.

Quiz zu den Grundlagen von SQL

Teste dein Wissen mit diesen Fragen:

  1. Welcher Befehl wird verwendet, um Daten aus einer Tabelle abzurufen?

    • a) FILTER

    • b) SELECT

    • c) GET

  2. Wie filterst du Daten, die einem bestimmten Kriterium entsprechen?

    • a) Mit ORDER BY

    • b) Mit LIMIT

    • c) Mit WHERE

  3. Wie sortierst du Daten in absteigender Reihenfolge?

    • a) ORDER BY spaltenname ASC

    • b) ORDER BY spaltenname DESC

    • c) ORDER BY spaltenname LIMIT