Unterschiede zwischen Char & Varchar Datatypes

June 17

Unterschiede zwischen Char & Varchar Datatypes

Wenn Entwickler mit Systemen wie MySQL SQL-Datenbanken erstellen, haben sie die Wahl in Bezug auf die Datentypen, die sie verwenden für jedes Element gespeichert wird. Datenbanken umfassen normalerweise Tabellen, bei dem jede Spalte mit einen Namen und einen Datentyp definiert. Jeder Datensatz in einer Tabelle kann in jede Spalte einen Wert haben. Wenn Sie Datentypen auswählen, müssen Entwickler die Datenwerte zu berücksichtigen, die in jeder Spalte angezeigt wird, und auch gleichzeitig auf Effizienz zu maximieren. Char und Varchar sind beide Datentypen zum Speichern von Textwerten.

Länge

Char und Varchar müssen verschiedene Aspekte berücksichtigt werden im Hinblick auf die Länge. Der Char-Datentyp ist eine feste Länge, während der Varchar-Datentyp variabler Länge ist. Dies macht Char in Fällen wo der Entwickler weiß, dass alle Werte in einer Spalte die gleiche Größe oder sehr ähnlicher Größe sein werden. Wenn es wahrscheinlich Variation in der Größe der Werte, ist der Varchar-Datentyp besser geeignet. Wenn Sie eine Spalte in einer Tabelle als char- oder Varchar-Datentyp deklarieren, können Entwickler die maximale Anzahl von Zeichen angeben, die jeden Wert enthalten kann.

Leerzeichen am Ende

Char und Varchar unterscheiden sich in den Raum um Zeichenwerte. Wenn ein Char-Wert in eine Datenbank eingefügt wird und weniger Zeichen als die angegebene Länge für die Spalte hat, wird das System mit Leerzeichen auf seiner rechten Seite ausfüllen, um den maximalen Speicherplatz besetzen aufzufüllen. Wenn eine Anwendung einen Char-Wert aus einer Datenbank abruft, werden diese zusätzlichen Leerzeichen daraus entfernt. Die Polsterung der Werte mit Leerzeichen tritt nicht mit dem Typ Varchar. Je nach Datenbanksystem im Einsatz können keine nachgestellten Leerzeichen auch über ein Varchar-Wert entfernt werden, wenn es gespeichert wird.

Speicher

Varchar und Char-Werte besetzen unterschiedliche Mengen an Speicherplatz. Ein Char-Wert nimmt ein einzelnes Byte für jedes Zeichen als die Länge angegeben, wenn die Spalte definiert ist. Beispielsweise wenn eine Spalte mit "char(8)", als deren Datentyp definiert ist, wird jeder Wert acht Bytes unabhängig von belegen ob es acht Zeichen enthält oder weniger. Der Varchar-Datentyp speichert einen Indikator für die Länge zusammen mit jedem Wert. Dies bedeutet, dass ein Varchar-Wert ein einzelnes Byte für jedes Zeichen plus eine oder mehrere zusätzliche Bytes, die die gesamte Länge einnimmt.

Verwendet

Entwickler sollten die Art der Daten, die eine Datenbanktabelle, bei der Auswahl der Datentypen für jede Spalte zu speichern, geht. Char Datentypen verschwenden weniger Platz, wenn jeder Wert die gleiche Anzahl von Zeichen enthält. Viele Tabellen speichern Sequenzen von Text mit unterschiedlichen Längen, in welchem Fall Varchar werden jedoch weniger Speicherplatz verschwenden. Beispielsweise wenn eine Char-Spalte angegeben ist als mit einer Länge von zehn, denn zehn die maximale Länge ist, was, die seine Werte annehmen kann, wird dann jeder Eintrag in dieser Spalte das Äquivalent von zehn Zeichen, auch in Fällen belegen wo die Istwerte kürzer als zehn sind. In einer Varchar-Spalte werden die Werte nicht mehr Speicherplatz als nötig für die Zeichen, mit Ausnahme der zusätzliche Aufwand das Längenfeld, obwohl in den meisten Fällen dies nur ein einzelnes Byte ist belegen.