CodeGym /Kurse /SQL SELF /Basis-Syntax von SELECT: Aufbau und Komponenten einer Abf...

Basis-Syntax von SELECT: Aufbau und Komponenten einer Abfrage

SQL SELF
Level 1 , Lektion 4
Verfügbar

Also, wir haben schon angefangen, uns mit SELECT zu beschäftigen – das ist der SQL-Befehl, mit dem du Daten aus einer Tabelle oder mehreren Tabellen in der Datenbank rausziehen kannst. Man kann sagen, das ist wie die F5-Taste im Browser, aber für die Datenbank: "Zeig mir, was du hast". Die einfachste Struktur einer Abfrage sieht so aus:


        SELECT spalte1, spalte2, … spalteN
        FROM tabelle
        

Wo:

  • SELECT — das ist das Schlüsselwort, mit dem die Abfrage startet.
  • spalte1, spalte2, ... — das ist die Liste der Spalten, deren Daten du haben willst.
  • FROM tabelle — gibt an, aus welcher Tabelle die Daten geholt werden.

Lass uns das gleich mal mit Beispielen auseinandernehmen!

Grundstruktur vom SELECT-Befehl

Auswahl aller Spalten. Wenn du alle Daten aus einer Tabelle sehen willst, kannst du das Sternchen * benutzen. Zum Beispiel haben wir eine Tabelle students:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

Um alle Daten aus dieser Tabelle rauszuholen, benutzt du diese Abfrage:


        SELECT * FROM students
        

Und das Ergebnis ist dann so ein Set von Spalten und Zeilen:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

Also – die ganze Tabelle, wie bestellt.

Auswahl bestimmter Spalten

Klar, meistens willst du nur die Spalten holen, die du wirklich brauchst, damit du nicht unnötig viele Daten ziehst. Zum Beispiel willst du die Namen und das Alter der Studenten wissen. Dann schreibst du die Abfrage so:


        SELECT name, age FROM students
        

Das Ergebnis der Abfrage sieht dann so aus:

name age
Alex 17
Maria 19
Otto 21

Merkst du den Unterschied? Wenn du nur die Spalten auswählst, die du brauchst, wird die Abfrage schneller und übersichtlicher.

Reihenfolge der Ausführung einer Abfrage

SQL-Abfragen sind ein bisschen tricky: Auch wenn wir SELECT am Anfang schreiben, wird in Wirklichkeit zuerst der FROM-Teil verarbeitet, und erst danach kommt das Ergebnis zurück. So läuft das unter der Haube ab:

  1. Die Tabelle im FROM wird verarbeitet: Der Server sucht die angegebene Tabelle raus.
  2. Bedingungen für Zeilen werden angewendet (falls vorhanden): Es werden nur die Zeilen ausgewählt, die zu den Bedingungen passen.
  3. Die angegebenen Spalten werden ausgewählt: Aus den übrig gebliebenen Zeilen werden die gewünschten Daten rausgezogen.

Also bei so einem Befehl:


        SELECT name FROM students
        

Findet der Server zuerst die Tabelle students, dann liest er die Spalte name aus und erst dann gibt er das Ergebnis zurück.

Praktische Beispiele

Beispiel Nr. 1: Liste der Studenten.

Stell dir vor, du bist Uni-Admin und brauchst die Namen aller Studenten. Die Abfrage:

SELECT name
FROM students;

Ergebnis:

name
Alex
Maria
Otto

Beispiel Nr. 2: Alter und id hinzufügen.

Jetzt brauchst du id, Namen und Alter. Einfach noch ein paar Spalten dazu packen:

SELECT name, age, id
FROM students;

Ergebnis:

name age id
Alex 17 1
Maria 19 2
Otto 21 3

Beispiel Nr. 3: Ausdrücke hinzufügen.

Angenommen, du willst wissen, wie viele Jahre deinen Studenten noch bis zur Volljährigkeit fehlen.

Dann musst du statt age einfach 21-age schreiben. Wir nehmen hier mal an, dass die Volljährigkeit bei 21 ist:

SELECT name, 21-age
FROM students;

Und das ist das Ergebnis:

name 21-age
Alex 4
Maria 2
Otto 0

Mehr zu Ausdrücken gibt's in den nächsten Vorlesungen. Jetzt schauen wir uns mal die Fehler an, die bestimmt schon einigen von euch passiert sind.

Typische Fehler bei SELECT

Tippfehler bei Tabellen- und Spaltennamen.

Einer der häufigsten Fehler ist, wenn der Name der Tabelle oder Spalte falsch geschrieben ist.

Wenn es in der Datenbank keine Tabelle studentsz gibt, bekommst du einen Fehler:

SELECT name
FROM studentsz; -- Fehler: Tabelle gibt's nicht!

Oder wenn die Spalte name heißt, du aber student_name schreibst, wieder Fehler:

SELECT student_name -- Fehler: Spalte gibt's nicht!
FROM students;

Die Lösung ist einfach: Immer die Namen von Tabellen und Spalten checken.

Syntaxfehler in der Abfrage.

Noch ein häufiger Fehler – du hast das Komma vergessen, wenn du die Spalten auflistest:

SELECT name age id -- Fehler: Komma fehlt!
FROM students; 

Aber keine Panik. Die SELECT-Abfrage holt nur Daten. Fehler in so einer Abfrage können deine Datenbank nicht kaputt machen. Aber wenn wir zu Abfragen kommen, die Daten ändern – dann werden Fehler richtig teuer.

Verwendung von * statt bestimmter Spalten.

Wenn du * benutzt, holst du ALLE Daten, auch die, die du gar nicht brauchst. Das macht alles langsamer und kann bei großen Tabellen echt ein Problem sein. Wähle immer nur die Spalten aus, die du wirklich brauchst.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION