字符集
1.什麼是字符集
#字符集:是乙個系統支援的所有抽象字元的集合。字元是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。
最早的字符集:ascii碼
中國的字符集:gbk,utf8,gbk2312
日本字符集:shift-jis
南韓字符集:euc-kr
萬國編碼:unicode字符集
#常用的字符集:
gbk:乙個漢字占用2個位元組
utf8:乙個漢字占用3個位元組
utf8mb4:乙個漢字占用4個位元組
#字符集修改要求:
包含關係才可以修改
#檢視字符集:
mysql> show charset;
2.校驗規則
#檢視校驗規則
mysql> show collation;
| latin7_general_ci | latin7 |
| latin7_general_cs | latin7 |
| latin7_bin | latin7 |
#校驗規則區別
1.以ci結尾:不區分大小寫
2.以cs或者bin結尾:區分大小寫
#大小寫不同,相同欄位也不能新增
mysql> alter table city add name varchar(10);
error 1060 (42s21): duplicate column name 'name'
3.統一字符集
#1.xshell字符集
#2.linux系統字符集
#臨時修改
[root@db03 ~]# lang=zh_cn.utf-8
#永久修改
[root@db03 ~]# vim /etc/sysconfig/i18n#centos6
[root@db03 ~]# vim /etc/locale.conf #centos7
lang="zh_cn.utf-8"
#3.資料庫字符集
1)cmake 字符集指定
cmake .
-ddefault_charset=utf8 \
-ddefault_collation=utf8_general_ci \
-dwith_extra_charsets=all \
2)配置檔案
[root@db03 ~]# vim /etc/my.cnf
[mysqld]
character-set-server=utf8
#4.建立資料庫時指定字符集
mysql> create database db7 charset utf8;
query ok, 1 row affected (0.00 sec)
mysql> show create database db7;
| database | create database |
| db7 | create database `db7` /*!40100 default character set utf8 */ |
1 row in set (0.00 sec)
#5.建表時根據庫的字符集來建表
mysql> create table tb1(id int);
#6.指定字符集建表
mysql> create table tb3(id int) charset utf8mb4;
query ok, 0 rows affected (0.01 sec)
mysql> show create table tb3;
| table | create table |
| tb3 | create table `tb3` (
`id` int(11) default null
) engine=innodb default charset=utf8mb4 |
1 row in set (0.00 sec)
#7.修改庫的字符集
mysql> show create database db7;
| database | create database |
| db7 | create database `db7` /*!40100 default character set utf8 */ |
1 row in set (0.00 sec)
mysql> alter database db7 charset gbk;
query ok, 1 row affected (0.00 sec)
mysql> show create database db7;
| database | create database |
| db7 | create database `db7` /*!40100 default character set gbk */ |
1 row in set (0.00 sec)
#8.修改表的字符集
mysql> show create table tb2;
| table | create table |
| tb2 | create table `tb2` (
`id` int(11) default null
) engine=innodb default charset=utf8 |
1 row in set (0.00 sec)
mysql> alter table tb2 charset gbk;
query ok, 0 rows affected (0.00 sec)
records: 0 duplicates: 0 warnings: 0
mysql> show create table tb2;
| table | create table |
| tb2 | create table `tb2` (
`id` int(11) default null
) engine=innodb default charset=gbk |
1 row in set (0.00 sec)
mysql 集群字符集 Mysql 字符集
字符集與字元比較 字符集字符集是某種字元的集合,比如最常見的ascii碼,由127個字元組成,只需要乙個位元組就能表示 我們常說的字符集還是gbk iso utf8 mysql 我們使用得最多的字符集就是gbk 和 utf8了 他們都是變長字符集,如果字元在ascii範圍內就使用乙個位元組表示,其他...
mysql字符集 MySQL字符集選擇
一 怎樣選擇合適的字符集 對mysql資料庫來說,字符集很重要,因為資料庫儲存的資料大部分都是各種文字,字符集對資料庫的儲存,處理效能都會有所影響。主要考慮一下幾方面的因素 1.滿足應用支援語言的需求,應用處理各種各樣的文字,發布到使用不同語言的國家或地區,可以選擇unicode字符集,mysql的...
mysql字符集修改 MySql字符集修改
問題分析 普通的字串或者表情都是佔位3個位元組,所以utf8足夠用了,但是移動端的表情符號佔位是4個位元組,普通的utf8就不夠用了,為了應對無線網際網路的機遇和挑戰 避免 emoji 表情符號帶來的問題 涉及無線相關的 mysql 資料庫建議都提前採用 utf8mb4 字符集,這必須要作為移動網際...