15.07.2013 Aufrufe

Fach: Informatik - Jan-Gerd Tenberge

Fach: Informatik - Jan-Gerd Tenberge

Fach: Informatik - Jan-Gerd Tenberge

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Wenn ein Argument angegeben wird, stellt es die maximale Anzahl von Zeilen<br />

dar, die zurückgegeben werden:<br />

mysql> select * from tabelle LIMIT 5; # Die ersten 5 Zeilen<br />

zurückgeben<br />

Mit anderen Worten ist LIMIT n äquivalent zu LIMIT 0,n.<br />

• Die SELECT ... INTO OUTFILE 'datei'-Form von SELECT schreibt die<br />

ausgewählten Zeilen in eine Datei. Die Datei wird auf dem Server-Host erzeugt<br />

und darf nicht bereits bestehen (das verhindert unter anderem, dass<br />

Datenbanktabellen und Dateien wie /etc/passwd zerstört werden). Sie<br />

benötigen die file-Berechtigung auf dem Server-Host, um diese Form von<br />

SELECT auszuführen.<br />

SELECT ... INTO OUTFILE ist hauptsächlich dafür vorgesehen, um eine<br />

Tabelle auf der Server-Maschine schnell zu dumpen. Wenn Sie die resultierende<br />

Datei auf einem anderen Host als dem Server-Host haben wollen, können Sie<br />

SELECT ... INTO OUTFILE nicht benutzen. In diesem Fall sollten Sie statt<br />

dessen ein Client-Programm wie mysqldump --tab oder mysql -e "SELECT<br />

..." > outfile benutzen, um die Datei zu erzeugen.<br />

SELECT ... INTO OUTFILE ist das Komplement von LOAD DATA INFILE; die<br />

Syntax für den export_optionen-Teil des Statements besteht aus denselben<br />

FIELDS- und LINES-Klauseln, die beim LOAD DATA INFILE-Statement benutzt<br />

werden. See Abschnitt 7.4.9, „LOAD DATA INFILE-Syntax“.<br />

In der resultierenden Textdatei werden nur folgende Zeichen durch das ESCAPED<br />

BY-Zeichen escapet:<br />

o Das ESCAPED BY-Zeichen<br />

o Das erste Zeichen in FIELDS TERMINATED BY<br />

o Das erste Zeichen in LINES TERMINATED BY<br />

Zusätzlich wird ASCII 0 in ESCAPED BY, gefolgt von 0 (ASCII 48),<br />

umgewandelt.<br />

Der Grund hierfür ist, dass Sie jegliche FIELDS TERMINATED BY-, ESCAPED BY-<br />

oder LINES TERMINATED BY-Zeichen escapen MÜSSEN, um die Datei<br />

zuverlässig wieder einlesen zu können. ASCII 0 wird escapet, um das Lesen mit<br />

einigen Pagern zu erleichtern.<br />

Weil sich die resultierende Datei nicht nach der SQL-Syntax richten muss, muss<br />

nicht weiter escapet werden.<br />

Im Folgenden ein Beispiel, wie man eine Datei in einem Format erhält, das von<br />

vielen alten Programmen benutzt wird:<br />

SELECT a,b,a+b INTO OUTFILE "/tmp/resultat.text"<br />

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'<br />

LINES TERMINATED BY "\n"<br />

FROM tabelle;<br />

29

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!