Fach: Informatik - Jan-Gerd Tenberge
Fach: Informatik - Jan-Gerd Tenberge
Fach: Informatik - Jan-Gerd Tenberge
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