Sven Rautenberg: Apache Datenbank

Beitrag lesen

Moin!

Was heißt wenn man eine neue Tabelle erstellt:

  • Kollation ?

Das ist die Sortierreihenfolge des Alphabets. Und jede Kollation definiert ihrerseits auch eindeutig die nutzbare Zeichencodierung.

Soll heißen: Wenn du ISO-8859-1 (also Latin 1) codieren willst, hast du für die deutsche Sprache zwei Sortierreihenfolgen zur Auswahl:
1. Die Umlaute äöü werden sortiert wie aou.
2. Die Umlaute werden sortiert wie ae, oe, ue.

Im Fall 1 wäre ein "Müller" identisch wie "Muller" einsortiert, im Fall 2 wäre es wie "Mueller" einsortiert.

Das gleiche gilt im Prinzip gilt auch bei den utf8-Kollationen. Die Zeichencodierung ist hierbei dann immer UTF-8, und die Sortierung (für deutsche Sprache), die relevant ist, wäre utf8_general oder utf8_unicode. Unterschied zwischen beiden ist, dass einmal das "ß" als "s", das anderemal als "ss" sortiert wird.

Und meine 2 frage:
was hat das Attribute mit den einstellungen:
-Unsigned
-Unsigned Zerofill

Zahlenfelder sind standardmäßig mit Vorzeichen versehen, die 0 liegt dann in der Mitte des erlaubten Zahlenbereichs (Tinyint geht z.B. von -128 bis +127). Unsigned wird das Vorzeichen weggelassen, dadurch erweitert sich der Zahlenbereich im positiven, weil die 0 jetzt der kleinste Wert ist (unsigned Tinyint geht von 0 bis 255). Für Anwendungen, die keine negativen Zahlen benötigen, z.B. Datensatz-IDs, ist unsigned eine simple Methode, den nutzbaren Wertebereich zu verdoppeln.

Zerofill füllt mit führenden Nullen auf.

-On Update Current Timestamp

Das ist nur im Zusammenhang mit TIMESTAMP-Feldern relevant. TIMESTAMP-Felder haben unter Umständen die magische Eigenschaft, bei Veränderung irgendeines Feldes in ihrem Datensatz den Zeitpunkt dieser Änderung zu speichern, auch ohne dass man das explizit im SQL-Statement einfügt.

Ich habe allerdings mit MySQL 4.1 damit mal etwas experimentiert und rate dir, dieses Feature als Anfänger erstmal nicht zu nutzen. Lege, wenn du sowas machen willst, ein DATETIME-Feld an und fülle es explizit mit dem Funktionswert NOW(), wenn dorthinein eine aktuelle Zeit geschrieben werden soll.

- Sven Rautenberg

--
"Love your nation - respect the others."