標籤:個數 解決 style blog primary 計算 server rac 現實生活
一、什麼是字元集:
簡單的說吧、字元集就是一組對應關係的集合;
1、現在的電腦是在二進位的基礎上建立出來的、二進位是數值的一種表達方式、也就是說二進位只的表達“數”、如十進位的3,在二進位中
就可以寫成00000011;
2、然而在現實生活當中相對於"數"而言我們用到更多的是“文字”;那這個問題(怎麼儲存文字)怎麼解決呢?然而這個問題根本沒有難道
他們、它們決定用一個折中的方式解決;如:儲存‘a‘的時候我就儲存一個0,儲存‘b‘的時候我就儲存一個1,儲存‘A‘的時候我就儲存一個2
儲存’B‘的時候我就儲存一個3。於是整個對應關係就變成了這樣
字元 -> 編碼
‘a‘ --> 0
‘b‘ --> 1
‘A‘ --> 2
‘B‘ --> 3
就這樣我們就定義了一個只有4個字元的字元集了;只不過我們這個字元集相比gbk\utf8這樣的字元集不知道low到那裡去了。
二、什麼是定序:
1、上面的內容我們已經自己定義了一個字元集了,有了字元集一些最基本的操作就可能做了,如:我想知道一個字元它是不是‘a‘那麼
我只要去看這個字元的編碼是不是0就可以了,這樣就把一個字元問題變成了一個數字問題了,這樣資料上的相等(=),大小(>,<),也就有了
新的意義了。
2、我們這個字元集還有什麼不足嗎?如:要做到不區分大小寫,那麼我們之前的 =,<,>也就都來靈了;我們還要給這個字元集加上新的
規則才行;如我們在這裡可以粗魯的加上規則 1:0=2 ,2: 1=3;這樣就可能做不區分大小寫了。
三、mysql中可以怎麼指定字元集:
1、mysql可以在執行個體層級指定預設字元集、配置項名:character_set_server
2、可以在建立庫的時候指定字元集
create database testdb character set utf8;
3、可以在建立表的時候指定表級的字元集
create table person(id int not null auto_increment primary key,name varchar(4)) character set utf8;-- 在表層級指定字元集是utf8
4、可以在建立表的時候指定
create table person(id int not null auto_increment primary key,name varchar(4) character set utf8);-- 指定name 列的字元集是utf8
----
MySQL字元集詳解