程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql語句:SET NAMES UTF8

mysql語句:SET NAMES UTF8

編輯:MySQL綜合教程


mysql語句:SET NAMES UTF8   一直以來只知道mysql_query("SET NAMES UTF8");是設定數據庫編碼的,但是一直不清楚“SET NAMES UTF8”是什麼。   直到今天才知道 SET NAMES ...是mysql語句。   真的感覺到自己的功課還沒做到家,現有知識儲備比較匮乏。現將所查相關資料記下:   www.2cto.com   1、SET NAMES ‘charset_name’   SET NAMES顯示客戶端發送的SQL語句中使用什麼字符集。因此,SET NAMES 'cp1251'語句告訴服務器將來從這個客戶端傳來的信息采用字符集cp1251”。它還為服務器發送回客戶端的結果指定了字符集。(例如,如果你使用一個SELECT語句,它表示列值使用了什麼字符集。)   2、連接字符集和校對   (1) 一些字符集和校對規則系統變量與客戶端和服務器的交互有關。   · 服務器字符集和校對規則可以用作character_set_server和collation_server變量的值。   · 默認數據庫的字符集和校對規則可以用作character_set_database和collation_database變量的值。   在客戶端和服務器的連接處理中也涉及了字符集和校對規則變量。   每一個客戶端有一個連接相關的字符集和校對規則變量。   www.2cto.com   (2)考慮什麼是一個“連接”:它是連接服務器時所作的事情。   客戶端發送SQL語句,例如查詢,通過連接發送到服務器。   服務器通過連接發送響應給客戶端,例如結果集。   對於客戶端連接,這樣會導致一些關於連接的字符集和 校對規則的問題,這些問題均能夠通過系統變量來解決:   (3) 當查詢離開客戶端後,在查詢中使用哪種字符集?   服務器使用character_set_client變量作為客戶端發送的查詢中使用的字符集。   (4) 服務器接收到查詢後應該轉換為哪種字符集?   轉換時,服務器使用character_set_connection和collation_connection系統變量。它將客戶端發送的查詢從character_set_client系統變量轉換到character_set_connection(除非字符串文字具有象_latin1或_utf8的引介詞)。collation_connection對比較文字字符串是重要的。對於列值的字符串比較,它不重要,因為列具有更高的 校對規則優先級。   (5)服務器發送結果集或返回錯誤信息到客戶端之前應該轉換為哪種字符集?   character_set_results變量指示服務器返回查詢結果到客戶端使用的字符集。包括結果數據,例如列值和結果元數據(如列名)。   www.2cto.com   示例:   mysql_query("set names 'utf8'"); //使用utf8編碼;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved