Unterschied zwischen Char und Varchar

Beides sind Datentypen in vielen Programmiersprachen und Datenbanksystemen, bei denen 'char' auf Zeichen und 'varchar' auf Variablenzeichen verweist. Char in C steht für den Zeichentyp, der zum Speichern von Zeichenfolgenwerten verwendet wird, hauptsächlich UTF-8-codierte Zeichen und Ganzzahlen. Varchar ist dagegen ein Datentyp, der Daten jeder Art unbestimmter Länge enthalten kann. Varchar bezieht sich auf einen Datentyp eines Felds in einem Datenbankverwaltungssystem. Beide können String-Werte mit einer maximalen Länge von 8.000 Zeichen speichern, char benötigt jedoch mehr Speicher als varchar. Technisch gesehen werden beide zum Speichern der gleichen Datentypen verwendet, unterscheiden sich jedoch in der Art und Weise, wie sie gespeichert und abgerufen werden. Schauen wir uns die Unterschiede im Detail an.

Was ist Char??

Char ist ein Datentyp mit fester Länge, der zum Speichern von Nicht-Unicode-Zeichen verwendet wird, daher der Name (kurz für Zeichen). Es nimmt ein Byte Platz für jedes Zeichen ein, das als Zahlen codiert ist - die aus der ASCII-Codierung. Der Zeichentyp kann auch zur Deklaration kleiner Ganzzahlen verwendet werden. Zur Deklaration einer Zeichenvariablen wird das Schlüsselwort 'char' verwendet, dh ein einzelnes Zeichen wird in einem Byte gespeichert.

Wie die Integer-Typen kann char auch signiert oder unsigniert sein. Es kann vorzeichenbehaftete Char-Werte im Bereich von -128 bis 127 enthalten. Abhängig von der Architekturgröße können auch vorzeichenlose Werte zwischen 0 und 255 angegeben werden. Wenn Char-Werte gespeichert werden, werden sie mit Leerzeichen auf die angegebene Länge aufgefüllt . Die nachgestellten Leerzeichen werden entfernt, wenn sie abgerufen werden.

Wenn Sie beispielsweise eine Variable des Datentyps char (7) deklarieren, werden immer 7 Byte Daten benötigt, unabhängig davon, ob Sie 1 oder 7 Zeichen speichern. Das bedeutet, dass Sie maximal 7 Zeichen in der Spalte speichern können.

Was ist Varchar??

Varchar ist, wie der Name schon sagt, ein Datentyp mit variabler Länge, der jeden Datentyp mit einer Länge zwischen 0 und 65.535 enthalten kann. Das Varchar-Feld kann abhängig von der Datenbank Werte jeder Größe bis zu einer bestimmten Grenze speichern. Es kann entweder in Programmiersprachen oder auf Datenbankebene definiert werden. Die Größe des varchar-Felds kann zwischen null und der maximal angegebenen Feldlänge liegen.

Um ein variables Zeichen zu deklarieren, wird das Schlüsselwort 'varchar' verwendet. Varchar benötigt einen variablen Speicherplatz, was bedeutet, dass nur die Anzahl der Bytes verwendet wird, die der Anzahl der Zeichen entspricht. Es hilft dabei, Platzverschwendung zu vermeiden, da nur der Platz benötigt wird, der für die Größe der Zeichenfolge benötigt wird. In einigen Programmiersprachen und Datenbanksystemen wird zusätzlicher Speicherplatz automatisch aus der Datenbank entfernt.

Wenn Sie zum Beispiel eine Variable von varchar (10) deklarieren, wird die Anzahl der Bytes gleich der Anzahl der Zeichen verwendet. Wenn Sie also nur ein Zeichen speichern, dauert dies nur ein Byte, und wenn Sie 10 Zeichen speichern, werden 10 Byte benötigt, um eine Verschwendung von Datenbankspeicherplatz zu vermeiden.

Unterschied zwischen Char und Varchar

  1. Datentyp

'Char' ist ein Datentyp mit fester Länge, der zum Speichern von Zeichenkettenwerten mit fester Länge verwendet wird, während 'Varchar' ein Datentyp mit variabler Länge ist, der zum Speichern von alphanumerischen Daten mit variabler Länge verwendet wird.

  1. Speichergröße

Die Speichergröße des Zeichenwerts entspricht der maximalen Größe dieser Spalte, die Sie beim Erstellen der Tabelle deklarieren. Andererseits ist die Speichergröße des varchar-Werts die tatsächliche Länge der eingegebenen Daten und nicht die maximale Größe für diese Spalte.

  1. Dateneinträge

Sie können char verwenden, wenn erwartet wird, dass die Dateneinträge in einer Spalte dieselbe Größe haben. Im Gegensatz dazu kann varchar verwendet werden, wenn erwartet wird, dass die Dateneinträge in einer Spalte unterschiedlich groß sind.

  1. Speicherzuweisung

Char verwendet statische Speicherzuordnung, während Varchar dynamische Speicherzuordnung verwendet

  1. Länge

Die Länge einer Char-Variablen kann einen beliebigen Wert zwischen 0 und 255 haben, während die Länge der Varchar-Variablen zwischen 0 und 65.535 liegt.

  1. Anwendung

Dateneinträge sind konsistent in char, das zum Speichern von Daten wie Telefonnummern verwendet wird, während Varchar zum Speichern unterschiedlicher Daten wie Adressen verwendet wird.

Char vs. Varchar

Verkohlen Varchar
Wird zum Speichern von Zeichenkettenwerten mit fester Länge verwendet. Dient zum Speichern alphanumerischer Daten mit variabler Länge.
Die Länge variiert von 0 bis 255. Die Länge variiert zwischen 0 und 65.535.
1 Byte pro Zeichen zur Speicherung benötigt. Benötigt 1 Byte pro Zeichen plus 1 oder 2 zusätzliche Byte zum Speichern von Längeninformationen.
Die Speichergröße von char ist dieselbe wie angegeben. Die Speichergröße von varchar hängt von der spezifischen gespeicherten Zeichenfolge ab.
Verwendet statische Speicherzuordnung. Verwendet dynamische Speicherzuordnung.
Char sollte verwendet werden, wenn die Länge der Variablen bekannt ist. Varchar sollte nur verwendet werden, wenn die Länge der Variablen nicht bekannt ist.
Es akzeptiert nur Zeichen. Es akzeptiert sowohl Zeichen als auch Zahlen.
Es ist 50 Prozent schneller als Varchar. Es ist langsamer als Char.
Die Speichergröße des Char-Werts entspricht der maximalen Größe für die Spalte. Die Speichergröße des varchar-Werts entspricht der tatsächlichen Länge der eingegebenen Daten, nicht der maximalen Größe für die Spalte.

Zusammenfassung

  • Sowohl 'Char' als auch 'Varchar' sind Datentypen in Programmiersprachen und Datenbanksystemen, die hinsichtlich Funktionalität und technischer Funktionalität einige gemeinsame Merkmale aufweisen. Sie unterscheiden sich jedoch erheblich von der Art und Weise, wie sie gespeichert und abgerufen werden.
  • Während char tatsächlich auf ein Zeichen verweist, bezieht sich varchar auf ein variables Zeichen. Wie der Name vermuten lässt, ist char ein Datentyp mit fester Länge, während varchar ein Datentyp mit variabler Länge ist.
  • Char nimmt bis zu 1 Byte pro Zeichen in Anspruch, während Varchar auch bis zu 1 Byte pro Zeichen und zusätzlich 1 oder 2 Byte zum Speichern von Längeninformationen benötigt. Bei char variiert die Länge zwischen 0 und 255, bei varchar zwischen 0 und 65.535.
  • Da char eine feste Länge hat, wird der verbleibende Platz im Feld mit Leerzeichen aufgefüllt. Varchar hingegen hat eine variable Länge, so dass es nur die Zeichen enthält, die Sie ihm zuweisen.
  • Die verbleibenden Zeichen werden mit Leerzeichen aufgefüllt, wenn die Werte in 'char' -Feldern gespeichert werden, wohingegen 'varchar' keine zusätzlichen Leerzeichen hinzufügt, wenn Sie weniger Daten als angegeben angeben.