請問MySQL varchar 二進位制模式是怎麼一回事?

時間 2021-09-09 12:17:06

1樓:先人甜

簡單的char,varchar,text等是非二進位制,mysql預設配置不區分大小寫。

binary、varbinary二進位制

儲存的時候 char、varchar 儲存成一行,char是定長,varchar不定長。沒特殊要求就用varchar就可以,儲存的內容進行比較時不區分大小寫。

text可以儲存檔案的格式如回車換行。如果你儲存的是html有格式就用text型別。

binary就是二進位制,可以進行大小寫區分。

2樓:野鴿知了

MySQL 字串型別主要可以分為兩種。

二進位制字串,比如 BINARY 和 VARBINARY,儲存的是二進位制位元組,採用的二進位制的字符集和排序規則。

非二進位制字串,比如 CHAR 和 VARCHAR,儲存的是字串,採用和字串相關的字符集和排序規則,比如 utf8 和 utf8_general_ci。

其中,BINARY 存的是固定長度,比如 BINARY(6),如果插入 'abc',則會自動在後面補 0x00(零位元組),變成 'abc\0\0\0',並且查詢比較的時候,0x00(零位元組)也是需要顯示查詢比較的。

其中,CHAR 存的是固定長度,比如 CHAR(6),如果插入'abc',則會自動在後面補空字串,變成 'abc ',但是這個空字串在查詢比較的時候不需要顯示的的查詢比較。

舉個例子,執行下面的語句建一張 t_binary_test 表

CREATE TABLE `t_binary_test` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`col1` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

`col2` binary(6) NULL DEFAULT NULL,

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 1;

執行下面的語句,檢視測試結果

insert into t_binary_test (col1) value ('你好啊');

insert into t_binary_test (col2) value ('你好啊');

insert into t_binary_test (col2) value ('你好');

select * from t_binary_test;

可以看到,1 個中文在 UTF8 字符集裡占用 3 個位元組,所以 col2 字段只能存 2 個中文。

再執行下面個語句,檢視結果

insert into t_binary_test (col1) value ('abc');

insert into t_binary_test (col2) value ('abc');

select * from t_binary_test;

select * from t_binary_test where col1 = 'abc';

select * from t_binary_test where col2 = 'abc';

select * from t_binary_test where col2 = 'abc\0\0\0';

可以看到,col2 字段查詢的時候需要帶上補充的 0x00(零位元組)才能查到結果。這裡注意下,如果是VARBINARY型別的字段,因為不是固定長度,不會自動補充零位元組,所以查詢的時候不用顯示寫出,這個可以自己去實踐下。

這就是二進位制字串型別和非二進位制字串型別的主要區別,可以看到,二進位制字串型別比較複雜,使用不方便,所以平常主要還是以非二進位制字串型別為主。

至於 BLOB 就是二進位制字串大物件,TEXT 是非二進位制字串大物件,如果要儲存 HTML 文字,一般用 TEXT 就好了,如果有很多內容,可以用儲存量更大的 MEDIUMTEXT 或 LONGTEXT。

3樓:lhdz-bj

不知道你是指varbinary還是varchar binary,前者是指儲存變長二進位制資料的型別,校驗和排序規則也是相應二進位制規則(collation);後者是指儲存字元型資料,但按照相應二進位制規則校驗和排序。

請問怎麼寫第二問

Yang s z1 x2 x2 1 i,所以 z1 x2 2 x2 1 2 x4 x2 1 z2 x2 a i,所以 z2 x2 a 2 x2 a 因為對於任意的x R,z1 z2 恆成立,即 x4 x2 1 x2 a x4 x2 1 x2 a 2 x4 2ax2 a2 1 2a x2 a2 1 1...

請問二建公路如何過?

小芸豆 由於每個專業都不同,所以各有各的特點。公路實務主要介紹路基 路面 橋涵 隧道等工程的結構型別。相關施工技術包括公路工程施工技術。公路工程專案施工管理和公路工程專案施工相關法規與標準共三部分,其中施工技術部分參考各專業施工規範,屬於學習的核心及考試的重點。施工管理及法規部分是對施工過程的合理控...

請問 現在考試二建好考嗎

如夢 二級建造師執業資格考試分綜合考試和專業考試,綜合考試包括 建設工程施工管理 建設工程法規及相關知識 兩個科目,這兩個科目為各專業考生統考科目。專業考試為 專業工程管理與實務 乙個科目,該科目分為6個專業,即 建築工程 公路工程 水利水電工程 礦業工程 機電工程和市政公用工程。考生在報名時根據工...