MySQL中数据库的默认字符集和校对规则有哪些? mysql5建表,字符集用utf8,校对规则选什么?

作者&投稿:扶施 (若有异议请与网页底部的电邮联系)
1. ASCII
用途:用来映射简单的单字节字符,比如大小写英文字母、阿拉伯数字、常用的标点符、运算符、控制字符等。
编码范围:U+0000 - U+007F
注意:对于用这类字符的场景够用了,但是却无法表达比如汉字,日文等编码。
2. UNICODE
用途:用来映射包含 ASCII 以内的其他的所有字符。
编码范围:U+0000 - U+10FFFF
注意:ASCII 是 UNICODE 的子集,ASCII 编码的字符可以无损转换为 UNICODE 编码的字符。

MySQL 常用字符集

1. Latin1
Latin1 是 cp1252 或者 ISO-8859-1 的别名。ISO-8859-1 编码是单字节编码,向下兼容 ASCII。
编码范围:U+0000 - U+00FF

ISO-8859-1 收录的字符除 ASCII 收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。
单字节内的空间都被 ISO-8859-1 编码占用,所以能够用 ISO-8859-1 编码存储、传输其他任何编码的字节流。
比如把一个 Utf8mb4 的编码或者 GBK 的编码存入 Latin1,不会有任何问题。因为 Latin1 保留了原始的字节流,这也就是 MySQL 长期以来把 Latin1 做默认字符集的原因。
但是由于 Latin1 对任何字符都存放字节流,造成了字符个数的浪费。
比如:
CHAR(10) CHARACTER SET LATIN1;CHAR(10) CHARACTER SET UTF8;

该字段中存储字符个数 UTF8 是 Latin1 的三倍!!!
2. GB18030
GB18030 是中国官方标准字符集,向前兼容 GBK、GB2312,是这两个的超集。用 1、2、4 个字节分别表示一个符号。比如对一般中文字符,默认是用两个字节编码存储。Windows 系统,默认用的就是 GB18030。
若只是存储中文字符,那 GB18030 最佳。
原因有两点:
1)占用空间小,比如比 UTF8 小。
2)存储的汉字根据拼音来排序,检索快。
3. UTF8
UTF8 是 Unicode 的编码实现,可以存储 UNICODE 编码对应的任何字符, 这也是使用最多的一种编码。最大的特点就是变长的编码方式,用 1 到 4 个字节表示一个符号,可以根据不同的符号编码字节长度。
字母或数字用 1 字节,汉字用 3 字节,emoji 表情符号用 4 字节。UTF8 字符集目前是使用最广泛的。
注意!MySQL 里常说的 UTF8 是 UTF8MB3 的别名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 字节 UTF8 字符集!
UTF8MB3 表示最大支持 3 个字节存储字符,UTF8MB4 表示最大 4 个字节存储字符。根据实际需要和未来展望,MySQL 8.0 已经默认用 UTF8MB4 基础字符集。

灰常多,请耐心查看。

