PythonQ 240-8XX Instrukcja Użytkownika Strona 457

  • Pobierz
  • Dodaj do moich podręczników
  • Drukuj
  • Strona
    / 768
  • Spis treści
  • BOOKMARKI
  • Oceniono. / 5. Na podstawie oceny klientów
Przeglądanie stron 456
436 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
where t1.name = t2.name;
Auf Spalten, die f¨ur die Ausgabe ausgew¨ahlt wurden, kann in ORDER BY- und GROUP BY-
Klauseln mit Spaltennamen, Spalten-Aliasen oder Spaltenpositionen verwiesen werden.
Spaltenpositionen fangen mit 1 an:
mysql> select hochschule, region, seed von tournament
ORDER BY region, seed;
mysql> select hochschule, region AS r, seed AS s from turnier
ORDER BY r, s;
mysql> select hochschule, region, seed from turnier
ORDER BY 2, 3;
Um in absteigender Reihenfolge zu sortieren, f¨ugen Sie dem Namen der Spalte das
DESC-Schl¨usselwort in the ORDER BY-Klausel hinzu (descending, absteigend), nach der
Sie sortieren. Die Vorgabe ist aufsteigende Reihenfolge. Das onnen Sie auch explizit
angeben, indem Sie das ASC-Schl¨usselwort verwenden.
In der WHERE-Klausel onnen Sie beliebige Funktionen verwenden, die MySQL un-
terst¨utzt. Siehe Abschnitt 7.3 [Functions], Seite 397.
Die HAVING-Klausel kann auf jede Spalte oder jeden Alias verweisen, die bzw. der im
select_ausdruck genannt wurde. Die Klausel wird zuletzt angewandt, direkt bevor
Ergebnisse an den Client geschickt werden, ohne jede Optimierung. Benutzen Sie kein
HAVING f¨ur Dinge, die in der WHERE-Klausel stehen sollten. Schreiben Sie beispielsweise
nicht folgendes:
mysql> select spalten_name from tabelle HAVING spalten_name > 0;
Sondern statt dessen:
mysql> select spalten_name from tabelle WHERE spalten_name > 0;
Ab MySQL-Version 3.22.5 onnen Sie Anfragen auch wie folgt schreiben:
mysql> select user,max(gehalt) from benutzer
group by benutzer HAVING max(gehalt)>10;
In ¨alteren MySQL-Versionen schreiben Sie statt dessen:
mysql> select benutzer,max(gehalt) AS summe from benutzer
group by benutzer HAVING summe>10;
SQL_SMALL_RESULT, SQL_BIG_RESULT, SQL_BUFFER_RESULT, STRAIGHT_JOIN und
HIGH_PRIORITY sind MySQL Erweiterungen zu ANSI-SQL92.
HIGH_PRIORITY gibt dem SELECT ohere Priorit¨at als einem Statement, das eine Tabelle
aktualisiert. Sie sollten das nur f¨ur Anfragen benutzen, die sehr schnell sind und sofort
durchgef¨uhrt werden m¨ussen. Eine SELECT HIGH_PRIORITY-Anfrage auft, wenn die
Tabelle eine Lese-Sperre hat, selbst wenn es ein Update-Statement gibt, das darauf
wartet, dass die Tabelle freigegeben wird.
SQL_BIG_RESULT kann bei GROUP BY oder DISTINCT benutzt werden, um dem Opti-
mierer mitzuteilen, dass das Ergebnis sehr viele Zeilen haben wird. In diesem Fall
benutzt MySQL bei Bedarf direkt Festplatten-basierende tempor¨are Tabellen. Ausser-
dem bevorzugt MySQL in diesem Fall Sortieren vor dem Anlegen einer tempor¨aren
Tabelle mit einem Schl¨ussel auf den GROUP BY-Elementen.
Przeglądanie stron 456
1 2 ... 452 453 454 455 456 457 458 459 460 461 462 ... 767 768

Komentarze do niniejszej Instrukcji

Brak uwag