Heim  >  Artikel  >  Datenbank  >  Was sind die Unterschiede zwischen char, varchar, nchar, nvarchar und text?

Was sind die Unterschiede zwischen char, varchar, nchar, nvarchar und text?

一个新手
一个新手Original
2017-10-18 10:00:061515Durchsuche

Der Unterschied zwischen char, varchar, nchar, nvarchar und text

1. Diejenigen mit dem Präfix var geben den tatsächlichen Speicherplatz an ist variable Länge, Varchar, Nvarchar

Die sogenannte feste Länge bedeutet, dass die Länge fest ist, wenn die Eingabedatenlänge nicht erreicht Bei der angegebenen Länge wird dahinter automatisch mit englischen Leerzeichen gefüllt, damit die Länge die entsprechende Länge erreicht Wenn die von Ihnen eingegebenen Zeichen größer als die angegebene Zahl sind, wird der überschüssige Teil abgefangen ; und Zeichendaten variabler Länge werden nicht mit Leerzeichen gefüllt. Eine Ausnahme besteht darin, dass Text auch in variabler Länge gespeichert wird.

2.n stellt Unicode-Zeichen dar, das heißt, alle Zeichen belegen zwei Bytes, nchar, nvarchar,

Unter den Zeichen benötigen englische Zeichen nur ein Byte zum Speichern, aber es gibt viele chinesische Zeichen, die zwei Bytes zum Speichern benötigen. Wenn englische und chinesische Zeichen gleichzeitig vorhanden sind, kann es leicht zu Verwirrung kommen Der Zeichensatz soll das Problem der Zeichensätze lösen. Alle Zeichen werden durch zwei Bytes dargestellt, das heißt, englische Zeichen werden auch durch zwei Bytes dargestellt

3. Schauen wir uns anhand der beiden oben genannten Punkte die Feldkapazität an

4. Verwendung (persönliche Präferenz)

a. Wenn die Datenmenge sehr groß ist, kann die Länge zu 100 % bestimmt werden und es werden nur Ansi-Zeichen gespeichert. then char

b Wenn die Länge bestimmt werden kann, es sich jedoch nicht unbedingt um Ansi-Zeichen handelt, verwenden Sie nchar

Für very Große Datenmengen wie Artikelinhalte verwenden nText

Andere allgemeine nvarchar

Funktionsvergleich

1. CHAR ist sehr praktisch zum Speichern von Daten fester Länge. Die Indizierungseffizienz für das CHAR-Feld ist hoch Wenn Sie beispielsweise char (10) definieren, belegen die von Ihnen gespeicherten Daten unabhängig davon, ob sie 10 Byte erreichen, 10 Byte Speicherplatz.

2. VARCHAR. Speichert Daten variabler Länge, , aber die Speichereffizienz ist nicht so hoch wie CHAR , wenn die Möglicher Wert eines Feldes ist nicht die feste Länge, wir wissen nur, dass es 10 Zeichen nicht überschreiten darf und es am kostengünstigsten ist, es als VARCHAR(10) zu definieren. Die tatsächliche Länge des VARCHAR-Typs ist die tatsächliche Länge seines Werts + 1. Warum „+1“? Dieses Byte wird verwendet, um die tatsächlich verwendete Länge zu speichern.

Varchar ist angemessen, aus Effizienzgründen ist char angemessen. Der Schlüssel liegt darin, den Kompromisspunkt zu finden auf die tatsächliche Situation.

3. Text speichert Nicht-Unicode-Daten variabler Länge mit einer maximalen Länge von 2^31-1 (2.147.483.647) Zeichen.

4, NCHAR, NVARCHAR, NTEXT. Diese drei Typen haben im Namen ein zusätzliches „N“ als die vorherigen drei. Im Vergleich zu char und varchar können nchar und nvarchar bis zu 4000 englische oder chinesische Zeichen speichern, während char und varchar bis zu 8000 englische und 4000 chinesische Zeichen speichern können. Es ist ersichtlich, dass Sie sich bei der Verwendung der Datentypen nchar und nvarchar keine Gedanken darüber machen müssen, ob es sich bei den eingegebenen Zeichen um englische oder chinesische Zeichen handelt, was praktischer ist, beim Speichern von Englisch jedoch ein gewisser Mengenverlust auftritt.

Wenn es also chinesische Zeichen enthält, verwenden Sie nchar/nvarchar, und wenn es reines Englisch und Zahlen enthält, verwenden Sie char/varchar.

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen char, varchar, nchar, nvarchar und text?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn