|
| |
SELECT select-ausdruck FROM tabellen [ WHERE where-def ] [ ORDER BY spalte [ASC | DESC], ... ] Liest Daten aus einer Tabelle aus. Die einzelnen Abschnitte werden unten erklärt.
Hier kann eine oder mehrere Tabellen (durch Kommata getrennt) angegeben werden, aus denen die Daten ausgelesen werden sollen.
Der Select-Ausdruck gibt die auszulesenen Spalten an. Diese werden durch Kommata getrennt. Um alle Spalten auszulesen wird * angegeben: SELECT * FROM gaestebuch Liest die gesamte Tabelle "gaestebuch" aus. SELECT name,email FROM gaestebuch Liest die Spalten "name" und "email" aus der Tabelle "gaestebuch". Neben den Spalten können auch Befehle in dem Select-Ausdruck verwendet werden. Dies soll hier jedoch nicht weiter erklärt werden. Ein Beispiel wäre: SELECT count(*) FROM gaestebuch Liest die Anzahl der Datensätze aus der Tabelle. Werden die Daten aus mehreren Tabellen ausgelesen, so muss vor dem Spaltennamen der Tabellenname gefolgt von einem Punkt eingefügt werden, da es sonst zu Mehrdeutigkeiten kommen kann: SELECT eintraege.*,mitglieder.name FROM mitglieder,eintraege Liest alle Spalten aus der Tabelle "eintraege" und die Spalte "name" aus der Tabelle "mitglieder" aus.
Oft kommt vor, dass man nicht die komplette Tabelle mit allen Datensätzen auslesen möchte, sonder nur einen einzigen. Dann wird WHERE eingesetzt. Denn nach diesem Schlüsselwort, können mehrere Bedingungen folgen, die wie bei PHP durch AND (&&) oder OR (||) verknüpft werden. Der eigentliche Bedingunsausdruck sieht fast genauso wie bei PHP aus, nur mit dem Unterschied, das anstatt des doppelten Gleichheitszeichen (==) nur ein einfaches verwendet werden muss: SELECT * FROM eintraege WHERE name='Peter' Es ist zu bemerken, dass MySQL nicht zwischen Groß- und Kleinschreibung unterscheidet. Neben der simplen Gleichheitsabfrage gibt es aber noch die größer (>) / kleiner (<) und die oft verwendete LIKE-Abfrage. Hier wird an Stelle des Gleichheitszeichens das Schlüsselwort LIKE verwendet. Anschließend folgt in Hochkommata eingeschlossen die Zeichenkette, die in der Spalte gesucht werden soll. Hierbei gibt es zwei Platzhalter: Das Prozentzeichen % steht für belibig viele Zeichen, der Unterstrich _ für genau ein Zeichen: SELECT * FROM mitglieder WHERE name LIKE 'Pe%' Liest alle Spalten aus der Tabelle "mitglieder", wo die Spalte "name" mit "Pe" beginnt. SELECT * FROM mitglieder WHERE name LIKE 'p_ter' Liest alle Spalten aus der Tabelle "mitglieder", wo die Spalte "name" z.B. Peter oder Pater ist.
Hinter dem Befehl ORDER BY werden durch Kommata getrennt die Spalten angegeben, nach denen das Ergebnis einer Abfrage sortiert werden soll. Hierbei wird zunächst nach der ersten Spalte sortiert, und wenn dann die Sortierung immer noch nicht eindeutig ist, wird nach der zweiten Spalte sortiert. Die Sortierungs-Richtung (Absteigend oder Aufsteigend) wird hinter dem Spaltenname durch die Schlüsselwort ASC (Aufsteigend) und DESC (Absteigend) angegeben. Wird keine Sortierungsrichtung angegeben, so wird ASC verwendet. SELECT * FROM mitglieder ORDER BY name, vorname Gibt die Tabelle "mitglieder" aus, und sortiert zunächst nach der Spalte "name" und dann nach "vorname". Beispiel Das folgende Beispiel liest die Spalte "titel" aus der Tabelle "daten" aus, wobei nur die Datensätze ausgegeben werden, bei denen in der Spalte "text" die Zeichenkette in $suche vorkommt. $suche wurde bei uns vorher definiert, in der Anwendung erfolgt dies aber per Formularübergabe. Desweiteren wird die Tabelle "daten" mit "rubriken" verknüpft. Hierbei wird "daten.rubriknr=rubriken.rubriknr" angegeben, um einen sinnvollen Zusammenhang der Daten zu erhalten. Probieren Sie einmal ohne den o.g. Befehl aus, die Abfrage zu machen, und vergleichen Sie das Ergebnis!
|
| ||