|

mysql installieren
/ den mysql Server starten
eine Datenbank einrichten
eine Tabelle anlegen
Daten in eine Tabelle eintragen
Daten einer Tabelle abfragen
Daten in einer Tabelle ändern
Daten in einer Tabelle löschen
Größe / Name einer Spalte verändern
eine Spalte in eine Tabelle einfügen
eine Spalte einer Tabelle löschen
| mysql
installieren / den mysql Server starten |
|
Dieses Kapitel hat vordergründig als Ziel,
das Kapitel Zugriff auf relationale Datenbanken mit dem PHP
verständlich zu machen. Wer sich intensiver mit mysql
beschäftigen möchte, siehe mysql
Handbuch
mysql ist in der Internet Programmierung der de facto Standard.
Wer mysql noch nicht hat, kann es hier
runterladen.
Die Installation ist einfach, entzippen und dann auf Install
drücken. Am besten alle default Einstellungen bestätigen.
mysql installiert sich im Default im Laufwerk c unter mysql.
Nach der Installation muss der mysql Server gestartet werden.
Unter win95/98 fährt man in der DOS
BOX in den Ordner c:\mysql\bin>. (die Dos Box öffnen,
mit C: auf Laufwerk C wechseln, dann cd mysql eingeben, dann
cd bin. ) Dort gibt man dann mysqld ein. Was passiert? Nichts!
Dann hat es funktioniert!! Der mysql Server ist gestartet.
Unter Windows NT oder Windows 2000 öffnet
man im Windows Explorer den Ordner c:\mysql\bin. Nach einem
Doppelklick auf die Datei winmysqladmin.exe, erscheint dann,
wenn mysql zum ersten Mal gestartet wird, eine Maske, die
Name und Userid haben will. Da gibt man irgendwas ein und
drückt OK. Anschließend steht unten rechts die
Ampel auf grün. Das heißt, der mysql Server ist
gestartet.
| eine
Datenbank einrichten |
|
Die erste Handlung besteht jetzt darin, eine
Datenbank einzurichten. Die Datenbank sollte nicht mit einer
Tabelle verwechselt werden. Wenn wir Daten speichern, löschen
oder ändern, dann tun wir das in einer Tabelle. Eine
Datenbank kann beliebig viele Tabellen haben.
Wenn wir uns also in der Dos Box oder in Eingabeaufforderung
im Ordner c:\mysql\bin befinden, geben wir dort folgendes
ein: mysqladmin create banane und drücken
auf die return Taste. Was passiert? Wir haben jetzt in c:\mysql\data einen
Ordner banane. Das erfüllt uns schon mal
mit fröhlicher Genugtuung.
In c:\mysql\bin geben wir jetzt folgendes ein: mysql
banane und drücken die Return Taste.
Wir sehen auf dem Schirm:
C:\mysql\bin>mysql banane
Welcome to the MySQL monitor. commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.28-gamma
Type 'help;' or '\h' for help. Type
'\c' to clear the buffer
Das heißt,nach dem Willkommen Gruß,
sind wir in der Datenbank.
Im nächsten Schritt legen wir jetzt eine
Tabelle an. Relationale Datenbanken werden über eine
besondere Programmiersprache angesprochen, nämlich SQL
(structured query language). Ein kleiner Teil dieser Sprache
wird im Folgenden vorgestellt. SQL wird hier allerdings nur
soweit behandelt, wie es für das Verständnis des
nächsten Kapitels notwendig ist. Wir richten mit folgendem
Befehl eine Tabelle ein:
mysql> create table melone (Name char(80),Vorname
char(80),Gewicht dec(5,2), -> Beschreibung blob);
Nachdem wir den Befehl ausgeführt haben,
erhalten wir die Nachricht, dass alles OK ist und die Tabelle
eingerichtet wurde. (Query OK, 0 rows affected (0.06 sec))
Bei der Eingabe gibt es nun folgendes zu beachten. Ist das
SQL Statement lang, dann wird irgendwann mal automatisch umgebrochen.
Das ist harmlos. Ist das SQL Statement aber zu lang, dann
kann der Puffer der Dos Box in irgendwann nicht mehr aufnehmen.
Man bleibt dann einfach stehen. Um dies zu verhindern, sollte
durch drücken der Return Taste umgebrochen werden. Der
Cursor springt dann in die nächste Zeile vor einen Pfeil.
Diesen Pfeil zeigt das Beispiel oben.
Mit dem Befehl oben wird eine Tabelle mit vier Spalten
aufgebaut (Name, Vorname, Gewicht, Beschreib
Wenn alles funktioniert hat, müssen im Ordner c:\mysql\data\banane drei
Dateien vorhanden sein.
(melone.frm, melone.MYD, melone.MYI)
Mit char, dec, blob und int wird
definiert, welche Datentypen die Spalten aufnehmen können.
Hierbei steht char für Charakter also
für Buchstaben. Der Wert innerhalb der Klammern gibt
an, wie viele Zeichen maximal dastehen dürfen. 255 ist
hierbei die Obergrenze. Hat der Wert, der eingegeben wird,
mehr Zeichen, als der Wert innerhalb der Klammer, wird abgeschnitten.
dec steht für Dezimalzahlen. Hierbei ist
die erste Zahl innerhalb der Klammer, die maximale Anzahl
an Zahlen. Die zweite Zahl gibt an, wie viele von diesen Ziffern
(im Beispiel 5) Nachkommastellen sind.
blob steht für binary large object. Es wird
angewandt, wenn z. B. sehr lange Texte oder ein Bild eingespeist
werden.
int (integer) erfasst ganze Zahlen.
Insgesamt bietet mysql noch viel mehr Datentypen an, wir lassen
das jetzt aber auf sich beruhen.
| Daten
in eine Tabelle eintragen |
|
Mit insert werden in die oben erzeugte
Tabelle Daten eintragen:
Wir tragen den Wert 45.666 in die Spalte Gewicht ein :
mysql> insert into melone (gewicht)
values (45.666);
Query OK, 1 row affected (0.11 sec)
mysql> select gewicht from melone
1 row in set (0.11 sec)
mysql>
Eingetragen wird eine Zahl mit 5 Ziffern (45.666),
macht also mit dem Komma (in diesem Falle ein Punkt) sechs
Ziffern. Da wir aber die Spalte so definiert haben, dass sie
maximal nur 5 Ziffern haben darf, bleibt mysql nichts anderes
übrig, als aufzurunden.
Das heißt, mit select gewicht from melone; erhalten
wir 45.67.
Ein weiteres Beispiel:
insert into melone (Name, Vorname,Gewicht,Beschreibung)
values ("Ehmann","Andres",72.5,"Ich weiss nicht woher ich
komm, ich weiss nicht wohin ich geh, ich bin, ich weiss nicht
was, mich wunderts dass ich glücklich bin");
Nicht vergessen! Man muss in der Datenbank banane sein, um
die Tabelle melone anzusprechen.
Sollen Inhalte in alle Spalten der Tabelle eingefügt
werden, gibt es eine kürzere Schreibweise:
insert into melone values ("Maier","Peter",78.5,"So geht
es auch");
Zu beachten ist:
Innerhalb der Datenbank, werden alle Befehle mit einem Semikolon
abgeschlossen (anschließend Return drücken).
Die Inhalte in den Spalten vom Typ char oder vom Typ varchar
müssen in Anführungszeichen stehen.
Bei den Spalten vom Typ int oder dec kann man diese weglassen.
Wer will, kann auch nur einige Spalten mit Inhalten füllen,
das sieht dann so aus:
insert into melone (Name,Vorname) values ("Maier","Peter");
| Daten
einer Tabelle abfragen |
|
Mit select * from melone; erhalten wir
alle bislang eingegebenen Werte der Tabelle melone:
mysql> select * from melone
2 rows in set (0.00 sec)
mysql>
Sollen nur bestimmte Datensätze
angezeigt werden:
select * from melone where Vorname="Peter";
Jetzt werden nur die Datensätze angezeigt,
in denen der Vorname Peter ist. In unserem Falle wird nur
ein Datensatz angezeigt.
Zur Suche nach einem bestimmten
Wort innerhalb einer längeren Zeichenkette:
select * from melone where Beschreibung
like "%So%";
Die Prozentzeichen sind hierbei ein Joker.
Das heißt, es dürfen vor dem Wort Zeichen stehen
und danach.
Sollen nur bestimmte Spalten
betrachtet werden:
select Name from melone where Gewicht
> 70;
| Daten
in einer Tabelle ändern |
|
Zuerst ein Beispiel, das man in der Praxis besser
nicht nachvollzieht:
update melone set Name="Adorno";
Das funktioniert! Der Name wird auf Adorno
gesetzt mit einem kleinen, aber gewaltigen Schönheitsfehler.
Alle Namen werden auf Adorno gesetzt.
In der Regel ist also ein
update Statement ohne where Klausel sinnlos. Es ist also sinnvoll
wenigstens eine Bedingung einzubringen:
update melone set Name="Adorno" where
Vorname="Peter";
Die where Klausel kann auch mehrer Argumente
haben:
update melone set Name="Adorno" where
Vorname="Peter" and Gewicht > 70;
In die Spalte Name soll überall dort
Adorno geschrieben werden, wo die Spalte Vorname den Wert
Peter und dieSpalte Gewicht einen Wert größer
als 70 hat.
Auch folgendes ist möglich:
update melone set Name="Adorno" where
Vorname="Peter" or Gewicht > 70;
Jetzt wird überall da der Name auf Adorno gesetzt, wo
der Vorname Peter ist oder das Gewicht größer
ist als 70.
| Daten
in einer Tabelle löschen |
|
Daten in der Tabelle melone löschen, sieht
dann z. B. so aus:
delete from melone where Name="Adorno";
Hier gilt das gleiche wie bei update. Ohne where Klausel wird
die Sache höchst gefährlich.
| die
Größe einer Spalte verändern |
|
Die Größe einer Spalte kann mit folgender
Syntax verändert werden:
alter table melone change Name Name
char(120);
Mit diesem Befehl wird die Spalte Name von 80 auf 120 Zeichen
vergrößert.
Soll der Name der Spalte selbst geändert
werden soll, ist die Syntax:
alter table melone change Name Familienname
char(120);
| eine
Spalte in eine Tabelle einfügen |
|
Es kann notwendig sein, nachträglich eine
Spalte in eine Tabelle einzufügen. Es soll aber nicht
verschwiegen werden, dass es besonders im Internetumfeld wesentlich
praktischer ist, es von vorneherein richtig zu machen. Die
Syntax zum Einfügen von Spalten sieht so aus:
alter table melone add Adresse char(255);
Mit diesem Befehl fügen wir in die Tabelle melone die
Spalte Adresse ein.
| eine
Spalte einer Tabelle löschen |
|
Das Gegenteil, also Löschen einer Spalte,
funktioniert so:
alter table melone drop Name;
Diese Kurzeinführung zu mysql ist ausreichend, um das
Kapitel Zugriff
auf relationale Datenbanken mit dem dbi Modul zu verstehen.
Eine ausführliche Dokumentation ist in der mysql Distribution
im Ordner docs zu finden.
|
 |