字符集Start-----------------------
Charset Description Default collation
big5 Big5 Traditional Chinese big5_chinese_ci
dec8 DEC West European dec8_swedish_ci
cp850 DOS West European cp850_general_ci
hp8 HP West European hp8_english_ci
koi8r KOI8-R Relcom Russian koi8r_general_ci
latin1 cp1252 West European latin1_swedish_ci
latin2 ISO 8859-2 Central European latin2_general_ci
swe7 7bit Swedish swe7_swedish_ci
ascii US ASCII ascii_general_ci
ujis EUC-JP Japanese ujis_japanese_ci
sjis Shift-JIS Japanese sjis_japanese_ci
hebrew ISO 8859-8 Hebrew hebrew_general_ci
tis620 TIS620 Thai tis620_thai_ci
euckr EUC-KR Korean euckr_korean_ci
koi8u KOI8-U Ukrainian koi8u_general_ci
gb2312 GB2312 Simplified Chinese gb2312_chinese_ci
greek ISO 8859-7 Greek greek_general_ci
cp1250 Windows Central European cp1250_general_ci
gbk GBK Simplified Chinese gbk_chinese_ci
latin5 ISO 8859-9 Turkish latin5_turkish_ci
armscii8 ARMSCII-8 Armenian armscii8_general_ci
utf8 UTF-8 Unicode utf8_general_ci
ucs2 UCS-2 Unicode ucs2_general_ci
cp866 DOS Russian cp866_general_ci
keybcs2 DOS Kamenicky Czech-Slovak keybcs2_general_ci
macce Mac Central European macce_general_ci
macroman Mac West European macroman_general_ci
cp852 DOS Central European cp852_general_ci
latin7 ISO 8859-13 Baltic latin7_general_ci
cp1251 Windows Cyrillic cp1251_general_ci
cp1256 Windows Arabic cp1256_general_ci
cp1257 Windows Baltic cp1257_general_ci
binary Binary pseudo charset binary
geostd8 GEOSTD8 Georgian geostd8_general_ci
cp932 SJIS for Windows Japanese cp932_japanese_ci
eucjpms UJIS for Windows Japanese eucjpms_japanese_ci
字符集End-----------------------
字符集--校验 关系Start------------------
Collation Charset Default
big5_chinese_ci big5 Yes
big5_bin big5
dec8_swedish_ci dec8 Yes
dec8_bin dec8
cp850_general_ci cp850 Yes
cp850_bin cp850
hp8_english_ci hp8 Yes
hp8_bin hp8
koi8r_general_ci koi8r Yes
koi8r_bin koi8r
latin1_german1_ci latin1
latin1_swedish_ci latin1 Yes
latin1_danish_ci latin1
latin1_german2_ci latin1
latin1_bin latin1
latin1_general_ci latin1
latin1_general_cs latin1
latin1_spanish_ci latin1
latin2_czech_cs latin2
latin2_general_ci latin2 Yes
latin2_hungarian_ci latin2
latin2_croatian_ci latin2
latin2_bin latin2
swe7_swedish_ci swe7 Yes
swe7_bin swe7
ascii_general_ci ascii Yes
ascii_bin ascii
ujis_japanese_ci ujis Yes
ujis_bin ujis
sjis_japanese_ci sjis Yes
sjis_bin sjis
hebrew_general_ci hebrew Yes
hebrew_bin hebrew
tis620_thai_ci tis620 Yes
tis620_bin tis620
euckr_korean_ci euckr Yes
euckr_bin euckr
koi8u_general_ci koi8u Yes
koi8u_bin koi8u
gb2312_chinese_ci gb2312 Yes
gb2312_bin gb2312
greek_general_ci greek Yes
greek_bin greek
cp1250_general_ci cp1250 Yes
cp1250_czech_cs cp1250
cp1250_croatian_ci cp1250
cp1250_bin cp1250
cp1250_polish_ci cp1250
gbk_chinese_ci gbk Yes
gbk_bin gbk
latin5_turkish_ci latin5 Yes
latin5_bin latin5
armscii8_general_ci armscii8 Yes
armscii8_bin armscii8
utf8_general_ci utf8 Yes
utf8_bin utf8
utf8_unicode_ci utf8
utf8_icelandic_ci utf8
utf8_latvian_ci utf8
utf8_romanian_ci utf8
utf8_slovenian_ci utf8
utf8_polish_ci utf8
utf8_estonian_ci utf8
utf8_spanish_ci utf8
utf8_swedish_ci utf8
utf8_turkish_ci utf8
utf8_czech_ci utf8
utf8_danish_ci utf8
utf8_lithuanian_ci utf8
utf8_slovak_ci utf8
utf8_spanish2_ci utf8
utf8_roman_ci utf8
utf8_persian_ci utf8
utf8_esperanto_ci utf8
utf8_hungarian_ci utf8
ucs2_general_ci ucs2 Yes
ucs2_bin ucs2
ucs2_unicode_ci ucs2
ucs2_icelandic_ci ucs2
ucs2_latvian_ci ucs2
ucs2_romanian_ci ucs2
ucs2_slovenian_ci ucs2
ucs2_polish_ci ucs2
ucs2_estonian_ci ucs2
ucs2_spanish_ci ucs2
ucs2_swedish_ci ucs2
ucs2_turkish_ci ucs2
ucs2_czech_ci ucs2
ucs2_danish_ci ucs2
ucs2_lithuanian_ci ucs2
ucs2_slovak_ci ucs2
ucs2_spanish2_ci ucs2
ucs2_roman_ci ucs2
ucs2_persian_ci ucs2
ucs2_esperanto_ci ucs2
ucs2_hungarian_ci ucs2
cp866_general_ci cp866 Yes
cp866_bin cp866
keybcs2_general_ci keybcs2 Yes
keybcs2_bin keybcs2
macce_general_ci macce Yes
macce_bin macce
macroman_general_ci macroman Yes
macroman_bin macroman
cp852_general_ci cp852 Yes
cp852_bin cp852
latin7_estonian_cs latin7
latin7_general_ci latin7 Yes
latin7_general_cs latin7
latin7_bin latin7
cp1251_bulgarian_ci cp1251
cp1251_ukrainian_ci cp1251
cp1251_bin cp1251
cp1251_general_ci cp1251 Yes
cp1251_general_cs cp1251
cp1256_general_ci cp1256 Yes
cp1256_bin cp1256
cp1257_lithuanian_ci cp1257
cp1257_bin cp1257
cp1257_general_ci cp1257 Yes
binary binary Yes
geostd8_general_ci geostd8 Yes
geostd8_bin geostd8
cp932_japanese_ci cp932 Yes
cp932_bin cp932
eucjpms_japanese_ci eucjpms Yes
eucjpms_bin eucjpms
字符集--校验 关系END------------------
========================
如果你可以访问MYSQL的话。教你两个语句。直接查出来看。格式比这个好看。
SHOW CHARACTER SET
SHOW COLLATION

