Heim  >  Artikel  >  Datenbank  >  Welchen Typ verwendet MySQL für chinesische Schriftzeichen?

Welchen Typ verwendet MySQL für chinesische Schriftzeichen?

青灯夜游
青灯夜游Original
2023-02-09 13:59:104625Durchsuche

In MySQL können chinesische Schriftzeichen die Typen CHAR und VARCHAR verwenden. Die für die Typen CHAR und VARCHAR deklarierte Länge stellt die maximale Anzahl von Zeichen dar, die der Benutzer speichern möchte. „CHAR(M)“ ist eine Zeichenfolge fester Länge, und die Spaltenlänge der Zeichenfolge wird bei der Definition angegeben. M stellt die Länge der Spalte dar und reicht von „0 bis 255“ Zeichen. „VARCHAR(M)“ ist eine Zeichenfolge variabler Länge, M stellt die Länge der maximalen Spalte dar und der Bereich liegt zwischen „0 und 65535“.

Welchen Typ verwendet MySQL für chinesische Schriftzeichen?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

MySQL definiert den Speichertyp für chinesische Zeichen.

MySQL-Handbuch sagt:

In der MySQL 5.x-Version gibt die Länge der CHAR- und VARCHAR-Typdeklaration die maximale Anzahl von Zeichen an, die Sie speichern möchten. CHAR(30) kann beispielsweise 30 Zeichen belegen. Im Fall des internen GBK-Codes belegt ein chinesisches Zeichen zwei Bytes, im Fall des internen UTF-8-Codes belegt ein chinesisches Zeichen jedoch drei Bytes.

Was sind Charaktere?

Baidu Encyclopedia sagt:

Zeichen beziehen sich auf Buchstaben, Zahlen, Wörter und Symbole, die in Computern verwendet werden, einschließlich: 1, 2, 3, A, B, C, ~! ·#¥%……——*()——+usw. Die Speicherung eines chinesischen Zeichens erfordert 2 Bytes, die Speicherung eines englischen Zeichens erfordert 1 Byte und zwei Zahlen sind ein Byte. Wenn Sie beispielsweise die Länge einer Zeichenfolge in VB ermitteln, ist len(str(1234))=4, len(1234)=2.

Zeichen sind abstrakte Einheiten, die mithilfe vieler verschiedener Zeichenschemata oder Codepages dargestellt werden können. Beispielsweise stellt die Unicode UTF-16-Kodierung Zeichen als Folge von 16-Bit-Ganzzahlen dar, während die Unicode UTF-8-Kodierung dieselben Zeichen als Folge von 8-Bit-Bytes darstellt. Die Common Language Runtime verwendet Unicode UTF-16 (Unicode Transformation Format, eine 16-Bit-Kodierung) zur Darstellung von Zeichen.

Anwendungen, die auf die Common Language Runtime abzielen, verwenden Codierungen, um Zeichentabellenformen aus dem nativen Zeichenschema anderen Schemata zuzuordnen. Anwendungen nutzen die Dekodierung, um Zeichen aus nicht nativen Schemata nativen Schemata zuzuordnen. ​

Computer und Kommunikationsgeräte verwenden Zeichenkodierung, um Zeichen auszudrücken. Es bedeutet, dass einem Zeichen etwas zugeordnet wird. Traditionell stellt es eine ganzzahlige Anzahl von Bitsequenzen dar, sodass es über das Netzwerk übertragen werden kann und zudem einfach zu speichern ist. Zwei häufig verwendete Beispiele sind ASCII und UTF-8 für Unicode. Laut Google-Statistik ist UTF-8 derzeit die am häufigsten verwendete Kodierungsmethode für Webseiten. [1] Im Vergleich zu den meisten Zeichenkodierungen, die Zeichen Zahlen oder Bitfolgen zuordnen, verwendet Morsecode eine Folge elektronischer Impulse variabler Länge zur Darstellung von Zeichen.

