Werbung einblenden Werbung ausblenden


Home / Tutorials / Perl Handbuch / Kurzeinführung in mysql

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 lediglich das Ziel, das Kapitel Zugriff auf relationale Datenbanken mit dem dbi Modul 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 (Version mysql-4.0.9-gamma-win.zip) 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.
eine Tabelle anlegen

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
gewicht
45.65

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

Name
Vorname
Gewicht
Beschreibung
NULL
NULL
9999.99
NULL
Maier
Peter
78.50
So was

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.

vorhergehendes Kapitel