Rumah > Artikel > pangkalan data > Apakah jenis yang digunakan mysql untuk aksara Cina?
Dalam mysql, aksara Cina boleh menggunakan jenis CHAR dan VARCHAR. Panjang yang diisytiharkan untuk jenis CHAR dan VARCHAR mewakili bilangan maksimum aksara yang ingin disimpan oleh pengguna. "CHAR(M)" ialah rentetan panjang tetap, dan panjang lajur rentetan ditentukan apabila mentakrifkan M mewakili panjang lajur, antara "0 hingga 255" aksara. "VARCHAR(M)" ialah rentetan panjang berubah-ubah, M mewakili panjang lajur maksimum dan julat ialah "0~65535".
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
mysql mentakrifkan jenis storan aksara Cina
Manual mysql berkata:
dalam MySQL 5 . Dalam versi x, panjang yang diisytiharkan untuk jenis CHAR dan VARCHAR mewakili bilangan maksimum aksara yang anda ingin simpan. Sebagai contoh, CHAR(30) boleh menduduki 30 aksara. Dalam kes kod dalaman GBK, satu aksara Cina menduduki dua bait, tetapi dalam kes kod dalaman UTF-8, satu aksara Cina mengambil tiga bait.
Apakah watak itu?
Ensiklopedia Baidu berkata:
Aksara merujuk kepada huruf, nombor, perkataan dan simbol yang digunakan dalam komputer, termasuk: 1, 2, 3, A, B, C, ~ ! ·#¥%……——*()——+dsb. Storan 1 aksara Cina memerlukan 2 bait, storan 1 aksara Inggeris memerlukan 1 bait dan 2 nombor ialah satu bait. Sebagai contoh, apabila mencari panjang rentetan dalam VB, len(str(1234))=4, len(1234)=2.
Aksara ialah entiti abstrak yang boleh diwakili menggunakan banyak skema aksara atau halaman kod yang berbeza. Sebagai contoh, pengekodan Unicode UTF-16 mewakili aksara sebagai jujukan integer 16-bit, manakala pengekodan Unicode UTF-8 mewakili aksara yang sama sebagai jujukan bait 8-bit. Masa jalan bahasa biasa menggunakan Unicode UTF-16 (Format Transformasi Unikod, pengekodan 16-bit) untuk mewakili aksara.
Aplikasi yang menyasarkan masa jalan bahasa biasa menggunakan pengekodan untuk memetakan borang jadual aksara daripada skema aksara asli kepada skema lain. Aplikasi menggunakan penyahkodan untuk memetakan aksara daripada skema bukan asli kepada skema asli.
Komputer dan peralatan komunikasi menggunakan pengekodan aksara untuk menyatakan aksara. Ini bermakna bahawa watak ditugaskan kepada sesuatu. Secara tradisinya, ia mewakili nombor integer jujukan bit, supaya ia boleh dihantar melalui rangkaian dan juga mudah disimpan. Dua contoh yang biasa digunakan ialah ASCII dan UTF-8 untuk Unicode. Menurut statistik Google, UTF-8 kini merupakan kaedah pengekodan yang paling biasa digunakan untuk halaman web. [1] Berbanding dengan kebanyakan pengekodan aksara yang memetakan aksara kepada nombor atau rentetan bit, kod Morse menggunakan urutan denyutan elektronik dengan panjang berubah-ubah untuk mewakili aksara.
Apakah itu bait?
Byte, nama Inggeris ialah Byte. Byte ialah singkatan kepada Binary Term. Satu bait mewakili lapan bit. Ia biasanya digunakan sebagai unit ukuran untuk maklumat komputer, tanpa mengira jenis data yang disimpan. Ia juga merupakan jenis data asas yang sangat diperlukan dalam bahasa pengaturcaraan-integer.
Byte (bait) boleh disingkatkan kepada B, contohnya, MB bermaksud Megabait Bit (bit) boleh disingkatkan kepada b, contohnya, Mb bermaksud Megabit.
Jadi, jika kita ingin menentukan medan yang boleh menyimpan sehingga 10 aksara Cina, bagaimanakah kita harus mentakrifkannya?
Dengan penjelasan di atas, ia harus jelas tentang char(10) atau varchar(10). Mari sahkan:
CREATE TABLE `t1` ( `str` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Masukkan data berikut ke dalam jadual:
insert into `t1`(`str`) values ('一二三四五六七八九十'); insert into `t1`(`str`) values ('一二三四五六七八九十十一'); insert into `t1`(`str`) values ('abcdefghijklmnopqrst'); insert into `t1`(`str`) values ('1234567890123456');
Mari kita semak keputusan:
Ini boleh mengesahkan apa yang dikatakan di atas, dan jika ia melebihi julat yang ditentukan, mysql akan memotongnya secara automatik, kita sebenarnya Ini sepatutnya diperhatikan semasa permohonan.
Jenis CHAR dan VARCHAR
CHAR(M) ialah rentetan panjang tetap dan panjang lajur rentetan ditentukan semasa mentakrifkan. Apabila disimpan, pad ruang di sebelah kanan ke panjang yang ditentukan. M mewakili panjang lajur, antara 0 hingga 255 aksara.
Sebagai contoh, CHAR(4) mentakrifkan lajur rentetan panjang tetap yang mengandungi maksimum 4 aksara. Apabila nilai CHAR diambil, ruang mengekor akan dialih keluar.
VARCHAR(M) ialah rentetan panjang berubah-ubah, M mewakili panjang lajur maksimum dan julat M ialah 0~65535. Panjang sebenar maksimum VARCHAR ditentukan oleh saiz baris terpanjang dan set aksara yang digunakan, manakala ruang sebenar yang diduduki ialah panjang sebenar rentetan tambah satu.
Sebagai contoh, VARCHAR(50) mentakrifkan rentetan dengan panjang maksimum 50. Jika rentetan yang disisipkan hanya mempunyai 10 aksara, rentetan yang disimpan sebenar ialah 10 aksara dan aksara akhir rentetan. Ruang belakang VARCHAR dikekalkan apabila nilai disimpan dan diambil semula.
【Contoh】Yang berikut menyimpan rentetan yang berbeza ke dalam lajur CHAR(4) dan VARCHAR(4) untuk menggambarkan perbezaan antara CHAR dan VARCHAR, seperti yang ditunjukkan dalam jadual berikut.
Sisipkan nilai | CHAR(4) | Keperluan storan | VARCHAR (4) | Keperluan storan | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
' ' | ' ' | 4 bait | '' | 1 bait | ||||||||||||||||||||||||||||||
'ab'
|
'ab ' | 4 bait | 'ab' | 3 bait | ||||||||||||||||||||||||||||||
'abc' td> | 'abc ' | 4 bait | 'abc' | 4 bait | ||||||||||||||||||||||||||||||
'abcd' | 'abcd' | 4 bait | 'abcd ' td> | 5 bait | ||||||||||||||||||||||||||||||
'abcdef' | ' abcd ' | 4 bait | 'abcd' | 5 bait |
[Cadangan berkaitan: tutorial video mysql]
Atas ialah kandungan terperinci Apakah jenis yang digunakan mysql untuk aksara Cina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!