Bestimmte Werte selektieren (mittels SQL)

So, Datenbank anlegen, Tabellen erzeugen und Werte eintragen, soweit so gut. Bevor wir uns auf MySQL stürzen, werden wir erstmal kurz mit SQL etwas rumspielen. In PHPMyAdmin (wenn du deine Tabelle ausgewählt hast), findest du einen Reiter „SQL“. Klick drauf und du siehst ein großes Textfeld indem schon etwas SQL Code zu sehen ist:

SELECT * FROM `kunden` WHERE 1

Klick unten auf den Button „Go“ und dir sollten unsere beiden eingetragenen Datensätze ausgegeben werden:

Der SQL-Befehl erklärt sich folgendermaßen:

  • mit dem Schlüsselwort SELECT sagst du der Datenbank: „Hey, ich möchte jetzt ein paar Daten selektieren“
  • mit dem *-Zeichen sagst: „ich möchte das alle Spalten beim SELECT berücksichtigt werden“. Alternativ könntest du auch anstatt dem * einfach nur „name“ schreiben, dann würden nur die Namen berücksichtigt werden oder „adresse“, dann nur die Adressen.
  • mit FROM beziehst du dich auf die Tabelle. Normalerweise hat eine Datenbank mehr als eine Tabelle und muss wissen, von welcher Tabelle du Werte selektieren möchtest.
  • als nächstes folgt die Tabelle, in unserem Fall „kunden“. Du kannst diese sogenannten Backticks (`) auch weglassen. Im Teil über Tabelle in PHPMyAdmin anlegen hab ich schon angedeutet, dass man auch von MySQL reservierte Wörter als Tabellennamen nutzen kann ohne einen Fehler zu erhalten. Das geht aber nur, wenn man bei allen Operationen (SELECT, INSERT, DELETE, etc.) den Tabellenname in Backticks fasst.

    Einerseits ist es guter Programmierstil, wenn man einfach immer die Backticks setzt. So kann man sich eine Fehlersuche von Stunden sparen (Schande über mein Haupt), andererseits ist es Geschmackssache. Ich hab es mir damals ohne Backticks angewöhnt und weiß mittlerweile, wo ich den Fehler suchen muss, wenn ich mal wieder ein reserviertes Wort verwendet habe. In diesem Tutorial werde ich auf Backticks verzichten, dass heißt aber nicht, das du das auch machen sollst, mach es wie es dir lieber ist.

  • „WHERE 1“ kann man auch weglassen. Mit „WHERE“ grenzt man normalerweise das Ergebnis ein, also anstatt alle Kunden zu selektieren, nur die die mit dem Buchstaben „M“ beginnen oder ähnliches. „WHERE 1“ grenzt aber nichts ein und selektiert einfach alle, daher kann man es weglassen.

SELECT Auswahl eingrenzen

Da wir nicht mehr Tabellen haben, von denen wir Werte selektieren können, werden wir unsere Selektion mit WHERE eingrenzen:

SELECT * FROM kunden WHERE name = 'Max Mustermann'

Um dieses SELECT-Beispiel zu rechtfertigen, stell dir eine Tabelle mit 5000 Kundennamen vor und du möchtest prüfen, ob der Herr Max Mustermann immernoch Kunde bei dir ist (deine Sekretärin löscht Kunden, wenn sie zur Konkurrenz wechseln). Wenn Max Mustermann vorhanden ist, wird dir der Datensatz ausgegeben. Prüfe was passiert, wenn du deinen Namen selektieren möchtest (ausser du heißt „Max Mustermann“ oder „Peter Klein“).

du solltest folgende Meldung erhalten:

MySQL returned an empty result set (i.e. zero rows). (Query took 0.0005 sec)

heißt soviel wie: „nix gefunden was auf deine Suche zutrifft“, genau was wir erwartet haben. Die WHERE-Klausel ist schnell erklärt:
Als erstes gibst du den Spaltennamen an, indem gesucht werden soll (bei uns „name“). Danach sagst du nach welchem Wert gesucht werden soll. Ähnlich wie bei den PHP Vergleichsoperatoren sind wir hier nicht auf einen direkten Vergleich beschränkt. Hätten wir eine Spalte mit dem Alter unserer Kunden, könnten wir nach allen Kunden suchen die unter 40 Jahre oder über 50 Jahre alt sind.

Wie es weitergeht

Im nächsten Teil werden wir eine mittels PHP eine Verbindung zur Datenbank herstellen, die Verbindung brauchen wir um danach unsere ersten Queries mittels PHP auszuführen.

hier geht's weiter...



Feedback Formular