Hauptmenü

Untermenü

MySQL - SQL - Befehle - Suchen

1. SELECT

Für die Suche nach Datensätzen gibt es nur einen aber recht komplexen Befehl namens SELECT. Für den ersten Überblick habe ich mich nur auf die Hauptmöglichkeiten konzentriert.

Syntax


SELECT [FUNKTION] (feldnamen) [AS (alias)] FROM tabelle
  [LEFT JOIN|RIGHT JOIN|INNER JOIN (join)]
  [WHERE (bedingung/FUNKTION)]
  [GROUP BY (feldnamen)]
  [ORDER BY (reihenfolge) [ACS|DESC]]
  [LIMIT anfang,ende];

Erläuterung

Uff, das sieht ja fürchterlich aus, aber keine Angst, ist leichter als man denkt. Die select-Anweisung ist für die Suche nach Daten zuständig. Die einfachste Form sieht so aus:


SELECT FROM kunden

Damit werden alle Kunden inklusive aller Felder ausgegeben. Man kann sich aber auch nur bestimmte Datenfelder ausgeben lassen:


SELECT zulieferertelefon FROM kunden

2. Optionen

Damit hat man die Möglichkeit, Suchabfragen zu präzisieren. Ich habe das schon mal erwähnt, weise aber trotzdem noch mal darauf hin. Und wann immer die Gelegenheit dazu gegeben ist, sollte man es auch machen.

AS

Damit kann man einem Datenfeld einen "anderen" Namen geben, der aber nur in der Ausgabe relevant ist und nicht (!) den Feldnamen in der Tabelle ändert.


SELECT zulieferer AS hersteller FROM hersteller;

LEFT/RIGHT/INNER JOIN...

Führt mehrere Tabellen zusammen. Wie das im Detail funktioniert, zeig ich euch an dieser Stelle.


SELECT 
  anzahlprodukt 
FROM 
  bestellung
LEFT JOIN produkt
  ON produkt.id bestellung.pr_id;

WHERE

Mit dieser optionalen Zusatzanweisung definiert man Bedingungen für die Suche.


SELECT strasse FROM kunde WHERE id 5;

GROUP BY

Gruppiert das Ergebnis zu einer Einheit. Das kann ein Datenfeld sein oder auch eine Berechnungsformel.


SELECT strasse FROM hersteller GROUP BY ort

ORDER BY

Legt die Reihenfolge der Ausgabe fest. Die Sortierung hängt vom Typ des Datenfeldes ab, also alphabetisch bei Zeichenketten oder numerisch bei Zahlen. ASC steht für aufsteigend, DESC für absteigend.


SELECT ort FROM kunde ORDER BY plz DESC

LIMIT

Begrenzt die Anzahl der auszugebenden Datensätze. Die erste Zahl steht für einen Anfangswert, die zweite für die Anzahl.


SELECT FROM bestellung LIMIT 5,10;

Funktionen

Hier können SQL-eigene Funktionen eingebaut werden. Zu den näheren Erläuterungen komme ich gleich.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt