程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql字符集和校訂規矩(Mysql校訂集)

mysql字符集和校訂規矩(Mysql校訂集)

編輯:MySQL綜合教程

mysql字符集和校訂規矩(Mysql校訂集)。本站提示廣大學習愛好者:(mysql字符集和校訂規矩(Mysql校訂集))文章只能為提供參考,不一定能成為您想要的結果。以下是mysql字符集和校訂規矩(Mysql校訂集)正文


扼要解釋

字符集和校訂規矩
字符集是一套符號和編碼。校訂規矩是在字符集內用於比擬字符的一套規矩。
MySql在collation供給較強的支撐,oracel在這方面沒查到響應的材料。
分歧字符集有分歧的校訂規矩,定名商定:以其相干的字符集名開端,平日包含一個說話名,而且以_ci(年夜小寫不敏感)、_cs(年夜小寫敏感)或_bin(二元)停止
校訂規矩普通分為兩類:
binary collation,二元法,直接比擬字符的編碼,可以以為是辨別年夜小寫的,由於字符集中'A'和'a'的編碼明顯分歧。
字符集_說話名,utf8默許校訂規矩是utf8_general_ci
mysql字符集和校訂規矩有4個級其余默許設置:辦事器級、數據庫級、表級和銜接級。
詳細來講,我們體系應用的是utf8字符集,假如應用utf8_bin校訂規矩履行sql查詢時辨別年夜小寫,應用utf8_general_ci 不辨別年夜小寫。不要應用utf8_unicode_ci。
如create database demo CHARACTER SET utf8; 默許校訂規矩是utf8_general_ci 。

Unicode與UTF8
Unicode只是一個符號集,它只劃定了符號的二進制代碼,卻沒有劃定這個二進制代碼應當若何存儲.
UTF8字符集是存儲Unicode數據的一種可選辦法。mysql同時支撐另外一種完成ucs2。

具體解釋

字符集(charset):是一套符號和編碼。
校訂規矩(collation):是在字符集內用於比擬字符的一套規矩,好比界說'A'<'B'如許的關系的規矩。分歧collation可以完成分歧的比擬規矩,如'A'='a'在有的規矩中成立,而有的不成立;進而說,就是有的規矩辨別年夜小寫,而有的疏忽。
每一個字符集有一個或多個校訂規矩,而且每一個校訂規矩只能屬於一個字符集。

binary collation,二元法,直接比擬字符的編碼,可以以為是辨別年夜小寫的,由於字符集中'A'和'a'的編碼明顯分歧。除此之外,還有加倍龐雜的比擬規矩,這些規矩在簡略的二元法之上增長一些額定的劃定,比擬就加倍龐雜了。
mysql5.1在字符集和校訂規矩的應用比其它年夜多半數據庫治理體系超前很多,可以在任何級別停止應用和設置,為了有用地應用這些功效,你須要懂得哪些字符集和 校訂規矩是可用的,如何轉變默許值,和它們如何影響字符操作符和字符串函數的行動。

校訂規矩普通有這些特點:

兩個分歧的字符集不克不及有雷同的校訂規矩。
每一個字符集有一個默許校訂規矩。例如,utf8默許校訂規矩是utf8_general_ci。
存在校訂規矩定名商定:它們以其相干的字符集名開端,平日包含一個說話名,而且以_ci(年夜小寫不敏感)、_cs(年夜小寫敏感)或_bin(二元)停止


肯定默許字符集和校訂
字符集和校訂規矩有4個級其余默許設置:辦事器級、數據庫級、表級和銜接級。
數據庫字符集和校訂
每個數據庫有一個數據庫字符集和一個數據庫校訂規矩,它不克不及夠為空。CREATE DATABASE和ALTER DATABASE語句有一個可選的子句來指定命據庫字符集和校訂規矩:
例如:
CREATE DATABASE db_name DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
MySQL如許選擇數據庫字符集和數據庫校訂規矩:
· 假如指定了CHARACTER SET X和COLLATE Y,那末采取字符集X和校訂規矩Y。
· 假如指定了CHARACTER SET X而沒有指定COLLATE Y,那末采取CHARACTER SET X和CHARACTER SET X的默許校訂規矩。
· 不然,采取辦事器字符集和辦事器校訂規矩。
在SQL語句中應用COLLATE
•應用COLLATE子句,可以或許為一個比擬籠罩任何默許校訂規矩。COLLATE可以用於多種SQL語句中。
應用WHERE:
select * from pro_product where product_code='ABcdefg' collate utf8_general_ci
Unicode與UTF8
Unicode只是一個符號集,它只劃定了符號的二進制代碼,卻沒有劃定這個二進制代碼應當若何存儲.Unicode碼可以采取UCS-2格局直接存儲.mysql支撐ucs2字符集。
UTF-8就是在互聯網上應用最廣的一種unicode的完成方法。其他完成方法還包含UTF-16和UTF-32,不外在互聯網上根本不消。
UTF8字符集(轉換Unicode表現)是存儲Unicode數據的一種可選辦法。它依據RFC 3629履行。UTF8字符集的思惟是分歧Unicode字符采取變長字節序列編碼:
· 根本拉丁字母、數字和標點符號應用一個字節。
· 年夜多半的歐洲和中東手寫字母合適兩個字節序列:擴大的拉丁字母(包含發音符號、長音符號、重音符號、高音符號和其它音符)、西裡爾字母、希臘語、亞美尼亞語、希伯來語、阿拉伯語、敘利亞語和其它說話。
· 韓語、中文和日本象形文字應用三個字節序列
摘自:用妄想測量人生,用奔馳測量豪情

校訂集

MySQL5.5.8中共有字符集39,校訂集195個

#顯示一切的校訂集

Show collation

#顯示一切的字符集

show character set

所以一個字符集對應多個校訂集,即異樣的一個字符集有多重排序規矩

好比一個utf8的字符集共有22中排序規矩

Utf8字符集默許的校訂集為utf8_general_ci

經由過程show collation like ‘utf8\_%'

便可檢查

留意:

utf8_general_ci  依照通俗的字母次序,並且不辨別年夜小寫(好比:a B c D)

utf8_bin   依照二進制排序(好比:A排在a後面,B D a c)

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