Serverzeit:   30.03.2017 - 10:48

MySQL-Tutorial für Anfänger

von Benjamin Jung am 18.10.2014

Eine MySQL-Datenbank ist eine einfache aber auch sehr komplexe Möglichkeit Daten praktisch und problemlos zu speichern. Auch PHP, die Serverskriptsprache für Webserver schlecht hin, bietet eine Anbindung an MySQL-Datenbanken an. Wir wollen Ihnen hier Grundlegendes Wissen zu Datenbanken, phpMyAdmin, SQL-Befehlen und der MySQL-Datenanbindung in PHP anbieten.


Grundlegendes zu Datenbanken und MySQL

Eine MySQL-Datenbank läuft oft auf einem separaten Server (z. B. bei Strato). Ob Sie überhaupt eine MySQL-Datenbank verfügbar haben, hängt von Ihrem Webseitenanbieter bzw. von Ihrem Paket Ihres Webseitenanbieters ab. Je nach Umfang kann es aber auch sein, dass Sie mehrere Datenbanken brauchen. Einige Anbieter bieten in verschiedenen Preisklassen mehr Datenbanken und andere Angebot zur Verfügung (siehe auch Provider » Domain-Anbieter). Der MySQL-Server ist üblicherweise auf dem Port 3306 erreichbar. Auch die kostenlose Entwicklungsumgebung XAMPP enthält ein MySQL-Server. Hier sind jedoch die Anzahl der Datenbanken unbegrenzt. Eine Datenbank kann immer mehrere Tabellen enthalten. In einer Tabelle sind dann eben die Daten im Tabellenformat gespeichert.


phpMyAdmin

Die Datenbank selbst wird meistens vom Provider selbst angelegt. Bei XAMPP muss natürlich die Datenbank manuell erstellt werden. Normalerweise wird das Datenbank-Tool phpMyAdmin benutzt, um die Datenbank- und Tabellenstruktur zu erstellen. Auch für das manuelle Befüllen der Tabelle wird das Tool benutzt. Um Daten auszulesen, zu ändern oder hinzuzufügen, wird dann wiederrum normalerweise ein PHP-Skript benutzt. Übrigens phpMyAdmin ist nichts anderes als ein Web-Tool welches in PHP programmiert wurde. Das Tool kann auf der sourceforge-Webseite kostenlos heruntergeladen werden. Bei vielen Anbietern läuft der MySQL-Server auf einem separaten Server, weshalb das phpMyAdmin-Tool auf diesem Server meist schon vorinstalliert ist. phpMyAdmin ist auf den ersten Blick vielleicht etwas unübersichtlich, doch wenn man sich mit der Oberfläche etwas auseinandersetzt, dann ist das Tool einfach nur noch eine große Erleichterung für den Entwickler. Wenn wir eine Tabelle erstellen, dann legen wir mehrere Spalte an, in phpMyAdmin werden hier viele Optionen angezeigt welche geändert werden können. Diese Optionen werden sowohl beim Erstellen einer Tabelle als auch beim Ändern der Struktur einer Tabelle angezeigt. Der Spaltenname sollte eindeutig sein, nicht zu lang sein, und keine Sonderzeichen enthalten. Beim Typ können wir auswählen, welche Art von Daten wir in einer solchen Spalte speichern wollen. Für Zahlen verwenden wir meistens INT, oder für Gleitkommazahlen FLOAT oder DOUBLE. Für einen Text wird meistens TEXT verwendet. Wenn der Text maximal 255 Zeichen lang ist (z. B. für den Namen einer Person), dann sollte auf den sparsamen Typ VARCHAR zurückgegriffen werden. Oft möchte man auch einen UNIX-Timestamp speichern, dafür gibt es den Typ TIMESTAMP. Bei der Länge muss nicht zwingend etwas angegeben werden, hier kann nur die Stellenanzahl zusätzlich begrenzt werden (z. B. der Name vom VARCHAR, kann auf 100 Zeichen begrenzt werden). Bei Kollation kann die Kodierung für TEXT und VARHCHAR gewählt werden, wird dieses Feld nicht ausgefüllt so wird die Kodierung der Tabelle bzw. der Datenbank verwendet. Jede Tabelle muss einen Primärschlüssel erhalten (manche kennen dies bereits aus Microsoft Access). Hierfür wird meistens eine Spalte vom Typ INT mit der Bezeichnung ID verwendet. Dieser Spalte muss dann der Primärschlüssel zugewiesen werden. Dafür setzt man in phpMyAdmin bei der Struktur-Erstellung oder -Bearbeitung, den Wert AUTO_INCREMENT (A_I) (Hacken in Checkbox setzen!) und wählt bei der DropDown-Liste Index den Wert PRIMARY aus. Alle anderen Optionen sind nur für fortgeschrittene Entscheidend. Mit Hilfe dieses Textes können Sie nun schon Ihre erste Tabelle mit phpMyAdmin erstellen.


