mysql語句:SET NAMES UTF8_MySQL教程
推薦:MySQL索引簡單分析創(chuàng)建2張用戶表user、user2,表結構相同,但user表使用InnoDB存儲引擎,而user2表則使用 MyISAM存儲引擎。 -- Table "user" DDL CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `a
一直以來只知道m(xù)ysql_query("SET NAMES UTF8");是設定數(shù)據(jù)庫編碼的,但是一直不清楚“SET NAMES UTF8”是什么。
直到今天才知道 SET NAMES ...是mysql語句。
真的感覺到自己的功課還沒做到家,現(xiàn)有知識儲備比較匱乏�,F(xiàn)將所查相關資料記下:
1、SET NAMES ‘charset_name’
SET NAMES顯示客戶端發(fā)送的SQL語句中使用什么字符集。因此,SET NAMES 'cp1251'語句告訴服務器將來從這個客戶端傳來的信息采用字符集cp1251”。它還為服務器發(fā)送回客戶端的結果指定了字符集。(例如,如果你使用一個SELECT語句,它表示列值使用了什么字符集。)
2、連接字符集和校對
(1) 一些字符集和校對規(guī)則系統(tǒng)變量與客戶端和服務器的交互有關。
· 服務器字符集和校對規(guī)則可以用作character_set_server和collation_server變量的值。
· 默認數(shù)據(jù)庫的字符集和校對規(guī)則可以用作character_set_database和collation_database變量的值。
在客戶端和服務器的連接處理中也涉及了字符集和校對規(guī)則變量。
每一個客戶端有一個連接相關的字符集和校對規(guī)則變量。
(2)考慮什么是一個“連接”:它是連接服務器時所作的事情。
客戶端發(fā)送SQL語句,例如查詢,通過連接發(fā)送到服務器。
服務器通過連接發(fā)送響應給客戶端,例如結果集。
對于客戶端連接,這樣會導致一些關于連接的字符集和 校對規(guī)則的問題,這些問題均能夠通過系統(tǒng)變量來解決:
(3) 當查詢離開客戶端后,在查詢中使用哪種字符集?
服務器使用character_set_client變量作為客戶端發(fā)送的查詢中使用的字符集。
(4) 服務器接收到查詢后應該轉換為哪種字符集?
轉換時,服務器使用character_set_connection和collation_connection系統(tǒng)變量。它將客戶端發(fā)送的查詢從character_set_client系統(tǒng)變量轉換到character_set_connection(除非字符串文字具有象_latin1或_utf8的引介詞)。collation_connection對比較文字字符串是重要的。對于列值的字符串比較,它不重要,因為列具有更高的 校對規(guī)則優(yōu)先級。
(5)服務器發(fā)送結果集或返回錯誤信息到客戶端之前應該轉換為哪種字符集?
character_set_results變量指示服務器返回查詢結果到客戶端使用的字符集。包括結果數(shù)據(jù),例如列值和結果元數(shù)據(jù)(如列名)。
示例:
mysql_query("set names 'utf8'"); //使用utf8編碼;
分享:MySQL性能優(yōu)化的最佳21條經(jīng)驗今天,數(shù)據(jù)庫的操作越來越成為整個應用的性能瓶頸了,這點對于Web應用尤其明顯。關于數(shù)據(jù)庫的性能,這并不只是DBA才需要擔心的事,而這更是我們程序員需要去關注的事情。當我們?nèi)ピO計數(shù)據(jù)庫表結構,對操作數(shù)據(jù)庫時(尤其是查表時的SQL語句),我們都需要注意數(shù)據(jù)操作的
- MSSQL清空日志刪除日志文件
- 關于數(shù)據(jù)庫中保留小數(shù)位的問題
- 解析mysql與Oracle update的區(qū)別
- mysql 導入導出數(shù)據(jù)庫以及函數(shù)、存儲過程的介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 解決MYSQL出現(xiàn)Can''t create/write to file ''#sql_5c0_0.MYD''的問題
- 深入理解SQL的四種連接-左外連接、右外連接、內(nèi)連接、全連接
- 解析:內(nèi)聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別
- mysql出現(xiàn)“Incorrect key file for table”處理方法
- mysql重裝后出現(xiàn)亂碼設置為utf8可解決
- 淺析一個MYSQL語法(在查詢中使用count)的兼容性問題
- 解析MySQL中INSERT INTO SELECT的使用
- 相關鏈接:
- 教程說明:
MySQL教程-mysql語句:SET NAMES UTF8
。