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