SQL-Befehle

Um später mit PHP den Datenbankzugriff zu steuern müssen wir erst noch eine kleine "Sprache" lernen: SQL. SQL ist die standardisierte Datenbanksprache für den Datenbankzugriff. Hier einige Schlüsselwörter:

SELECT: Damit wird ein bestimmter Wert, eine Spalte oder auch die ganze Tabelle ausgewählt. Folgt hinter dem SELECT ein Sternzeichen (*), dann werden alle Werte ausgewählt. Folgt stattdessen ein oder mehrere Spaltennamen, dann werde nur diese Spalten ausgewählt.

FROM: Der Befehl wird bei fast allen SQL-Befehlen benötigt, da er die zu verwendende Tabelle angibt, welche hinter dem Schlüsselwort notiert wird.

WHERE: Damit kann die Abfrage gefiltert werden. Hinter dem WHERE werden ein Spaltenname, ein Gleichheitszeichen und ein Wert angegeben. Somit kann z. B. auch nur ein Datensatz ausgewählt werden. Der Filter kann mit mehreren Faktoren verknüpft werden, hierzu dienen AND (und), OR (oder) und XOR (exklusiv oder).

ORDER BY: Damit können beim Auslesen mehrerer Datensätze, diese nach dem Wert einer bestimmten Spalte sortiert werden. Der Spaltenname wird hinter den Schlüsselwörtern notiert. Das Schlüsselwort wird kombiniert mit ASC (aufsteigend) oder DESC (absteigend).

INSERT INTO: Damit kann ein kompletter Datensatz hinzugefügt werden. Hinter den Schlüsselwörtern wird der Tabellenname notiert, gefolgt von runden Klammern. Innerhalb der runden Klammern werden die Spaltennamen aufgelistet, hier wird ID nicht mit angegeben, da der Wert AUTO_INCREMENT ist und somit automatisch gesetzt wird.

VALUES: Dieses Schlüsselwort wird zusammen mit INSERT INTO verwendet. Hinter den Klammern nach dem Tabellenname, wird das Schlüsselwort VALUES verwendet. Hinter diesem Wort kommen wieder runden Klammern. Diesmal werden jedoch die Werte für die neue Zeile eingegeben (bei Texteingaben einfache Anführungszeichen verwenden) und zwar in der gleichen Reihenfolge, wie sie beim Tabellenname den dazugehörigen Spaltenname verwendet haben.

UPDATE: Mit UPDATE kann der Wert einer Tabelle oder auch mehrere Werte eines vorhandenen Datensatzes geändert werden. Hinter dem Schlüsselwort wird der Tabellenname notiert.

SET: Dieses Schlüsselwort wird hinter dem Tabellenname in Kombination mit UPDATE verwendet, um einen Wert zu aktualisieren. Hinter dem SET-Schlüsselwort werden die Spaltenname mit Ihrem neuen Wert notiert. Meistens wird UPDATE und SET mit WHERE kombiniert, um nur einen bestimmten Datensatz zu ändern.

COUNT: Mit COUNT kann die Anzahl der Datensätze gezählt werden. COUNT wird mit runden Klammern verwendet, in der der Spaltenname notiert wird. Meistens wird das Sternzeichen verwendet, da eine Zelle mit keinem Wert nicht gezählt werden würde.

Für die nachfolgenden Beispiele verwenden wir wieder die vorher mit phpMyAdmin erstellte Tabelle (ID, Vorname, Nachname, Gehalt):

SELECT * FROM tutorial

Gibt alle Datensätze mit allen Werten aus.

SELECT Vorname,Nachname FROM tutorial

Gibt die Werte der Spalten Vorname und Nachname.

SELECT Vorname,Nachname FROM tutorial WHERE Gehalt > 2500

Gibt die Werte der Spalten Vorname und Nachname aus, wenn das Gehalt größer als 2500 ist.

SELECT * FROM tutorial ORDER BY Gehalt ASC

Gibt alle Datensätze mit allen Werten aus, geordnet nach dem Gehalt (aufsteigend).

INSERT INTO tutorial(Vorname,Nachname,Gehalt) VALUES(‘Benjamin‘, ‘Jung‘, 3000)

Fügt der Tabelle einen neuen Datensatz hinzu.

UPDATE tutorial SET Gehalt=4000 WHERE Vorname=‘Benjamin‘ AND Nachname=‘Jung‘

Aktualisiert das Gehalt bei allen Datensätzen, bei denen der Vorname "Benjamin" und Nachname "Jung" ist.

SELECT COUNT(*) FROM tutorial

Gibt die Anzahl der Datensätze in der Tabelle zurück.


PHP und MySQL

Nachdem Sie nun die SQL-Befehle kennen können wir mit der Datenbankanbindung über PHP beginnen (Grundkenntnisse in PHP sollten dazu vorhanden sein). Als erstes müssen wir eine Verbindung zum Server herstellen. Dazu nutzen wir die Funktion mysql_connect(). Der Funktion werden 3 Argumente übergeben. Der 1. Parameter gibt den Server an. Bei XAMPP ist dies localhost. Wie bereits erwähnt ist bei vielen Anbietern der MySQL-Server nicht im gleichen Server wie der Webserver. Ist dies der Fall, dann kann nicht localhost verwendet werden. Erkundigen Sie sich hierzu bei Ihrem Anbieter. Der 2. Parameter ist der Benutzername und der 3. Parameter ist das Passwort. Unter XAMPP wird standardmäßig der Benutzer "root" und kein Passwort verwendet (3. Parameter muss übergeben werden, jedoch in der Form "").

mysql_connect("localhost", "root", "");

Als nächstes muss die Datenbank ausgewählt werden, dazu dient die Funktion mysql_select_db(), welcher als Argument der Datenbankname übergeben wird.

mysql_select_db("test");

Um in MySQL eine Datenbankanfrage zu schicken und evtl. darauf Werte zu erhalten. Benötigen wir ein MySQL-Query. Dazu gibt es die PHP-Funktion mysql_query(). Als Parameter wird der SQL-Befehl übergeben. Wenn wir Werte ändern oder hinzufügen wollen, können wir diese Funktion alleinstehend aufrufen. Als Rückgabewert erhalten wir true (erfolgreich) oder false (Fehler). Hier ein Beispiel zum hinzuzufügen eines Wertes.

mysql_query("INSET INTO tutorial(Vorname,Nachname,Gehalt) VALUES(‘Benjamin‘, ‘Jung‘, 3000)");

Wollen wir dagegen einen Wert aus der Datenbank auslesen, benötigen wir zwar ebenfalls die mysql_query()-Funktion jedoch benötigen wir noch eine zweite Funktion, um die Werte auszulesen. Mit der Funktion mysql_fetch_row() können wir die Werte als Array speichern und dann auslesen. Bedingung ist hierbei, dass wirklich nur eine Zeile verwendet wird. Werden mehrere Zeilen im Query maskiert, so wird nur die erste Zeile gespeichert. Mit den folgenden Zeilen rufen wir den Namen der Person mit der ID 1 ab und geben diesen aus.

$query = mysql_query("SELECT Vorname,Nachname FROM tutorial WHERE ID=1");
$data = mysql_fetch_row($query);
echo "ID 1 hat \"".$data[0]." ".$data[1]."\"";

Wollen wir dagegen mehrere Zeilen ausgeben bzw. wollen wir die Daten über ein Objekt ausgeben, so benötigen wir die Funktion mysql_fetch_object(). Die Funktion wir innerhalb einer while-Schleife angewendet. Um nun auf die Daten zuzugreifen verwenden wir die Variable, der wir die Rückgabe von der mysql_fetch_object-Funktion zugewiesen haben und zeigen auf das Element, welches vom Spaltennamen abgeleitet wird. Hier ein Beispiel dazu:

$query = mysql_query("SELECT * FROM tutorial");
while($row = mysql_fetch_object($query))
{
    echo $row->ID.".) ".$query->Vorname." ".$query->Nachname." hat ein Gehalt von ".$query->Gehalt."€!";
}

Nun kennen Sie die wichtigsten MySQL-Befehle, mit welchen Sie nun schon einiges auf die Beine stellen können. Wenn Sie noch weitere Befehle kennenlernen wollen, dann können Sie sich auf der Webseite von PHP durchklicken.

Seit PHP 5.5 wurden alle Funktion namens mysql_*** als deprecated (veraltet) gekennzeichnet. In zukünftigen Versionen werden diese Funktionen entfernt. Alle MySQL-Funktionen in PHP sind in der sogenannten MySQL-API enthalten. Seit einiger Zeit gibt es die Verbesserte Version "MySQL Improved API". Um diese zu nutzen, müssen alle MySQL-Befehle nicht mehr mit mysql_ beginnen sondern mit mysqli_ (z. B. mysqli_select_db statt mysql_select_db).

Hallo Gast  •  Autorenanmeldung
Copyright 2013 - 2014 Homepage-Webhilfe (Benjamin Jung)   •   Homepage-Webhilfe-Blog   •   Blog-Version 1.5   •   Powered by Benjamin Jung