返回顶部

mysql字符集

​ 看到一个关于mysql字符集的文章,写得很好,原文地址:https://www.cnblogs.com/chyingp/p/mysql-character-set-collation.html

​ 下面再补充一些小细节。

  1. charset和character set的区别

    charset是character set的简写

    character set 'UTF8'
    character set UTF8
    charset 'UTF8'
    charset UTF8
    

    上面四个得出的结果是一样的。设置表级别的字符集时可以写等号,如character set=UTF8,设置列级别字符集时不能写等号。
    下面两个相同(列级)

    `str` varchar(11) character set utf8mb4 collate utf8mb4_general_ci
    
    `str` varchar(11) charset utf8mb4 collate utf8mb4_general_ci
    

    下面两个相同(表级)

    CREATE TABLE `tb` (column_list)
    DEFAULT character set [=] utf8mb4 collate utf8mb4_general_ci;
    
    CREATE TABLE `tb` (column_list)
    DEFAULT charset [=] utf8mb4 collate utf8mb4_general_ci;
    
  2. 各种字符集占用的字节数

    Charset Description Default collation Maxlen (最大字节数)
    latin1 cp1252 West European latin1_swedish_ci 1
    ascii US ASCII ascii_general_ci 1
    gb2312 GB2312 Simplified Chinese gb2312_chinese_ci 2
    gbk GBK Simplified Chinese gbk_chinese_ci 2
    utf8 UTF-8 Unicode utf8_general_ci 3
    utf8mb4 UTF-8 Unicode utf8mb4_general_ci 4

    mysql的字符序遵从命名惯例:

    以_ci(表示大小写不敏感)

    以_cs(表示大小写敏感)

    以_bin(表示用编码值进行比较)

    mysql的默认字符集是:latin1,查看mysql默认字符集:SHOW VARIABLES LIKE 'character_set_server';

    在实际的应用中,如果不存储中文,用latin1就足够了;如果要存储中文,就用utf8mb4。utf8mb4是一种最常用的方式,它可以存储中文、特殊符号和表情符号。

posted @ 2022-05-08 15:37  圣马丁的阿哥  阅读(121)  评论(0编辑  收藏  举报