如果需要。我有电子表格。
给我发邮件索要。liuhuanaiaiai@163.com。
Over!

mysql中的字符集与字符集校对有什么区别?~

字符集校对是对要求字符集按照某种方式来校对,比如Oderby的时候就会按照校对规则来排序。ci表示不区分大小写。ch表示区分。那么比如oder by的话 。。。

utf8_bin

MySQL中数据库的默认字符集和校对规则有哪些?
答:注意!MySQL 里常说的 UTF8 是 UTF8MB3 的别名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 字节 UTF8 字符集!UTF8MB3 表示最大支持 3 个字节存储字符,UTF8MB4 表示最大 4 个字节存储字符。根据实际需要和未来展望,MySQL 8.0 已经默认用 UTF8MB4 基础字符集。

mysql默认字符集是什么
答:1、MySQL默认的字符集是UTF8;2、对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(table)和连接(connection)。3、具体的字符集可以通过修改配置文件(my.cnf)进行调整。

mysql数据库在安装时默认的字符集编码为utf8但是为什么向数据库插入...
答:(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;简单的总结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用 latin1 存储...

mysql 建数据库用什么字符集
答:mysql创建数据库一般使用的字符集为UTF-8,但具体的要根据实际情况进行选择。工具:mysql5.6,Navicat Premium 步骤:1、打开Navicat Premium,双击左侧服务器的树形结构,连接到服务器,这里以localhost为例。2、在localhost处点右键,选择“新建数据库”。3、弹出窗口中,填写新建的数据库名字,这里填写的...

如何设置mysql的默认字符集
答:通过客户端修改表字段的默认字符集 1 打开SQLyog客户端,连接数据库如下图所示,点击connection 按钮 连接数据库 2 我的数据库名称为edu,然后我随意找到数据库中test2表,右键---》Alter Table 3 如果安装数据库的 时候 没有选择字符集设置,那么mysql数据库默认为latin1,在箭头部分选择utf8字符集 EN...

mysql怎么更改数据库默认字符集
答:么这时候MySQL的默认字符集是latin1。而这时候我们仍然可以指定MySQL的默认字符集,通过my.cnf文件增加 两个参数:1.在[mysqld]下添加 default-character-set=utf8(mysql 5.5 版本添加character-set-server=utf8)2.在[client]下添加 default-character-set=utf8 这样我们建数据库建表的时候就不用...

全面了解mysql中utf8和utf8mb4的区别
答:部分系统使用的字符集是 utf8,但 utf8 最多只能存 3 字节长度的字符,不能存放 4 字节的生僻字或者表情符号,因此打算迁移到 utf8mb4。迁移方案一1. 准备新的数据库实例,修改以下参数:[mysqld]## Character Settingsinit_connect='SET NAMES utf8mb4'#连接建立时执行设置的语句,对super权限...

如何设置Mysql数据库默认的字符集编码为GBK
答:File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。然后设置jsp、js、css等类型的Default encoding,设置方式同Java Source File。3.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到MyEclipse->Files and Editors->JSP,把Encoding改为UTF-8 ...

mysql数据库表里中文乱码应该选哪种编码?
答:数据库中常用的操作就是保存数据和读取数据,在这过程中,乱不乱码和数据库字符集貌似没有什么关系。我们只要保证写入时选择的字符集和读取时选择的字符集一致,即只需保证两次操作的客户端字符集一致即可。在MySQL的客户端上执行一次查询的过程一般是,在客户端的提示符后面输入一条SQL语句,回车,然后终...

如何设置Mysql数据库默认的字符集编码为GBK
答:alter database character set gbk collate gbk_chinese_ci;3、在创建数据库时指定编码:mysql -u root -p create database db_name character set gbk collate gbk_chinese_ci;4、更改某个表的编码方式 mysql -u root -p db_name alter table table_name convert to charachter set gbk ...