1、字符集概述
大家都知道,計(jì)算機(jī)只能識(shí)別二進(jìn)制碼,為了讓計(jì)算機(jī)能處理文字,人們給每個(gè)文字進(jìn)行編碼,這個(gè)編碼就是計(jì)算機(jī)字符集的由來。
字符集是多個(gè)字符的集合,而字符是各種文字、符號(hào)和編碼的總稱。MySQL提供了字符集支持,可以使用各種字符集存儲(chǔ)數(shù)據(jù)。可以在服務(wù)器,數(shù)據(jù)庫,表和列級(jí)別指定字符集。
MySQL常用字符集
MySQL排序規(guī)則后綴
2、MySQL的字符集和排序規(guī)則
字符集:用來定義MySQL存儲(chǔ)字符串的方式
排序規(guī)則:用來定義比較字符串的方式。
字符集和排序規(guī)則是一對(duì)多的關(guān)系。
在同一服務(wù)器,同一數(shù)據(jù)庫甚至同一表中混合使用具有不同字符集或排序規(guī)則的字符串
3、MySQL字符集的設(shè)置
服務(wù)器字符集和排序規(guī)則
服務(wù)器字符集和排序規(guī)則,可以在MySQL的配置文件匯中設(shè)置。
在my.cnf中設(shè)置
[mysql] character_set_server=utf8
查詢當(dāng)前服務(wù)器的字符集和排序規(guī)則
show variables like 'character_set_server'; show variables like 'collation_server';
數(shù)據(jù)庫字符集和排序規(guī)則
數(shù)據(jù)庫字符集和排序規(guī)則可以在創(chuàng)建數(shù)據(jù)庫的時(shí)候指定,也可以在創(chuàng)建完數(shù)據(jù)庫后通過‘a(chǎn)lter database’命令進(jìn)行修改。如果數(shù)據(jù)庫里已經(jīng)存在數(shù)據(jù),則以前的數(shù)據(jù)還是按照久的字符集進(jìn)行存儲(chǔ),新數(shù)據(jù)按照新的字符集存放。
設(shè)置數(shù)據(jù)庫字符集和排序規(guī)則
設(shè)置數(shù)據(jù)庫字符集和排序規(guī)則
查詢當(dāng)前數(shù)據(jù)庫的字符集和排序規(guī)則
show variables like 'character_set_database'; show variables like 'collation_ database';
MySQL設(shè)置數(shù)據(jù)庫字符集和排序規(guī)則的規(guī)則如下:
如果指定了字符集和排序規(guī)則,則使用指定的字符集和排序規(guī)則
如果指定了字符集未指定排序規(guī)則,則使用指定字符集其默認(rèn)排序規(guī)則
如果指定了排序規(guī)則但未指定字符集,則使用與排序規(guī)則相關(guān)的字符集
如果未指定字符集和排序規(guī)則,則使用服務(wù)器字符集和服務(wù)器排序規(guī)則。
表字符集和排序規(guī)則
表的字符集和排序規(guī)則在創(chuàng)建表的時(shí)候指定,也可以通過alter table命令進(jìn)行修改,如果表中已有數(shù)據(jù),修改字符集對(duì)原有數(shù)據(jù)沒有影響。
設(shè)置表字符集和排序規(guī)則
設(shè)置表字符集和排序規(guī)則
查詢當(dāng)前表的字符集和排序規(guī)則
show create table
MySQL設(shè)置表字符集和排序規(guī)則的規(guī)則如下:
如果指定了字符集和排序規(guī)則,則使用指定的字符集和排序規(guī)則
如果指定了字符集未指定排序規(guī)則,則使用指定字符集其默認(rèn)排序規(guī)則
如果指定了排序規(guī)則但未指定字符集,則使用與排序規(guī)則相關(guān)的字符集
如果未指定字符集和排序規(guī)則,則使用數(shù)據(jù)庫字符集和服務(wù)器排序規(guī)則。
列字符集和排序規(guī)則
每個(gè)“ 字符 ”列(即,類型列 CHAR, VARCHAR中, TEXT類型)都有字符集和列排序規(guī)則。列定義語法,CREATE TABLE并 ALTER TABLE具有用于指定列字符集和排序規(guī)則的可選子句:
設(shè)置列字符集和排序規(guī)則
查詢當(dāng)前列的字符集和排序規(guī)則
show create table
MySQL設(shè)置列字符集和排序規(guī)則的規(guī)則如下:
如果指定了字符集和排序規(guī)則,則使用指定的字符集和排序規(guī)則
如果指定了字符集未指定排序規(guī)則,則使用指定字符集其默認(rèn)排序規(guī)則
如果指定了排序規(guī)則但未指定字符集,則使用與排序規(guī)則相關(guān)的字符集
如果未指定字符集和排序規(guī)則,則使用表字符集和服務(wù)器排序規(guī)則。
4、MySQL字符集修改
修改帶有歷史數(shù)據(jù)的數(shù)據(jù)庫的字符集,步驟如下:
導(dǎo)出表結(jié)構(gòu)
手工修改導(dǎo)出文件的字符集為新的字符集
導(dǎo)出所有記錄
修改數(shù)據(jù)文件的字符集
創(chuàng)建新的數(shù)據(jù)庫
利用導(dǎo)出的文件建表
利用導(dǎo)出的文件導(dǎo)入數(shù)據(jù)
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3904瀏覽量
65830 -
MySQL
+關(guān)注
關(guān)注
1文章
849瀏覽量
27614
發(fā)布評(píng)論請(qǐng)先 登錄
網(wǎng)課回放 I 升級(jí)版“一站式” PCB 設(shè)計(jì)第四期:規(guī)則設(shè)置

Altium Designer中PCB設(shè)計(jì)規(guī)則設(shè)置

使用插件將Excel連接到MySQL/MariaDB

MySQL數(shù)據(jù)庫的安裝

詳解Linux sort命令之掌握排序技巧與實(shí)用案例
云服務(wù)器 Flexus X 實(shí)例 MySQL 應(yīng)用加速測試

Linux系統(tǒng)設(shè)置用戶密碼規(guī)則(復(fù)雜密碼策略)方法
4G模組LuatOS開發(fā)|iconv字符集轉(zhuǎn)換技術(shù)篇

MySQL還能跟上PostgreSQL的步伐嗎

香港云服務(wù)器怎么部署MySQL數(shù)據(jù)庫?
網(wǎng)關(guān)的設(shè)置規(guī)則
AD9元器件間距規(guī)則如何設(shè)置
Jtti:MySQL初始化操作如何設(shè)置root密碼
MySQL知識(shí)點(diǎn)匯總

華納云:如何修改MySQL的默認(rèn)端口

評(píng)論