MySQL的set names命令详解
執行下面的命令:
mysql> set names charset_name;相當于執行了下面三條命令語句:
mysql> SET character_set_client = charset_name; mysql> SET character_set_results = charset_name; mysql> SET character_set_connection = charset_name;所以 set names 是設置上面三個內置系統變量的快捷鍵命令。
官方文檔的解釋:
1.character_set_client 是指客戶端發送過來的語句的編碼;
2.character_set_connection 是指 mysqld 收到客戶端的語句后,要轉換到的編碼;
3.character_set_results 是指 server 執行語句后,返回給客戶端的數據的編碼。
對人來說,能夠理解的是各種各樣的符號,而對計算機來說,只能理解二進制,二進制和符號之間的對應關系就是編碼。不同地域國家都有自己的一套符號集合,每套符號集合都各自用一組二進制數字表示,從而形成了不同的編碼方案,字符集其實就是二進制編碼和符號的對應關系集合。
同一個二進制數在不同的字符集下可能對應不一樣的字符,如在 GBK 字符集中,0xC4E3 對應的是“你”,而在 big5 字符集中對應的是“斕”,而“你”在 unicode 中的編碼是 0x4F60,在 Collation-Charts 這個網站有字符集和編碼對應關系圖,可以非常直觀地看到不同編碼下二進制數和符號的對應關系。
set names 設置的三個系統變量就是設置 mysqld 和客戶端通信時,mysqld 應該如何解碼 client 發來的字符,以及如何編碼返回給客戶端的結果。
字符在 MySQL 中的編碼轉換流程如下:
總結
以上是生活随笔為你收集整理的MySQL的set names命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 森海塞尔推出旗下最便宜条形音箱 Ambe
- 下一篇: MySQL数据库模式_SQL模式