Mysql字串類資料列類型(參考)

來源:互聯網
上載者:User

字串可以用來表示任何一種值,所以它是最基本的類型之一。我們可以用字串類型來儲存圖象或 聲音之類的位元據,也可儲存用gzip壓縮的資料。下表介紹了各種字串類型:

Table 1.3. 字串類資料列類型

CHAR[(M)] M位元組 M位元組
VARCHAR[(M)] M位元組 L+1位元組
TINYBLOD,TINYTEXT 2^8-1位元組 L+1位元組
BLOB,TEXT 2^16-1位元組 L+2
MEDIUMBLOB,MEDIUMTEXT 2^24-1位元組 L+3
LONGBLOB,LONGTEXT 2^32-1位元組 L+4
ENUM('value1','value2',...) 65535個成員 1或2位元組
SET('value1','value2',...) 64個成員 1,2,3,4或8位元組

L+1、L+2是表示資料列是可變長度的,它佔用的空間會根據資料行的增減面則改變。資料行的總長度 取決於存放在這些資料列裡的資料值的長度。L+1或L+2裡多出來的位元組是用來儲存資料值的長度的。在對 長度可變的資料進行處理時,MySQL要把資料內容和資料長度都儲存起來。

如果把超出字串最大長度的資料放到字元類資料列中,MySQL會自動進行截短處理。

ENUM和SET類型的資料列定義裡有一個列表,列表裡的元素就是該資料列的合法取值。如果試圖把一個 沒有在列表裡的值放到資料列裡,它會被轉換為空白字串(“”)。

字串類型的值被儲存為一組連續的位元組序列,並會根據它們容納的是二進位字串還是非二進位字 符而被區別對待為位元組或者字元:

二進位字串被視為一個連續的位元組序列,與字元集無關。MySQL把BLOB資料列和帶BINARY屬性的CHAR 和VARCHAR資料列裡的資料當作二進位值。

非二進位字串被視為一個連續排列的字元序列。與字元集有關。MySQL把TEXT列與不帶BINARY屬性的 CHAR和VARCHAR資料列裡的資料當作二進位值對待。

在MySQL4.1以後的版本中,不同的資料列可以使用不同的字元集。在MySQL4.1版本以前,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.