Datentypen CHAR und VARCHAR

Frage:
Was sind die genauen Unterschiede zwischen den Datentypen char und varchar?

Lösung:
In beiden Datentypen können alphanumerische Zeichen gespeichert werden.

Dabei wird beim Datentyp char der reservierte Platz immer bis zur vollen Länge mit Leerstellen aufgefüllt. Dies gilt auch beim Wert NULL. Dadurch belegt der Datentyp bei an sich variablen Werten deutlich mehr Platz in den Daten- und Indexseiten. Char sollte nur für solche Spalten genutzt werden, die in der Regel fast vollständig gefüllt werden.

Der Datentyp Varchar wird nur bis zur eigentlichen Länge des Wertes gefüllt. Die Länge des Wertes wird ebenfalls gespeichert. Hierfür wird 1 Byte benötigt. Ein Feld vom Typ varchar(1) macht keinen Sinn, da intern 2 Bytes genutzt werden. Eins für den eigentlichen Wert und ein weiteres für die Information, daß der Wert nur 1 Byte groß ist.

* übernommen aus der Original sqlfaq.de */