mysql定義漢字儲存類型

來源:互聯網
上載者:User

mysql手冊上說:

在MySQL 5.x版本中,CHAR和VARCHAR型別宣告的長度表示你想要儲存的最大字元數。例如,CHAR(30)可以佔用30個字元。GBK內碼的情況下,一個漢字佔兩個位元組,但是在UTF-8內碼的情況下,一個漢字需要佔用三個位元組。

詳情請見:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#char

什麼是字元?

百度百科裡說:

  字元是指電腦中使用的字母、數字、字和符號,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。1個漢字字元儲存需要2個位元組,1個英文字元儲存需要1個位元組,2個數字為一個位元組。例如在VB中求字串的長度時,len(str(1234))=4,len(1234)=2。   

      字元是可使用多種不同字元方案或字碼頁來表示的抽象實體。例如,Unicode UTF-16 編碼將字元表示為 16 位整數序列,而 Unicode UTF-8 編碼則將相同的字元表示為 8 位位元組序列。公用語言運行庫使用 Unicode UTF-16(Unicode 轉換格式,16 位編碼形式)表示字元。   

     針對公用語言運行庫的應用程式使用編碼將字元表式形式從本機字元方案映射至其他方案。應用程式使用解碼將字元從非本機方案映射至本機方案。   

     電腦和通訊裝置會使用字元編碼的方式來表達字元。意思是指,會將一個字元指定給某個東西。傳統上,是代表整數量的位元序列,如此,則可透過網路來傳輸,同時亦便於儲存。兩個常用的例子是ASCII和用於統一碼的UTF-8。根據Google的統計,UTF-8是目前最常用於網頁的編碼方式。[1]相較於大部分的字元編碼把字元對應到數字或位元串,摩斯密碼則是使用不定長度的電子脈衝的序列來表現字元。

     各種字元請參看:“字元大全” http://www.qqgexing.com/zifu/zifu.asp 

什麼是位元組?

      位元組,英文名稱是ByteByteBinary Term的縮寫。一個位元組代表八個位元(bit)。它是通常被作為電腦資訊計量單位,不論被儲存資料的類型為何。它也是程式設計語言裡不可缺少的基礎資料型別 (Elementary Data Type)——整數。

Byte(位元組)可被縮寫成B,例如MB表示Megabyte;Bit(位元)可被縮寫成b,例如Mb表示Megabit。

那麼如果我們想定義最大能儲存10個漢字的欄位,該怎麼定義呢?

     有了上面的說明,應該很明了了char(10)或者varchar(10)。我們來驗證一下:

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

向表中插入下列資料:

代碼

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

 我們來查看下結果:

由此可以印證上面說的內容,而且如果超出了定義的範圍,mysql會自動截短,我們在實際應用中應該注意。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.