Mysql 學習 ->數據類型篇(字符串類型)


mysql中的字符串類型

字符串類型

字節

描述及存儲需求

CHAR(M) M M為0~255之間的整數
VARCHAR(M)   M為0~65536之間的整數
TINYBLOB   允許長度0~255字節
BLOB   允許長度0~65535字節
MEDUIMBLOB   允許長度0~167772150字節
LONGBLOB   允許長度0~4294967295
TINYTEXT   允許長度0~255字節
TEXT   允許長度0~65535字節
MEDIUMTEXT   允許長度0~167772150字節
LONGTEXT   允許長度0~4294967295字節
VARBINARY(M) M 允許長度0~M個字節的邊長字節字符集
BINARY(M) M 允許長度0~M個字節的定長字節字符集

CHAR於VARCHAR類型

  CHAR和VARCHAR很類似,都是用來保存Mysql中較短的字符串,主要區別在於:CHAR列的長度固定為創建表時聲明的長度,長度可以為從0~255的任何值,而VARCHAR的值可以是變長字符串,長度可以指定0~65535之間的值,在檢索的時候,CHAR列會刪除尾部的空格而VARCHAR則保留了這些空格。

  

  這樣看的更清楚

   

  CHAR列最后的空格在做操作的時候都被刪除,而VARCHAR依然保留這些空格

ENUM類型

  枚舉類型,它的值范圍需要在創建表時通過枚舉方式顯示指定,對1~255個成員的枚舉需要1個字節存儲,對於255~65535個成員,需要2個字節存儲,最多允許65535個成員。

  

   可以看出來ENUM類型是忽略大小寫的,還可以看出對於插入不在ENUM指定范圍內的值時,並有警告,而是成功插入,並且是enum('M','F')的第一個值M,而且只允許從值集合中選取單個值,不能一次取多個值。

SET類型

  SET和enum非常相似,里面可以包含0~64個成員,根據成員的不用,存儲上也有不同。

  1~8成員的集合,占1個字節

  9~16成員的集合,占2個字節

  17~24成員的集合,占3個字節

  25~32成員的集合,占4個字節

  33~64成員的集合,占8個字節

  set類型一次可以選取多個成員,而ENUM則只能選一個,就相當於ENUM是單選,而set是復選。

   

  可以看出set類型可以從允許值的集合中選擇任意1個或多個元素進行組合,所以對於輸入的值只要是在允許值的組合范圍內,都可以正確的寫入到set類型中,對於超過的允許值范圍如('a,d,f')是不能寫入到上面的例子中的,而對於(‘a,d,a’)這樣包含的重復成員將只取一次,寫入后的結果為'a,d'。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM