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
1. Erstellen Sie zunächst den entsprechenden Ordn...
Ergebnis: Implementierungscode html <div id=&q...
Inhaltsverzeichnis 1. Routennavigation 2. API zur...
Öffnen Sie den Editor für geplante Aufgaben. Cent...
JavaScript-Skripte können überall in HTML eingebe...
Das dürfte etwas sein, was viele Leute gemacht ha...
Umweltvorbereitung: VMware+CentOS, jdk 1. Überprü...
Um JS-Code zu debuggen, müssen Sie jedes Mal eine...
Die Hover-Prompts von Vue2+elementui sind in exte...
Zabbix 12.10.2019 Chenxin siehe https://www.zabbi...
Löschen einer einzelnen Tabelle: LÖSCHEN AUS Tabe...
Vorwort Zusätzlich zu den standardmäßig integrier...
Dieser Artikel beschreibt, wie man Redis- und php...
Was ist der Eingabetyp="Datei"? Ich glau...
In diesem Artikelbeispiel wird der spezifische Co...