Speicherregeln für varchar In Versionen unter 4.0 bedeutet varchar(20) 20 Bytes. Wenn Sie chinesische UTF8-Zeichen speichern, können Sie nur 6 speichern (3 Bytes für jedes chinesische Zeichen).
Unterschied zwischen varchar und char Unterschied 1: Feste Länge und variable Länge char bedeutet feste Länge und varchar bedeutet variable Länge. Wenn die eingefügte Zeichenfolge ihre Länge überschreitet, wird dies der Situation entsprechend behandelt. Im strikten Modus wird die Einfügung abgelehnt und eine Fehlermeldung angezeigt. Im lockeren Modus wird sie abgefangen und dann eingefügt. Wenn die Länge der eingefügten Zeichenfolge kleiner als die definierte Länge ist, wird sie anders behandelt, z. B. char(10), was bedeutet, dass 10 Zeichen gespeichert werden. Egal, wie viele Zeichen Sie einfügen, es werden 10 sein. Wenn es weniger als 10 sind, wird es mit Leerzeichen aufgefüllt. Wenn varchar(10) kleiner als 10 ist, werden so viele Zeichen gespeichert, wie eingefügt wurden. Der zweite Unterschied ist die Speicherkapazität. Bei char beträgt die maximale Anzahl speicherbarer Zeichen 255, unabhängig von der Kodierung. Längenbeschränkung für VARCHAR-KodierungWenn der Zeichentyp gbk ist, belegt jedes Zeichen höchstens 2 Bytes und die maximale Länge kann 32766 nicht überschreiten. Wenn der Zeichentyp utf8 ist, belegt jedes Zeichen höchstens 3 Bytes und die maximale Länge kann 21845 nicht überschreiten. Wenn der oben genannte Grenzwert während der Definition überschritten wird, wird das VARCHAR-Feld zwangsweise in den Texttyp konvertiert und eine Warnung generiert. Zeilenlängenbeschränkung Der Grund für die VarChar-Längenbeschränkung in praktischen Anwendungen ist die Länge einer Zeilendefinition. MySQL erfordert, dass die Definitionslänge einer Zeile 65535 nicht überschreiten darf. Wenn die angegebene Tabellenlänge diesen Wert überschreitet, wird FEHLER 1118 (42000): Zeilengröße zu groß angezeigt. Die maximale Zeilengröße für den verwendeten Tabellentyp (ohne BLOBs) beträgt 65535. Sie müssen einige Spalten in TEXT oder BLOBs ändern.
Kontrollbit von varcharDer Varchar-Zeichentyp in MySQL reserviert auch 1 Byte für andere Steuerinformationen. Beispiel Beispiel 1: Wenn eine Tabelle nur ein Feld vom Typ VARCHAR(N) und mit UTF-8-Kodierung hat, was ist der Maximalwert von N? Beispiel: Erstellen Sie die Tabelle tb_name1 (ein varchar(N)), Standard-Zeichensatz = utf8, dann ist der Maximalwert von N = (65535-1-2)/3 = 21844. Erstellen Sie Tabelle tb_name1 (ein varchar(21844)) Standard-Zeichensatz=utf8; Abfrage OK, 0 Zeilen betroffen (0,38 Sek.) Tabelle tb_name1 löschen; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) Erstellen Sie Tabelle tb_name1 (ein varchar(21845)) Standard-Zeichensatz=utf8; FEHLER 1118 (42000): Zeilengröße zu groß. Die maximale Zeilengröße für den verwendeten Tabellentyp, BLOBs nicht mitgerechnet, beträgt 65535. Sie müssen einige Spalten ändern Beispiel 2: Wenn eine Tabelle ein Feld vom Typ VARCHAR(N) und andere in UTF-8 codierte Feldtypen hat, was ist der Maximalwert von N? Beispiel: create table tb_name2(a int, b char(20), c varchar(N)) default charset=utf8; SQL-Test: Erstellen Sie Tabelle tb_name2 (a int, b char (20), c varchar (21822)). Standard-Zeichensatz = utf8. Abfrage OK, 0 Zeilen betroffen (0,28 Sek.) Tabelle tb_name2 löschen; Abfrage OK, 0 Zeilen betroffen (0,20 Sek.) Erstellen Sie Tabelle tb_name2 (a int, b char (20), c varchar (21823)). Standard-Zeichensatz = utf8. FEHLER 1118 (42000): Zeilengröße zu groß. Die maximale Zeilengröße für den verwendeten Tabellentyp, BLOBs nicht mitgerechnet, beträgt 65535. Sie müssen einige Spalten in TEXT oder BLOBs ändern. Beispiel 3: Wenn eine Tabelle mehrere Felder vom Typ VARCHAR(N) und andere Feldtypen mit GBK-Kodierung hat, was ist der Maximalwert von N? Beispiel: create table tb_name3(a int, b char(20), c varchar(50), d varchar(N)) default charset=gbk; SQL-Test: Erstelle Tabelle tb_name3(a int, b char(20), c varchar(50), d varchar(32694)) Standard-Zeichensatz=gbk; FEHLER 1118 (42000): Zeilengröße zu groß. Die maximale Zeilengröße für den verwendeten Tabellentyp, BLOBs nicht mitgerechnet, beträgt 65535. Sie müssen einige Spalten in TEXT oder BLOBs ändern. Erstelle Tabelle tb_name3(a int, b char(20), c varchar(50), d varchar(32693)) Standard-Zeichensatz=gbk; Abfrage OK, 0 Zeilen betroffen (0,18 Sek.) Oben sind einige Details zu einigen Punkten aufgeführt, die beim Varchar-Typ in MySQL beachtet werden müssen. Weitere Informationen zum Varchar-Typ in MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: XHTML-Einführungstutorial: Textformatierung und Sonderzeichen
>>: Eine kurze Diskussion über die VUE Uni-App-Entwicklungsumgebung
Fehlerbeschreibung percona5.6, mysqldump vollstän...
rm-Befehl Der Befehl rm wird von den meisten Benu...
1. Die Organisationsstruktur des Hypertext-Dokumen...
Schauen Sie sich zunächst das Wirkungsdiagramm an...
Ich bin auf ein sehr ungewöhnliches Problem mit ve...
Frage Bei der Installation von Docker mithilfe de...
Vorwort Wir alle wissen, dass unter Linux „alles ...
Ich habe schon Leute fragen hören, wie man Options...
1. Befehlseinführung Der Befehl ifconfig (Netzwer...
Wenn Benutzer MySQL-Datenbanken zum ersten Mal in...
Vorwort Während des Stresstests besteht das unmit...
Tatsächlich fragen wir uns jeden Tag, wann IE6 wi...
Ergebnis:Implementierungscode html <div Klasse...
Das Download- und Installationstutorial für MySQL...
Fehlermeldung: Benutzer: „root“, Host: „localhost...