Wie im vorherigen Abschnitt gezeigt, ist das Abrufen der Daten
einer ganzen Tabelle recht einfach. Sie lassen einfach die
WHERE
-Klausel in der
SELECT
-Anweisung weg. In der Regel wollen
Sie aber nicht die gesamte Tabelle anzeigen – insbesondere
dann nicht, wenn diese sehr groß ist. Stattdessen werden Sie
meist an der Beantwortung einer bestimmten Frage interessiert
sein. In diesem Fall müssen Sie Beschränkungen für die
gewünschten Daten definieren. Betrachten wir einmal einige
Auswahlabfragen dahingehend, welche Fragen diese zu Ihren
Haustieren beantworten.
Sie können die Auswahl in Ihrer Tabelle auch auf bestimmte Datensätze beschränken. Wollen Sie z. B. die Änderungen am Geburtsdatum von Bowser überprüfen, dann wählen Sie den entsprechenden Datensatz wie folgt aus:
mysql> SELECT * FROM haustier WHERE name = 'Bowser';
+--------+----------+----------+------------+------------+------------+
| name | besitzer | gattung | geschlecht | geburtstag | todestag |
+--------+----------+----------+------------+------------+------------+
| Bowser | Diane | Hund | m | 1989-08-31 | 1995-07-29 |
+--------+----------+----------+------------+------------+------------+
Die Ausgabe bestätigt die korrekte Änderung der Jahresangabe von 1979 auf 1989.
Bei String-Vergleichen wird die Groß-/Kleinschreibung
normalerweise ignoriert, weswegen Sie den Namen als
'bowser'
, 'BOWSER'
usw.
angeben können. Das Abfrageergebnis ist stets gleich.
Sie können Bedingungen aber nicht nur für
name
, sondern für jede beliebige Spalte
angeben. Wenn Sie beispielsweise wissen wollen, welche Tiere
im Jahre 1998 oder danach geboren wurden, testen Sie die
Spalte geburtstag
:
mysql> SELECT * FROM haustier WHERE geburtstag >= '1998-1-1';
+----------+----------+---------+-------------+------------+----------+
| name | besitzer | gattung | geschlecht | geburtstag | todestag |
+----------+----------+---------+-------------+------------+----------+
| Chirpy | Gwen | Vogel | w | 1998-09-11 | NULL |
| Puffball | Diane | Hamster | w | 1999-03-30 | NULL |
+----------+----------+---------+-------------+------------+----------+
Sie können auch Bedingungen kombinieren, um etwa nach weiblichen Hunden zu suchen:
mysql> SELECT * FROM haustier WHERE gattung = 'Hund' AND geschlecht = 'w';
+-------+-----------+---------+-------------+------------+----------+
| name | besitzer | gattung | geschlecht | geburtstag | todestag |
+-------+-----------+---------+-------------+------------+----------+
| Buffy | Harold | Hund | w | 1989-05-13 | NULL |
+-------+-----------+---------+-------------+------------+----------+
Obige Abfrage verwendet den Operator AND
(logisches Und). Es gibt analog auch einen Operator
OR
(logisches Oder):
mysql> SELECT * FROM haustier WHERE gattung = 'Schlange' OR gattung = 'Vogel';
+----------+----------+----------+-------------+------------+----------+
| name | besitzer | gattung | geschlecht | geburtstag | todestag |
+----------+----------+----------+-------------+------------+----------+
| Chirpy | Gwen | Vogel | w | 1998-09-11 | NULL |
| Whistler | Gwen | Vogel | NULL | 1997-12-09 | NULL |
| Slim | Benny | Schlange | m | 1996-04-29 | NULL |
+----------+----------+----------+-------------+------------+----------+
AND
und OR
können auch
gemischt verwendet werden, wobei AND
jedoch
Vorrang vor OR
hat. Wenn Sie beide
Operatoren verwenden, bietet sich die Verwendung von Klammern
an, um exakt anzugeben, wie die Bedingungen gruppiert werden
sollen:
mysql>SELECT * FROM haustier WHERE (gattung = 'Katze' AND geschlecht = 'm')
->OR (gattung = 'Hund' AND geschlecht = 'w');
+-------+-----------+---------+-------------+------------+----------+ | name | besitzer | gattung | geschlecht | geburtstag | todestag | +-------+-----------+---------+-------------+------------+----------+ | Claws | Gwen | Katze | m | 1994-03-17 | NULL | | Buffy | Harold | Hund | w | 1989-05-13 | NULL | +-------+-----------+---------+-------------+------------+----------+
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.