Msql中COLLATE相關知識點

2021-10-23 22:37:04 字數 1341 閱讀 5155

#建立資料庫指定字符集和排序規則

create

database dbname default

character

set utf8mb4 collate utf8mb4_general_ci;

其中的character set utf8mb4能理解但是這個collate拿來當面試題那估計很有趣了,

其實是用來排序的規則。它的設定會影響查詢結果,同時也會影響索引的建立

這是case insensitive的縮寫,即大小寫無關,也就是說」a」和」a」在排序和比較的時候是一視同仁的。selection * from table1 where field1=」a」同樣可以把field1為」a」的值選出來。與此同時,對於那些_cs字尾的collate,則是case sensitive,即大小寫敏感的。

例如latin1編碼的預設collate為latin1_swedish_ci,gbk編碼的預設collate為gbk_chinese_ci,utf8mb4編碼的預設值為utf8mb4_general_ci。

當然我們可以更改預設值,那就是在建庫建表的時候直接指定,如果你不指定,那麼將會使用預設值,預設值可以直接在my.ini或者 my.cnf中直接設定,需要注意檢視

在mysql中,全部的字符集與排列字符集的資訊都存放在information_schema庫中。

-- 檢視所有字符集資訊

show

character

set;

-- 檢視utf8字符集資訊

show

character

setlike

'utf8'

;-- 檢視所有排列字符集

show collation;

-- 檢視utf8的所有排列字符集

show collation where

charset

='utf8'

;

utf8mb4_unicode_ci和utf8mb4_general_ci對中、英文來說沒有實質的差別。

utf8mb4_general_ci校對速度快,但準確度稍差。

utf8mb4_unicode_ci準確度高,但校對速度稍慢。

在老的教程中,多半都是用utf8,和 utf8_general_ci,我們現在可以用新的代替

mysql8.0開始charset已經改為utf8mb4預設的collate也改為了utf8mb4_0900_ai_ci

其中utf8mb4_0900_ai_ci也是unicode細化出來的部分。

vc 中stdcall與cdecl的相關知識

stdcall 和 cdecl 都屬於呼叫方式 一般我們在宣告函式時都沒有顯示的說明呼叫方式,因為不同語言都有不同的預設呼叫方式 能否實現變參 stdcall stdcall是pascal程式的預設呼叫方式,通常用於win32 api中,由主呼叫函式採用從右到左的壓棧方式進行引數壓棧,然後由被呼叫者...

mysql 的相關操作 MySQL相關操作知識

1 解決客戶端聯不上mysql伺服器的問題 grant all privileges on to root identified by with grant option flush privileges 2 登陸mysql mysql u root p 123456 3 檢視所有資料庫 show ...

解決Msql解析xml中存在中文亂碼

我在進行c3p0資料庫連線池配置的時候,由於資料庫採用主從庫的設計 乙個負責讀,乙個負責寫 所以我這裡就需要兩個配置項,但是寫兩個properties又顯得很多餘,於是就採用了xml配置,通過來區分。一般人就會把以前寫好的properties的配置項直接copy過來,假設我們的jdbcurl是這樣的...