|
SELECT mit LIMIT und INTO
Der Ausdruck LIMIT kann benutzt werden, um die Zahl der Reihen bei der Ausgabe zu begrenzen. LIMIT braucht zwei Zahlen als Argumente. Die erste Zahl bestimmt den Offset der ersten Reihe, die zweite Zahl die Zahl der Ausgaben. Der Offset beginnt mit 0, nicht wie sonst alles mit 1:
mysql> select * from table LIMIT 5,10;
# Zeilen 6-15 ausgeben
Ist nur ein Argument angegeben, wird angenommen, daß dieZahl der Reihen gemeint ist:
mysql> select * from table LIMIT 5;
# Gebe die ersten 5 Zeilen aus
Das bedeutet, daß LIMIT n identisch zu LIMIT 0,n ist. Insbesonderefür Ausgaben im Browser über das Internet ist es wichtig,daß diese begrenzt werden. Ansonsten muß mit DoS Angriffen(Denial of Service = Außer Gefecht setzen) oder Überlastungendes Server gerechnet werden.
Der Befehl SELECT ... INTO OUTFILE 'file_name' bedeutet,daß SELECT die Ausgabe in eine Datei schreibt. Diese wirdauf dem Server Host angelegt. Es können nur Dateien angelegtwerden, die noch nicht existieren, damit nicht versehentlichdie Datei /etc/passwd überschrieben wird..... Es müssenauf dem Host zum Schreiben einer Datei privilegien zuvorvergeben worden sein (umask 022 in der Datei /etc/profiles).
INTO OUTFILE ist das Gegenstück zu LOAD DATA INFILE.Die Syntax kann aus einigen FIELDS und LINES Ausdrückenbestehen. Die Textdatei, in die ausgegeben wird, sind nurdie folgenden Buchstaben mit einem Fluchtsymbol versehen(EXCAPED BY character). Es gibt hier die Ausdrücke FIELDS TERMINATED BY und LINES TERMINATED BY. ASCII 0 wird zu einem
ESCAPED 0 und einer zusätzlichen 0 konvertiert, ein Tribut
an die C-Syntax von Arrays.
Die FIELDS TERMINATED BY, EXCAPED BY oder LINES TERMINATED
BY Buchstaben müssen so gespeichert werden, damit die Datei
sauber wieder eingelesen werden kann. ASCII 0 wird von einigen
Editoren besser verstanden.
|
|
|