Was sind Bytes?

Byte, der englische Name ist Byte. Byte ist die Abkürzung für Binary Term. Ein Byte repräsentiert acht Bits. Es wird üblicherweise als Maßeinheit für Computerinformationen verwendet, unabhängig von der Art der gespeicherten Daten. Es ist auch ein unverzichtbarer Basisdatentyp in der Programmiersprache Integer.

Byte (Byte) kann beispielsweise als B abgekürzt werden, MB bedeutet Megabyte; Bit (Bit) kann beispielsweise als b abgekürzt werden, Mb bedeutet Megabit.

Wenn wir also ein Feld definieren möchten, das bis zu 10 chinesische Schriftzeichen speichern kann, wie sollten wir es dann definieren?

Mit der obigen Erklärung sollte klar sein, was char(10) oder varchar(10) ist. Überprüfen wir es:

CREATE TABLE `t1` (
  `str` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Fügen Sie die folgenden Daten in die Tabelle ein:

insert  into `t1`(`str`) values ('一二三四五六七八九十');
insert  into `t1`(`str`) values ('一二三四五六七八九十十一');
insert  into `t1`(`str`) values ('abcdefghijklmnopqrst');
insert  into `t1`(`str`) values ('1234567890123456');

Lassen Sie uns die Ergebnisse überprüfen:

Dies kann das oben Gesagte bestätigen. Wenn es den definierten Bereich überschreitet, wird MySQL automatisch abgeschnitten. Wir sollten dies in praktischen Anwendungen beachten.

CHAR- und VARCHAR-Typen

CHAR(M) sind Zeichenfolgen fester Länge, und die Länge der Zeichenfolgenspalte wird bei der Definition angegeben. Beim Speichern werden die Leerzeichen rechts auf die angegebene Länge aufgefüllt. M stellt die Länge der Spalte dar und reicht von 0 bis 255 Zeichen.

Zum Beispiel definiert CHAR(4) eine Zeichenfolgenspalte fester Länge, die maximal 4 Zeichen enthält. Wenn ein CHAR-Wert abgerufen wird, werden nachgestellte Leerzeichen entfernt.

VARCHAR(M) ist eine Zeichenfolge variabler Länge, M stellt die Länge der maximalen Spalte dar und der Bereich von M liegt zwischen 0 und 65535. Die maximale tatsächliche Länge eines VARCHAR wird durch die Größe der längsten Zeile und den verwendeten Zeichensatz bestimmt, während der tatsächlich belegte Platz der tatsächlichen Länge der Zeichenfolge plus eins entspricht.

Zum Beispiel definiert VARCHAR(50) eine Zeichenfolge mit einer maximalen Länge von 50. Wenn die eingefügte Zeichenfolge nur 10 Zeichen enthält, besteht die tatsächlich gespeicherte Zeichenfolge aus 10 Zeichen und einem Zeichenfolgenendezeichen. Nachgestellte VARCHAR-Leerzeichen bleiben beim Speichern und Abrufen von Werten erhalten.

【Beispiel】Im Folgenden werden verschiedene Zeichenfolgen in den Spalten CHAR(4) und VARCHAR(4) gespeichert, um den Unterschied zwischen CHAR und VARCHAR zu veranschaulichen, wie in der folgenden Tabelle gezeigt.

Wert einfügen CHAR(4) Speicherbedarf VARCHAR(4) Speicherbedarf
' ' ' ' 4 Bytes '' 1-Wort-Abschnitt
'ab' 'ab ' 4 Bytes 'ab' 3 Bytes
'abc' ' abc ' 4 Bytes 'abc' 4 Bytes
'abcd' ' abcd' 4 Bytes ' abcd' 5 Bytes
'abcdef ' 'abcd' 4 Bytes ' abcd' 5 Bytes

[ Verwandte Empfehlungen: MySQL-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonWelchen Typ verwendet MySQL für chinesische Schriftzeichen?. 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