36 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
• || ist Zeichenketten-Verkettung (Konkatenation) anstelle von OR.
• Sie k¨onnen eine beliebige Anzahl von Leerzeichen zwischen Funktionnamen und ‘(’
eingeben. Das f¨uhrt zwangsl¨aufig dazu, dass alle Funktionsnamen als reservierte W¨orter
behandelt werden.
• ‘"’ ist dann ein Quotierungsbezeichner (wie das MySQL- ‘‘’-Anf¨uhrungszeichen) und
kein Zeichen, dass einen String einschließt.
• REAL wird zu einem Synonym f¨ur FLOAT anstelle eines Synonyms f¨ur DOUBLE.
• Der Standard-Isolationslevel f¨ur Transaktionen ist SERIALIZABLE. Siehe
Abschnitt 7.7.3 [SET TRANSACTION], Seite 473.
Das ist dasselbe, als w¨urde man --sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_
QUOTES,IGNORE_SPACE,SERIALIZE,ONLY_FULL_GROUP_BY benutzen.
2.7.3 MySQL-Erweiterungen zu ANSI SQL92
MySQL beinhaltet einige Erweiterungen, die Sie in anderen SQL-Datenbanken wahrschein-
lich nicht finden werden. Passen Sie auf, wenn Sie diese benutzen, denn Ihr Code ist
dann nicht mehr kompatibel mit anderen SQL-Servern. In einigen F¨allen k¨onnen Sie Code
schreiben, der MySQL-Erweiterungen enth¨alt und dennoch portabel ist, indem Sie Kom-
mentare in der Form /*! ... */ benutzen. In diesem Fall wird MySQL den Code innerhalb
des Kommentars parsen und ausf¨uhren wie jedes andere MySQL-Statement, aber andere
SQL-Server werden die Erweiterungen ignorieren. Zum Beispiel:
SELECT /*! STRAIGHT_JOIN */ col_name FROM tabelle1, tabelle2 WHERE ...
Wenn Sie hinter ’!’ die Versionsnummer angeben, wird die Syntax nur ausgef¨uhrt, wenn
die MySQL-Version gleich oder neuer als die benutzte Versionsnummer ist:
CREATE /*!32302 TEMPORARY */ TABLE (a int);
Je h¨oher bedeutet, wenn Sie Version 3.23.02 oder neuer haben, wird MySQL das TEMPORARY-
Schl¨usselwort benutzen.
MySQL-Erweiterungen sind:
• Die Feldtypen MEDIUMINT, SET, ENUM und die unterschiedlichen BLOB- und TEXT-Typen.
• Die Feldattribute AUTO_INCREMENT, BINARY, NULL, UNSIGNED und ZEROFILL.
• Alle Zeichenkettenvergleiche achten vorgabem¨aßig nicht auf Groß-/Kleinschreibung,
wobei die Sortierreihenfolge vom aktuell verwendeten Zeichensatz abh¨angig ist (ISO-
8859-1 Latin1 als Vorgabe). Wenn Sie das nicht wollen, sollten Sie Ihre Spalten mit
dem BINARY-Attribut deklarieren oder den BINARY-Cast benutzen, der daf¨ur sorgt, dass
Vergleiche mit der ASCI I-Sortierung durchgef¨uhrt werden, die der MySQL-Server-Host
benutzt.
• MySQL legt jede Datenbank als Verzeichnis unterhalb des MySQL-data- Verzeichnisses
an und Tabellen innerhalb einer Datenbank als Dateien in dem Datenbank-Verzeichnis.
Das hat ein paar Auswirkungen:
− Bei Datenbanknamen und Tabellennamen wird auf Unterschiede in der Groß-
/Kleinschreibung geachtet, wenn das Betriebssystem auf Groß-/Kleinschreibung
achtet (wie auf den meisten Unix-Systemen). Siehe Abschnitt A.5.1 [Case sensi-
tivity], Seite 640.
Comentarios a estos manuales