MySQL lernen - Anfangen, anwenden, verstehen mysql < Database musikschule mysql test raum_id...

download MySQL lernen - Anfangen, anwenden, verstehen mysql < Database musikschule mysql test raum_id raum_name

If you can't read please download the document

  • date post

    18-Oct-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of MySQL lernen - Anfangen, anwenden, verstehen mysql < Database musikschule mysql test raum_id...

  • lerne n

    ��� ��� �� ���� ���� �� ������ ���

    5 Zugriffsmöglichkeiten

    Man kann auf vielerlei Wegen auf die Daten eines MySQL-Servers zu- greifen. Bisher haben wir immer das Client-Programm mysql genutzt. Natürlich ist das aber kein sinnvoller Weg für Endbenutzer. Für diese Gruppe schreibt man im Allgemeinen ein eigenes Programm, welches über eine der angebotenen Schnittstellen mit dem MySQL-Server kom- muniziert.

    Zudem gibt es einige Programme, die einen Administrator bei seiner Ar- beit mit dem MySQL-Server unterstützen, sei es grafisch oder textuell ausgerichtet. Um die Daten „am Stück“ aus dem Server heraus- und in einen anderen wieder hineinzubekommen, kann man auch verschie- dene Wege beschreiten.

    5.1 Was Sie in diesem Kapitel lernen Zunächst wollen wir uns mit den verschiedenen Tools auseinanderset- zen, die Zugriff auf den MySQL-Server bzw. die von ihm verwalteten Da- ten gewähren. Das wichtigste ist dabei natürlich mysql, es gibt aber noch einige weitere, die eher der Administration dienen.

    Danach werden wir phpMyAdmin vorstellen, ein von Dritten program- miertes Tool, das dem Benutzer eine grafische Oberfläche präsentieren kann, welche den Dialog mit dem Server hübscher verpackt als dies Textprogramme ermöglichen (welche dafür natürlich andere Vorteile haben). Zudem läuft es unter einer Web-Oberfläche und kann somit mit jedem Browser bedient werden.

    Zum Dritten wollen wir uns mit dem Im- und Export von Daten küm- mern. Damit kann man Datenbanken von einem zum anderen Rechner verschieben, aber auch Daten aus anderen Quellen in MySQL importie- ren.

  • ��� ����� ��� ���������

    Schließlich befassen wir uns mit den Programmierschnittstellen von MySQL. Man kann aus den verschiedensten Programmiersprachen her- aus auf den Server zugreifen, aber auch sprachunabhängige Schnittstel- len wie ODBC nutzen.

    5.2 Admin-Tools zu MySQL Mit MySQL werden schon viele Tools direkt mitgeliefert. Diese sollen dem Administrator die Arbeit mit dem MySQL-Server erleichtern. Das am häufigsten verwendete dürfte natürlich mysql sein. Wir haben die ganze Zeit damit gearbeitet und werden hier noch ein paar ergänzende Möglichkeiten erwähnen.

    Weiterhin stehen für den Zugriff auf den MySQL-Server weitere Tools bereit. Im Folgenden werden wir mysqladmin und mysqlshow bespre- chen.

    Die Tools mysqldump und mysqlimport werden wir detaillierter in Kapitel 5.4 behandeln, da sie zum Im- und Exportieren von Daten genutzt wer- den. mysqlhotcopy dient zum Sichern von Daten und wird im nächsten Kapitel besprochen, ebenso wie myisamchk und mysqlcheck, welche zum Prüfen und Reparieren von Tabellen und Datenbanken dienen.

    5.2.1 mysql

    mysql ist das Tool, mit dem man vermutlich außerhalb des eigentlichen Programms für die Endbenutzer am häufigsten arbeiten wird. Wir ha- ben schon sehr viel damit gemacht und werden hier nur noch auf einige weitere Punkte eingehen, die das Leben einfacher machen können.

    TEE / NOTEE

    TEE Mit dem Befehl TEE kann man dafür sorgen, dass die Ausgabe neben dem Bildschirm gleichzeitig auch in eine Datei geschrieben wird. Als Parame- ter gibt man den Pfad und Namen einer Datei an. Diese Datei wird als Ziel genommen, um die Ein- und Ausgaben, die man auch auf dem Bild- schirm sieht, abzuspeichern. Dabei wird immer an das Ende der Datei angehängt, so dass auch nach einem Neustart die alten Daten nicht ver- loren sind. Mit NOTEE beendet man das Protokollieren. Ein Beispiel für eine solche Log-Datei wäre:

    Logging to file 'd:/temp/test.txt' mysql> SELECT * FROM raum;

  • ��������� � ����� ���

    +---------+-----------+-------+----------+ | raum_id | raum_name | etage | personen | +---------+-----------+-------+----------+ | 1 | A5.33 | 5 | 4 | | 2 | B2.02 | 2 | 20 | | 3 | C4.16 | 4 | 11 | | 4 | A5.21 | 5 | 6 | | 5 | A5.23 | 5 | 6 | +---------+-----------+-------+----------+ 5 rows in set (0.00 sec)

    mysql> UPDATE schueler SET nachname = 'Meier' WHERE schueler_id = 11; Query OK, 0 rows affected (0.02 sec) Rows matched: 0 Changed: 0 Warnings: 0

    mysql> NOTEE

    Direkt vor dem „Logging to file…“ wurde der Befehl TEE d:/temp/test.txt aufgerufen (übrigens wieder ohne Semikolon). Ruft man nach einem NOTEE den Befehl TEE erneut auf, ohne aber einen Dateinamen angegeben zu haben, wird in die letzte Datei protokolliert, die verwendet wurde.

    STATUS

    STATUSMit diesem Befehl kann man sich Statusinformationen über den Server, den Client und die Verbindung anzeigen lassen. Auch er wird ohne Se- mikolon aufgerufen:

    mysql> STATUS -------------- D:\mysql\bin\mysql.exe Ver 11.18 Distrib 3.23.51, for Win95/Win98 (i32)

    Connection id: 1 Current database: musikschule Current user: ODBC@localhost Server version: 3.23.51-nt Protocol version: 10 Connection: localhost via TCP/IP Client characterset: german1 Server characterset: german1 TCP port: 3306 Uptime: 12 hours 37 min 35 sec

    Threads: 1 Questions: 66 Slow queries: 0 Opens: 24 Flush tables: 1 Open tables: 2 Queries per second avg: 0.001 --------------

  • ��� ����� ��� ���������

    Zunächst folgt eine Angabe des aktuellen Programms mit seinem Stand und der Distribution.

    Die Connection id gibt dann die Kennung an, über die das Client-Pro- gramm aktuell mit dem Server verbunden ist. Sie kann genutzt werden, um unter anderem mit mysqladmin Clients „abzuschießen“, die sich aufgehängt haben oder anderen Ärger bereiten.

    Die Current database gibt natürlich an, welche Datenbank gerade ausge- wählt ist, und der Current user zeigt, wer man gerade ist.

    Server version und Protocol version geben Informationen über den Stand des Servers und die Protokollversion. Connection sagt, wie man mit dem Server verbunden ist, Client characterset und Server characterset informie- ren über den genutzten Zeichensatz, der TCP port steht für den Port, über den der MySQL-Server kommuniziert und die Uptime steht für die Laufzeit, die der Server schon ohne Unterbrechung läuft. Am Ende fin- den sich noch ein paar Informationen zur Statistik.

    Umleiten der Ein- und Ausgabe

    Redirection Hat man mehrere Befehle in einer festen Reihenfolge zu verarbeiten, kann man diese in einer Textdatei speichern (gerne mit der Endung .sql) und entweder in mysql mit dem Befehl SOURCE ausführen lassen (wie schon weiter oben behandelt), oder direkt beim Aufruf per Umleitung der Eingabe mitgeben. Speichern wir zum Beispiel die folgenden Befehle in einer Datei namens mycommand.sql:

    SHOW DATABASES; USE musikschule; SELECT * FROM raum; SELECT * FROM instrument;

    Wenn man nun mysql diese Datei als Eingabe mitgibt, erhält man fol- gende Ausgabe:

    prompt>mysql < mycommands.sql Database musikschule mysql test raum_id raum_name etage personen 1 A5.33 5 4 2 B2.02 2 20 3 C4.16 4 11 4 A5.21 5 6 5 A5.23 5 6

  • ��������� � ����� ���

    instrument_id instr_name instr_gruppe 1 Querflöte Holzbläser 2 Klarinette Holzbläser 3 Violine Streicher 4 Viola Streicher 5 Posaune Blechbläser 6 Trompete Blechbläser 7 Klavier Tasten 8 Keyboard Tasten

    Wie man sieht, werden keine weiteren Informationen neben den Daten selber und den Spaltenüberschriften mitgegeben. Getrennt werden die Daten mit dem Tabulatorzeichen. Dieses Ausgabeformat wird dann ver- wendet, wenn MySQL im sogenannten Batch-Modus läuft. Das Verhal- ten lässt sich auch erzwingen oder verhindern, dazu benötigt man die im nächsten Abschnitt beschriebenen Kommandozeilen-Parameter.

    Die Ausgabe lässt sich natürlich auch direkt in eine Datei umleiten. Das erreicht man mit folgendem Aufruf:

    prompt>mysql < mycommands.sql > myresult.txt

    Kommandozeilen-Parameter

    Es gibt (neben -h, -u und -p) einige Parameter, die man beim Starten von mysql angeben kann und die in manchen Situationen helfen können. Fünf möchte ich hier aufführen, es gibt aber noch diverse mehr.

    • -? oder --help

    Dieser Parameter dürfte der wichtigste sein… Er gibt die möglichen Kommandozeilen-Parameter aus und beendet das Programm dann wieder. Das Ergebnis sehen Sie hier:

    prompt>mysql -? mysql Ver 11.18 Distrib 3.23.51, for Win95/Win98 (i32) Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license

    Usage: mysql [OPTIONS] [database]

    -?, --help Display this help and exit. -A, --no-auto-rehash No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. -B, --batch Print results with a tab as separator, each row on a new line. Doesn't use history file.

  • ��� ����� ��� ���������

    --character-sets-dir=... Directory where character sets are located. -C, --compress Use compr