Next: 5 SQL-Befehle
Up: 3 praktischer Teil SQL
Previous: 3 praktischer Teil SQL
Subsections
4 SQL benutzen
Ein DBS kann auf drei Arten gesteuert werden: Entweder dialogorientiert, im Batch-Betrieb
oder durch andere Programme.
Dialogorientiert bedeutet, daß man am Bildschirm seine Befehle eingibt und innerhalb von
Sekunden das Ergebnis oder die Fehlermeldung erhält. Das ganze ist vergleichbar mit der
Konsole
beim Betriebssystem. In beiden
Fällen gibt es einen Prompt
, an dem man seine
Befehle eingibt und im selben Fenster erscheint dann die Ausgabe.
Über den MySQL-Prompt hat man natürlich die meisten Möglichkeiten, weil man jeden Befehl
verwenden kann. Häufig ist aber auch ein wenig Unterstützung durch ein Programm praktisch,
das z.B. die Tabellenstruktur anzeigt oder beim Ändern die alten Werte als Vorbelegung
nimmt etc. Ein sehr schönes Programm dazu ist phpMyAdmin, mehr dazu im Kapitel
6.3.
In diesem Kapitel werden wir dialogorientiert arbeiten. Alle Befehle, die hier direkt
eingegeben werden, können aber auch in eine Text-Datei geschrieben werden, die dann
dialogorientiert abgearbeitet wird. Das nennt man dann Batch-Betrieb. Sehr
empfehlenswert ist dies z.B. für die Erstellung von Tabellen. Dann kann man nämlich ohne
großen Aufwand dieselbe Tabellenstruktur in verschiedenen DBs verwenden.
Bei der Benutzung durch andere Programme merkt der Benutzer nicht, daß eine oder welche
Datenbank im Hintergrund arbeitet. So benutzen z.B. alle Suchmaschinen im Internet
(Google, AltaVista, Yahoo) in irgendeiner Form eine Datenbank, um die Informationen zu
speichern. Als normaler Nutzer sieht man aber nur die Suchmaske und bekommt dann die
Ergebnisse schön formatiert angezeigt. Es muß dann ein Programm geben, das die eingegebene
Anfrage an die Datenbank weiterreicht und dann die Ergebnisse formatiert ausgibt.
Dieses Programm kann im Prinzip in jeder beliebigen Sprache geschrieben werden. Häufig
wird dafür PHP verwendet, was weiter unten noch beschrieben wird.
1 MySQL
Um mit dem DBMS zu reden, muß das Programm mysql von einem Rechner, von
dem aus man Zugriff auf den Rechner mit dem DBMS hat, gestartet werden. Viele Provider
erlauben dies leider aus Sicherheitsgründen nicht, so daß es empfehlenswert ist, sich zu
Hause ein DBMS zu installieren. Die Aufrufsyntax lautet:
mysql -p<Paßwort> -u <Benutzername> <DB-Name>
Für Paßwort, Benutzername und DB-Name sind natürlich die entsprechenden Werte einzutragen
(ohne die spitzen Klammern!). Diese bekommst Du vom Provider, der Dir die Datenbank
zur Verfügung stellt, bzw., im Falle einer eigenen DB, gibst Du Dir selbst die Daten. ;-)
Alternativ kannst Du auch Dein Paßwort abfragen lassen:
mysql -u <Benutzername> -p <DB-Name>
Enter password: ********
Wie Du siehst, wird in diesem Fall das Paßwort explizit abgefragt. Diese Methode ist
der Möglichkeit, das Paßwort hinter -p anzugeben, aus zwei Gründen vorzuziehen:
Zum einen erscheint dann das Paßwort weder (unter Unix/Linux) in der .bash_history
noch im Klartext auf dem Bildschirm und zum anderen hat man dann auch nicht das Problem,
darauf achten zu müssen, daß zwischen -p und dem Paßwort kein Leerzeichen
stehen darf, weil nach einem solchen je nach Reihenfolge der Parameter der Datenbankname
erwartet wird...
Wenn Du keinen DB-Namen angibst, bekommst du zwar auch den mysql-Prompt, kannst dann aber
einige Befehle nicht nutzen, weil du mit keiner Datenbank verbunden wirst. Dann mußt du
noch mit Hilfe von USE <DB-Name> die Datenbank angeben.
Wir beim Jugendnetz richten immer zwei Accounts für dieselbe DB ein. Einen, für den sowohl
Lese- als auch Schreibzugriffe erlaubt sind, und einen anderen, der nur lesend zugreifen darf.
Der nur lesende Account bekommt ein _ro an das Ende des Benutzernamens angehängt.
Solltest Du einen eigenen Server mit MySQL betreiben, solltest Du Dir auch den Abschnitt
6.2 über MySQL-Nutzer durchlesen.
Wenn das alles geklappt hat, kommt folgende Ausgabe (oder ähnlich):
Welcome to the MySQL monitor. Commands end with ; or \\g.
Your MySQL connection id is 1561 to server version: 3.22.32
Type 'help' for help.
mysql>
Immer dann, wenn in der letzten Zeile ein mysql> steht, kannst Du Deine Befehle
eingeben. Die Groß-/Kleinschreibung ist bei den Befehlen egal, bei den Tabellen- und
Spaltennamen (Attribute) sowie den eigentlichen Werten dagegen natürlich nicht!
1 Dateien abarbeiten
Wie oben schon erwähnt, kann man die Befehle auch mit einem ASCII
-Editor in eine Datei schreiben und diese dann
abarbeiten lassen. Der Aufruf, der das Abarbeiten der Datei startet, ähnelt dem normalen
mysql-Aufruf:
mysql -p{Paßwort} -u{Benutzername} {DB-Name} < dateiname
Alle (Fehler-)Meldungen, die normalerweise angezeigt werden, werden auf den Bildschirm
geschrieben.
2 Kommentare
Kommentare können wie in der Programmiersprache C mit /* und */ umrahmt
in die Datei eingefügt werden. Die beiden folgenden Anweisungen sind identisch:
SELECT * FROM Mitarbeiter;
SELECT * /* Was soll alles ausgewählt werden? */
FROM /* ... und aus welcher Tabelle? */ Mitarbeiter;
Es gibt auch noch # und - - als Kommentarzeichen. Bei diesen wird alles,
was hinter dem Zeichen bis zum Zeilenende steht, als Kommentar interpretiert.
SELECT * FROM Mitarbeiter; # Wir wollen alles
SELECT * FROM Mitarbeiter; -- Diese Zeile macht dasselbe wie die darüber
# ist kein Kommentarzeichen nach ANSI-Norm, d.h. andere Datenbanken können diese
Kommentare nicht erkennen.
Next: 5 SQL-Befehle
Up: 3 praktischer Teil SQL
Previous: 3 praktischer Teil SQL
Christoph Reeg(http://reeg.net/)