MySQL und XML¶
Lernziel¶
MySQL installieren und starten und XML-Dateien aus SQL-Tabellen und Abfragen erzeugen. Wenn Sie noch mehr Möglichkeiten suchen, schauen Sie sich die folgende Seite an:
Handlungsanweisungen¶
- Aufgaben
Downloaden, installieren und starten Sie den MySQL-Server.
Laden Sie bitte folgende ZIP-Datei herunter: rechnungen.zip Diese enthält eine Mysql-Datenbank (als Ordner). Kopieren Sie bitten den entpackten Ordner
„rechnungen“
in das data-Verzeichnis Ihres Mysql-Servers.Speichern Sie die gesamte Tabelle rechnungen als XML-Datei (mit mysqldump)
Speichern Sie das Ergebnis der Select-Abfrage: select * form rechnungen where firma=’Task’ in einer XML-Datei.
- Zusatz
- Entwickeln Sie eine Batch-Datei:
eine XML-Datei soll durch eine SQL-Abfrage generiert werden
die XML soll durch eine XSL-Datei in eine HTML-Tabelle (oder CSV-Datei) transformiert werden
Benutzen Sie dazu u.a. den externen Transformator saxon!
Wie installiere ich mysql?¶
Die „ohne Installation“-Version können Sie entpacken, nachdem sie heruntergeladen ist. Sie erhalten dann einen Ordner, in dem sich alle benötigten Dateien befinden.

Wie starte ich mysql?¶
Damit Sie mit Mysql arbeiten können, müssen Sie den Mysql-Server starten.
Manueller Start (zum Anfang des Lernens empfohlen) In dem Verzeichnis von mysql befindet sich ein Unterordner bin. Um mysql zu starten, klicken Sie auf die Mysqld.exe

Es öffnet sich kurz ein schwarzes Fenster (die Konsole), das dann wieder verschwindet. Mysql läuft dann im Hintergrund.
Einloggen in die Datenbank¶
In dem bin-Ordner des MySQL-Servers befindet sich der MySQL-Client mysql.exe. Mit diesem können wir uns in die Datenbank einloggen. Mysql.exe können Sie wie folgt aufrufen:
Gehen Sie auf Start > Ausführen
Geben Sie cmd ein.
Wechseln Sie in den bin-Ordner des MySQL-Servers, in dem sich auch die mysql.exe befindet.
Geben Sie folgenden Befehl ein, um sich einzuloggen:
Mysql.exe -u root
bzw.
mysql.exe --xml -u root (wenn Sie sich mit der XML-Option einloggen wollen)
Die wichtigsten Befehle:¶
.. index:: mysql: export
Datenbank nach XML exportieren¶
mysqldump --xml databasename [tables]
Eine Datenbank nach XML exportieren (in der Shell/cmd)
mysqldump.exe --xml -u root --database rechnungen
#in die Datei ergebnis.xml
mysqldump.exe --xml -u root –-database rechnungen > ergebnis.xml
Die gesamte Datenbank rechnungen als XML exportieren
mysqldump.exe --xml -u root --database rechnungen --table rechnungen
#in die Datei ergebnis.xml
mysqldump --xml -u root –-database rechnungen --table rechnungen> ergebnis.xml
Aus der Datenbank nur eine Tabelle exportieren.
Select-Abfragen nach XML exportieren¶
mysql -h localhost -u root -p
Wenn Sie sich in mysql einloggen, kennen Sie es wahrscheinlich.
mysql --xml -h localhost -u root -p
Man kann auch mit der Option xml arbeiten. Alle Select-Ausgaben werden dann in XML-Struktur angezeigt.
mysql --xml -u root -e "select * from rechnungen" rechnungen > ergebnis.xml
# mysql=Client
# --xml = Option XML
# -u root = Einloggen als User root
# -e =execute (ausführen)
# select * from rechnungen" = SQL-Befehl
# rechnungen = Datenbank
# > ergebnis.xml = in die Datei ausgeben
Sie können auch Select-Abfragen als XML ausgeben und in einer Datei speichern.
Die XSL-Datei als Lösung für die Zusatzaufgabe¶
Nur, wenn Sie bei der Lösung der Aufgabe nicht weiterkommen:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="resultset">
<table>
<xsl:apply-templates select="row"/>
</table>
</xsl:template>
<xsl:template match="row">
<tr>
<td><xsl:value-of select="field[@name='nummer']"/></td>
<td><xsl:value-of select="field[@name='nachname']"/></td>
<td><xsl:value-of select="field[@name='vorname']"/></td>
<td><xsl:value-of select="field[@name='firma']"/></td>
<td><xsl:value-of select="field[@name='kosten']"/></td>
<td><xsl:value-of select="field[@name='datum']"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
Oder eine andere Lösung:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="resultset">
<table><xsl:apply-templates select="row"/></table>
</xsl:template>
<xsl:template match="row">
<tr><xsl:apply-templates select="field"/></tr>
</xsl:template>
<xsl:template match="field">
<td><xsl:value-of select="."/></td>
</xsl:template>
</xsl:stylesheet>