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 zulieferer, telefon 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
anzahl, produkt
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