MySQL字符串和二进制
為了存儲字符串、圖片和聲音等數據,MySQL提供了字符串和二進制類型。
數據類型
CHAR——用于表示固定長度的字符串
VARCHAR——用于表示可變長度的字符串
BINARY——用于表示固定長度的二進制數據
VARBINARY——用于表示可變長度的二進制數據
BOLB——用于表示二進制大數據
TEXT——用于表示大文本數據
ENUM——表示枚舉類型,只能存儲一個枚舉字符串值
SET——表示字符串對象,可以有零或多個值
BIT——表示位字段類型
CHAR和VARCHAR類型
都用來存儲字符串
VARCHAR,可以存儲可變長度的字符串
CHAR,存儲定長字符串
定義如下
CHAR (M)或者VARCHAR (M)
M指的是字符串的最大長度
比如
插入值’ab’
CHAR (4),需要4個字節
VARCHAR (4),需要3個字節
當數據為CHAR (M)類型時,不管插入值的長度是多少,所占用的存儲空間都是M個字節。
當為VARCHAR (M)類型時,所占用的字節數為實際長度加1。
BINARY和VARBINARY類型
類似于CHAR和VARCHAR
用來表示二進制數據
定義如下
BINARY (M)或者VARBINARY (M)
M指的是二進制數據的最大字節長度
注意
BINARY類型的長度是固定的,如果數據的長度不足最大長度,在后面用”\0”補齊。
比如,數據類型為BINARY (3),當插入a時,實際存儲的是”a\0\0”
TEXT類型
用于表示大文本數據
比如,文章內容、評論等
類型分為4中,如下
TINYTEXT
取值范圍:0~255字節
TEXT
取值范圍:0~65535字節
MEDIUMTEXT
取值范圍:0~16777215字節
LONGTEXT
取值范圍:0~4294967295字節
BLOB類型
一種特殊的二進制類型
用于表示數據量很大的二進制數據
比如,圖片、PDF文檔等
分為4種,如下
TINYBLOB
取值范圍:0~255字節
BLOB
取值范圍:0~65535字節
MEDIUMBLOB
取值范圍:0~16777215字節
LONGBLOB
取值范圍:0~4294967295字節
BLOB和TEXT區別
BLOB類型數據,根據二進制編碼進行比較和排序
TEXT類型數據,根據文本模式進行比較和排序
ENUM類型
枚舉類型
定義如下
ENUM (‘值1’,’值2’,’值3’,……,’值N’)
上述的(‘值1’,’值2’,’值3’,……,’值N’)稱為枚舉列表
ENUM類型的數據,只能從枚舉列表中取,而且,只能取一個
枚舉列表中的值都有一個順序編號,存入的是這個順序編號,而不是列表的值
SET類型
用于表示字符串對象
它的值可以有0個,或多個。
SET類型的定義和ENUM類型類似
SET (‘值1’,’值2’,’值3’,……,’值N’)
與ENUM類型相同
(‘值1’,’值2’,’值3’,……,’值N’)列表中的每個值,都有一個順序編號,MySQL中存儲的是這個編號,而不是列表中的值
BIT類型
用于表示二進制
定義如下
BIT (M)
M表示每個值的位數,范圍為1~64
注意
如果分配的BIT (M)的數據長度小于M,在數據的左邊用0補齊
比如
BIT (6)類型的插入值為’101’,實際存儲為’000101’
總結
以上是生活随笔為你收集整理的MySQL字符串和二进制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL日期和时间类型
- 下一篇: MySQL查看数据表