二進制字元串一般用於存儲二進制的大對象,二進制字元串類型有BIT、BLOB、BINARY和VARBINARY。
基本介紹
- 中文名:二進制字元串
- 外文名:VARCHAR
- 定義:存儲二進制的對象
- 類型:BIT、BLOB等
- 系統:計算機
- 套用學科:計算機原理
概述,二進制字元串類型,BIT類型,BINARY和VARBINARY類型,BLOB類型,
概述
與字元串一樣,二進制字元串也是一個位元組序列。但與通常包含文本格式信息的字元串不同,二進制串用於存儲非傳統數據,如圖像、音頻和視頻檔案、程式執行檔等。二進制字元串可以用於與字元串類似的目的(例如,以Microsoft Word格式存儲文檔),但兩種數據類型不兼容;兩者的差別如同文本和同一文本的照片。
在實際操作中,一般不建議將二進制的大檔案存儲在資料庫中,而是將大對象的物理位置存儲在數據中,但是有特殊需要的情況下,還是有將二進制大對象存儲在資料庫的可能。
二進制字元串和普通字元串的區別有兩個:首先,二進制字元串完全可以存儲位元組零值,以及其他“不可列印”的位元組(定義在32到126範圍之外的位元組)。普通字元串不允許存儲位元組零值.並且也不允許存儲那些不符合選定的字元集編碼的非法位元組值或位元組序列 第二,對二進制字元串的處理實際上就是處理位元組,而對字元串的處理,則取決於區域設定。簡單地說,二進制字元串適用於存儲那些程式設計師認為是“原始位元組”的數據,比如圖片內容,而字元串則適合存儲文本。
二進制字元串類型
BIT類型
BIT類型是位欄位類型。M表示每個值的位數,範圍為l~64。如果M被省略,默認為1。如果為BIT(M)列分配的值的長度小於M位,在值的左邊用0填充。例如,為BIT(6)列分配一個值b’101’,其效果與分配b'000101’相同。BIT數據類型用來保存位欄位值,例如:以二進制的形式保存數據13,13的二進制形式為1101,在這裡需要位數至少為4位的BIT類型,即可以定義列類型為BIT(4)。大於二進制ll ll的數據是不能插入BIT(4)類型的欄位中的。
BINARY和VARBINARY類型
BINARY和VARBINARY類型類似於CHAR和VARCHAR,不同的是它們包含二進制位元組字元串。其使用的語法格式如下:
列名稱 BINARY(M)或者VARBINARY(M);
BINARY類型的長度是固定的,指定長度之後,不足最大長度的,將在它們右邊填充‘\0’補齊以達到指定長度。例如:指定列數據類型為BINARY(3),當插入‘a’時,存儲的內容實際為“a\0\0”,當插入“ab”時,實際存儲的內容為“ab\0”,不管存儲的內容是否達到指定的長度,其存儲空間均為指定的值M。
VARBlNARY類型的長度是可變的,指定好長度之後,其長度可以在0到最大值之間。例如:指定列數據類型為VARBINARY(20),如果插入的值的長度只有10,則實際存儲空間為10加l,即其實際占用的空間為字元串的實際長度加l。
BLOB類型
數據類型 | 存儲範圍 |
TINYBLOB | 最大長度為 |
BLOB | 最大長度為 |
MEDIUMBLOB | 最大長度為 |
LONGBLOB | 最大長度為 或 |
BLOB列存儲的是二進制字元串(位元組字元串);TEXT列存儲的是非二進制字元串(字元字元串)。BLOB列沒有字元集,並且排序和比較基於列值位元組的數值;TEXT列有一個字元集,並且根據字元集對值進行排序和比較。