19 Exkurs : SQL und phpmyadmin
Im folgenden Kapitel wenden wir uns der Datenbank zu. Dabei lernen wir eine neue Sprache (keine Programmiersprache, sondern eine Abfrage-Sprache) kennen: SQL. SQL ist im Umgang mit Datenbank zentral. Zuerst mal eine Definition nach Wikipedia:
- SQL:
- SQL ist eine Datenbanksprache zur Definition von Datenstrukturen in relationalen Datenbanken sowie zum Bearbeiten (Einfügen, Verändern, Löschen) und Abfragen von darauf basierenden Datenbeständen. Die Sprache basiert auf der relationalen Algebra, ihre Syntax ist relativ einfach aufgebaut und semantisch an die englische Umgangssprache angelehnt. Ein gemeinsames Gremium von ISO und IEC standardisiert die Sprache unter Mitwirkung nationaler Normungsgremien wie ANSI oder DIN. Fast alle gängigen Datenbanksysteme unterstützen SQL – allerdings in unterschiedlichem Umfang und leicht voneinander abweichenden „Dialekten“. Durch den Einsatz von SQL strebt man die Unabhängigkeit der Anwendungen vom eingesetzten Datenbankmanagementsystem an.
Zusammenfassend kann man sagen: Mit SQL ersetzen Sie das Geklicke unter MS Access um Tabellen, Datenbanken etc. zu erstellen, abzufragen und zu beabeiten.
19.1 Werkzeug: PhpMyAdmin
Obwohl wir auch über die Konsole mit der Datenbank arbeiten könnten (was in der Praxis oft/ausschliesslich der Fall ist), werden wir mit einem Werkzeug arbeiten das uns die Arbeit etwas vereinfacht: PhpMyAdmin.
- Testen:
- Testen Sie bitte den Zugriff auf die Webseite _http://localhost/phpmyadmin_ - Sie sollten eine Webseite mit einem Login erhalten. Melden Sie sich als Datenbank-Root an.
19.2 Schritt 1 : Datenbank erstellen
Ein relationales Datenbank-Management-System arbeitet also mit SQL um Dinge zu erstellen/löschen/bearbeiten. In einem ersten Schritt wollen wir eine neue Datenbank erstellen. Wählen Sie dazu oben in der GUI den Tab “SQL” aus.
Kopieren Sie folgenden Code in das Freitextfeld und führen Sie den Code aus:
- Testen:
- Sie sollten jetzt links in der Darstellung eine neue Datenbank erkennen. Klicken Sie nun links auf Ihre Datenbank.
19.3 Schritt 2 : Tabelle erstellen
Um nun Daten in einer Datenbank zu speichern, benötigen wir Tabellen mit Attributen. Achtung, Sie müssen:
- …links im Baum auf Ihre Datenbank klicken
- …nochmals oben im Tab “SQL” anklicken
Kopieren Sie folgenden Code in das Freitextfeld und führen Sie den Code aus:
CREATE TABLE users (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
age INT(3),
location VARCHAR(50),
date TIMESTAMP
);- Testen:
- Sie sollten jetzt links im Baum eine neue Tabelle sehen.
19.4 Schritt 3 : Daten hinzufügen
Im Moment ist Ihre Tabelle noch leer…Sie dürfen das gerne austesten, in dem Sie im SQL-Feld folgende Abfrage ausführen:
Lassen Sie uns Daten erfassen. Kopieren Sie den folgenden Code in das SQL-Feld und führen Sie den Code aus:
INSERT INTO `users` (`id`, `firstname`, `lastname`, `email`, `age`, `location`, `date`)
VALUES (NULL, 'Christian', 'Inauen', 'christian.inauen@bztf.ch', '27', 'Tobel', CURRENT_TIMESTAMP);- Testen:
- Führen Sie anschliessend nochmals den Befehl
SELECT * from users;aus - sollte anders aussehen als vorher - nicht?
19.4.1 Auftrag: Benutzer erfassen
- Auftrag:
- Füllen Sie nun Ihre Datenbank anhand des Beispiels von oben (min. 5 Benutzer) - Passen Sie einzelne Werte an, andere belassen Sie gleich.
19.5 Schritt 4 : Daten auslesen
Der Befehl
ist die “Dampfhammer-Methode” um Daten auszulesen….es wird einfach alles (*) geliefert. Häufig möchte man aber gefilterte Datensätze auslesen…zum Beispiel alle Benutzer mit dem Vornamen “Christian”. Das macht man so:
Man kann auch mehere Filter setzen:
Dabei werden von der Datenbank aber immer auch alle Spalten/Attribute ausgelesen, auch solche die man nicht anzeigen will. Auch hier kann man bei SQL sagen was man gerne angezeigt haben möchte. Dazu müssen Sie einfach den * ersetzen, mit den Spalten die Sie angezeigt haben möchten. Beispiel: Wir wollen nur die Email-Adresse von allen Benutzern mit dem Vornamen Christian anzeigen - dann geht das so: