MySQL字串和二進位制

2021-08-01 18:37:22 字數 1661 閱讀 8649

為了儲存字串、和聲音等資料,mysql提供了字串和二進位制型別。

char——用於表示固定長度的字串

varchar——用於表示可變長度的字串

binary——用於表示固定長度的二進位制資料

varbinary——用於表示可變長度的二進位制資料

bolb——用於表示二進位製大資料

text——用於表示大文字資料

enum——表示列舉型別,只能儲存乙個列舉字串值

set——表示字串物件,可以有零或多個值

bit——表示位欄位型別

都用來儲存字串

varchar,可以儲存可變長度的字串

char,儲存定長字串

定義如下

char (m)或者varchar (m)

m指的是字串的最大長度

比如 插入值』ab』

char (4),需要4個位元組

varchar (4),需要3個位元組

當資料為char (m)型別時,不管插入值的長度是多少,所占用的儲存空間都是m個位元組。

當為varchar (m)型別時,所占用的位元組數為實際長度加1。

類似於char和varchar

用來表示二進位制資料

定義如下

binary (m)或者varbinary (m)

m指的是二進位制資料的最大位元組長度

注意 binary型別的長度是固定的,如果資料的長度不足最大長度,在後面用」\0」補齊。

比如,資料型別為binary (3),當插入a時,實際儲存的是」a\0\0」

一種特殊的二進位制型別

用於表示資料量很大的二進位制資料

比如,、pdf文件等

分為4種,如下

tinyblob

取值範圍:0~255位元組

blob

取值範圍:0~65535位元組

mediumblob

取值範圍:0~16777215位元組

longblob

取值範圍:0~4294967295位元組

blob和text區別

blob型別資料,根據二進位制編碼進行比較和排序

text型別資料,根據文字模式進行比較和排序

列舉型別

定義如下

enum (『值1』,』值2』,』值3』,……,』值n』)

上述的(『值1』,』值2』,』值3』,……,』值n』)稱為列舉列表

enum型別的資料,只能從列舉列表中取,而且,只能取乙個

列舉列表中的值都有乙個順序編號,存入的是這個順序編號,而不是列表的值

用於表示字串物件

它的值可以有0個,或多個。

set型別的定義和enum型別類似

set (『值1』,』值2』,』值3』,……,』值n』)

與enum型別相同

(『值1』,』值2』,』值3』,……,』值n』)列表中的每個值,都有乙個順序編號,mysql中儲存的是這個編號,而不是列表中的值

用於表示二進位制

定義如下

bit (m)

m表示每個值的位數,範圍為1~64

注意 如果分配的bit (m)的資料長度小於m,在資料的左邊用0補齊

比如 bit (6)型別的插入值為』101』,實際儲存為』000101』

字串和二進位制字串問題以及讀寫二進位制檔案

一般針對字串使用cstring和char cstring沒有長度限制,但字串以 0 為結束標誌。故要對二進位制字串進行操作,則不能使用cstring,而要用cbytearray和char。關於cstring 1 是actual字串,而不是字串指標,不需要在定義的時候指定長度 2 該類過載了 等運算子...

計算二進位制字串

4646598ce4f12f0f484da18acbd83813.png en resource database 11364 1 1226f6e4e21ed6df41356aa6e9e857c0.png en resource database 11366 1 遇到難度較大的題目的解題步驟 1.找...

計算二進位制字串

題目描述 給定乙個字串 s,計算具有相同數量0和1的非空 連續 子字串的數量,並且這些子字串中的所有0和所有1都是組合在一起的。重複出現的子串要計算它們出現的次數。示例 1 輸入 00110011 輸出 6 解釋 有6個子串具有相同數量的連續1和0 0011 01 1100 10 0011 和 01...