Suchbefehle Weil die Suche so zentral ist, soll ihnen ein eigener Abschnitt gewährt werden. (1) SELECT id FROM tname (2) SELECT id,nname,vname FROM tname (3) SELECT * FROM tname (1) Alle ids der Tabelle tname werden zurückgegben. (2) Die Werte der Felder id,nname,vname der Tabelle tname werden zurückgegben. (3) Alle Felder der Tabelle tname werden zurückgegben. SELECT COUNT (feld) FROM tname Anzahl der Datensätze der Tabelle tname SELECT feld1, feld2,…
FROM tname WHERE... id IN (2,7,31…) LIMIT n LIKE ’%er%’ ORDER BY GROUP BY / HAVING Wenn aus einer Literaturdatenbank, in der viele Autoren mehrfach vorkommen, eine Autorenliste generiert werden soll, in der jeder Autor nur einmal auftaucht, dann wird GROUP BY verwendet. SELECT autor FROM litDB GROUP BY autor GROUP BY kann in Kombination mit WHERE verwendet werden. Mit der HAVING Klausel kann man sich dann auf die durch GROUP BY erzeugten Gruppen beziehen: SELECT autor FROM litDB GROUP BY autor HAVING autor>’L’ Umgang mit mehreren Tabellen Bei der Suche in mehreren Tabellen stellt sich z.B. die Frage welche id denn gemeint ist, die von Tabelle A oder die von Tabelle B. Also muß ma die Felder mit dem Tabellennamen und dem Feldnamen referenzieren. Als Trenner wird ein Punkt gesetzt: tname.feldname Eine andere Möglichkeit ist, den Feldern neue Namen für die Ergebnisausgabe zuzuweisen. Eine Technik, die besonders bei den Aggregatfunktionen (s.u.) sinnvoll ist.
Mit AS läßt sich in der Ergebnistabelle ein Feld anlegen:
Ausgangstabellen für die fogenden Beispiele:
Aggregatfunktionen MySQL kennt eine Reihe von sogenannten Aggregatfunktionen, die aus den Spaltenwerten einer Tabelle bereits bei der Abfrage einen Wert ermitteln. Folgende Aggregatfunktionen kennt MySQL:
Beispiel: Joins Cross Join SELECT name, titel FROM band,album gleichbedeutend mit SELECT name, titel FROM band CROSS JOIN album Kreuzverband (=FULL JOIN, vollständiger Verbund): Jeder Datensatz der Tabelle band wird mit der Tabelle album verbunden. Die Verknüpfung wird in der angegebenen Reihenfolge vorgenommen.
LEFT JOIN (= LEFT OUTER JOIN, qualifizierter äußerer Verbund): Right Join RIGHT JOIN (= RIGHT OUTER JOIN, qualifizierter äußerer Verbund): Unterabfragen Unterabfragen stehen in Klammern und sich Bestandteil eines übergeordneten SELECT (ab MySQL Version 4.1.0). SELECT firma FROM label WHERE id=(SELECT MAX(id) FROM band) |