Entdecken Sie eBooks
Kategorien
Entdecken Sie Hörbücher
Kategorien
Entdecken Sie Zeitschriften
Kategorien
Entdecken Sie Dokumente
Kategorien
Für Einsteiger
Einleitung
MySQL ist eine kostenlose Datenbank der Firma Oracle. Oftmals wird sie zusammen mit PHP eingesetzt,
um dynamische Internetseiten zu realisieren.
Im Gegensatz zu Access ist MySQL besser für Mehrbenutzeranwendungen geeignet, außerdem verfügt es
über keine direkte grafische Oberfläche, was für den Einsatz auf Servern sinnvoll ist. Befehle können von
z.B. einem PHP-Script aus direkt an den Datenbankserver gesendet werden, alternativ sind grafische Clients
verfügbar, die sich zum MySQL-Server verbinden können.
Um Daten zu speichern, verfügt MySQL über mehrere Speicherengines. Folgende sind nennenswert:
MyISAM
MyISAM war lange Zeit die Standardengine von MySQL. Es besitzt keine Transaktionssicherung, das
bedeutet die Tabelle wird für jeden Zugriff gesperrt. Das ist allerdings auch nicht immer nötig, beispielsweise
können mehrere Lesezugriffe gleichzeitig ausgeführt werden, ein Lesezugriff muss aber auf einen
Schreibzugriff warten genauso wie ein Schreibzugriff auf einen Lesezugriff wartet.
InnoDB
InnoDB ist die derzeitige Standardengine. Im Gegensatz zu MyISAM ist sie transaktionssicher. Das
bedeutet, das die Einschränkung von gleichzeitigen Schreib- und Lesezugriffen nicht notwendig ist.
Memory
Memory ist die dritte Engine und wird für temporäre (zeitlich begrenzte) Daten eingesetzt. Die
Tabellenstruktur wird wie auch bei MyISAM und InnoDB auf der Festplatte gespeichert, die Daten blieben
allerdings im RAM. Der Vorteil ist, das dies einerseits sehr schnell ist, andererseits langfristig nicht benötigte
Daten nicht die Festplatte zumüllen. Der Nachteil ist, das bei einem Neustart des Rechners auf dem die
Datenbank läuft, alle Daten verloren sind. Außerdem sind einige Datentypen nicht unterstützt.
Verbindung herstellen
Um eine Verbindung zu einer MySQl-Datenbank herzustellen ist unter PHP folgender Befehl nötig:
mysql_connect(“server-adresse“, “benutzername“, “kennwort“);
Datenbank auswählen
Nachdem wir uns zum Server verbunden haben, wäre es sinnvoll eine Datenbank auszuwählen, mit der wir
arbeiten wollen. Das ist mit folgendem Befehl möglich:
mysql_select_db(“Datenbankname“);
SQL-Befehle ausführen
Um SQL-Befehle, wie die im nachfolgenden Kapitel beschriebenen auszuführen, findet oftmals die Funktion
mysql_query() Anwendung. Ein einfaches Beispiel:
$ergebnisvariable = mysql_query(“SELECT * FROM Mitarbeiter“);
Dieses Beispiel wird alle Attribute der Tabelle Mitarbeiter zurückgeben und in die Variable $ergebnisvariable
speichern.
Neben diesen Funktionen sind noch eine Vielzahl weiterer Funktionen verfügbar, deren Dokumentation unter
http://de.php.net/manual/de/ref.mysql.php zur Verfügung steht.
Einfache Abfrage
Eine einfache Abfrage könnte z.B. lauten:
SELECT VORNAME, NACHNAME FROM Kunden
Dieses Beispiel liefert die Attribute Vorname und Nachname aus der Tabelle Kunden
Möchte man alle Attribute zurückgeliefert bekommen, kann ein Wildcard eingesetzt werden:
SELECT * FROM Kunden
Jetzt werden alle Attribute zurückgegeben.
Bedingte Abfrage
Wir können eine bestimmte Bedingung geben, und nur Datensätze die dieses Kriterium erfüllen, werden
zurückgegeben. Beispiel:
SELECT * FROM Kunden WHERE Vorname LIKE 'Karl'
Jetzt werden alle Datensätze zurückgegeben, deren Attribut „Vorname“ den Wert „Karl“ enthält.
Möchten wir mehrere Bedingungen gleichzeitig prüfen, können wir diese mit einem OR oder AND
verknüpfen. Beispiel:
SELECT * FROM Kunden WHERE Vorname LIKE 'Karl' OR Nachname LIKE 'Müller'
Dieses Beispiel wird alle Datensätze zurückgeben, bei denen entweder das Attribut Vorname den Wert „Karl“
enthält oder der Nachname den Wert „Müller“.
SELECT * FROM Kunden WHERE Vorname LIKE 'Karl' AND Nachname LIKE 'Müller'
Dieses Beispiel wird nur Datensätze zurückgeben, bei denen der Vorname „Karl“ ist und der Nachname
„Müller“. Ein Karl Müller wird also zurückgegeben, ein Hans Müller oder ein Karl Janssen allerdings nicht.
Sortierung
Möchten wir die zurückgegebenen Datensätze sortieren, lässt sich der Befehl ORDER BY verwenden.
Beispiel:
SELECT * FROM Kunden WHERE Vorname LIKE 'Karl' ORDER BY Nachname
Jetzt werden alle Kunden mit Vornamen Karl ausgegeben, sortiert von A-Z nach ihrem Nachnamen.
Möchte man von Z-A sortieren, muss noch der Befehl DESC angehängt werden. Beispiel:
SELECT * FROM Kunden WHERE Vorname LIKE 'Karl' ORDER BY Nachname DESC
Außerdem lässt sich ein Anfangspunkt angeben, ab dem MySQL zu zählen anfängt, Beispiel:
SELECT * FROM Kunden WHERE Vorname LIKE 'Karl' ORDER BY Nachname LIMIT 5, 10
Damit werden zehn Datensätze angezeigt, angefangen wird aber erst mit dem 15., es sind also Datensätze 5-
15 zu sehen.
Datensätze entfernen
Um einen Datensatz zu entfernen lässt sich der Befehl DELETE nutzen. Beispiel:
DELETE FROM Kunden WHERE Vorname LIKE 'Franz' AND Nachname LIKE 'Meyer'
Hiermit wird der Datensatz für Franz Meyer gelöscht. Gibt es in der Tabelle mehrere Franz Meyer, werden
diese alle gelöscht. Ein Löschvorgang lässt sich auch nicht rückgängig machen.
Datensätze verändern
Um Datensätze zu verändern lässt sich der Befehl UPDATE benutzen. Beispiel:
UPDATE Kunden SET Nachname = 'Meyer' WHERE Vorname LIKE 'Hans'
Dieser Befehl wird bei allen Kunden, die den Vornamen Hans tragen, als neuen Nachnamen „Meyer“
eintragen.
Statt die SQL-Befehle mühsam per Text eingeben zu müssen, lässt sich auch das kostenlose Tool
phpMyadmin einsetzen. Dieses bietet eine grafische Weboberfläche um Datensätze anzuzeigen, zu
verändern, neue Tabellen zu erstellen oder auch zu löschen uvm.
Viele Webhoster stellen phpMyadmin bereits standardmäßig zur Verfügung, falls dies nicht der Fall sein
sollte, muss es selber installiert und konfiguriert werden, womit wir uns allerdings in dieser Anleitung nicht
beschäftigen werden.
Erste Schritte
Nachdem man vor dem Login-Schirm von phpMyadmin sitzt, meldet man sich mit einem gültigen
Benutzerkonto an MySQL an, worauf man in den Hauptbildschirm gelangt. Hier lassen sich Einstellungen zu
phpMyadmin vornehmen, beispielsweise die verwendete Sprache oder der Oberflächenstil.
Dabei wurden ein paar Spalten abgeschnitten, diese sind für unsere Tabelle allerdings auch unwichtig.
Nach einem Klick auf Speichern sollte phpMyadmin uns jetzt eine neue Tabelle erzeugt haben, es meldet den
dafür gesendeten Befehl und zeigt uns unsere (noch leere) Tabelle an.
In der oberen Bildschirmhälfte befindet sich jetzt ein Menü. Wir befinden uns derzeit noch im Reiter
„Struktur“.