• Mysql——使用字符集以及校对


    一、字符集
    1、查看mysql支持的所有字符集
    show character set;
    在这里插入图片描述
    2、查看指定数据库的字符集
    show variables like ‘character%’;
    在这里插入图片描述
    这八种情况分别对应:
    1)设置客户端使用的字符集
    2)设置链接数据库时的字符集
    3)设置创建数据库的编码格式
    4)文件系统的编码格式
    5)数据库给客户端返回数据时的编码格式
    6)服务器安装时指定的编码格式
    7)数据库系统使用的编码格式
    8)字符集的安装目录

    3、查看某个表的字符集
    语法如下:show table status from 库名 like 表名;
    举例:
    show table status from test_database like ‘test_table’;
    在这里插入图片描述

    以上是查看test_database 数据库中test_table这个表的字符集,都是通过校对来判断出字符集的,这里的校对是utf8_general_ci,所以字符集是utf8。
    4、查看某个表的所有列的字符集
    show full columns from test_table;
    查看test_table这个表所有列的字符集
    在这里插入图片描述
    根据Collatio这一列,能判断出test_name这一列的校对是utf8_general_ci,所以字符集是utf8。,其他的test_id,test_price这两列没有指定校对,所以用的就是表的字符集。

    5、创建表时指定字符集、校对

    create table mytable
    (
    column1 int,
    column2 int
    )default CHARACTER set hebrew collate hebrew_general_ci;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    Navicat的表设计表中可以看到该表的字符集和校对
    6、创建表时指定列的字符集、校对

    create table mytable
    (
    column1 int,
    column2 varchar(10) character set utf8 collate utf8_general_ci
    )default CHARACTER set hebrew collate hebrew_general_ci;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    二、校对
    1、查看mysql支持的所有校对
    在这里插入图片描述
    2、校对的几种常见情况
    排序时指定校对规则
    1)utf8_general_ci 不区分大小写,比较时对每个字符的unicode编码从左到右一个个的从小到大排序。
    select product_production from product order by product_production collate utf8_general_ci;

    在这里插入图片描述
    2)utf8_bin 降序,且区分大小写
    select product_production from product order by product_production collate utf8_bin;

    在这里插入图片描述
    其中各个字符对应的unicode代码为:
    空格=U+0020
    4=U+0034
    ?=U+003F
    A=U+0041
    N=U+004E
    n=U+006E

    并且从上面可以看出N的unicode代码比n小,也就是大写字母的unicode代码比较小。
    3)utf8_bin升序
    select product_production from product order by product_production collate utf8_bin desc;
    在这里插入图片描述
    所以如果想指定某一列按照某种校对来排序的话,一方面可以通过更改列的校对(在数据库管理软件上更改,比如navicat更改),另一方面通过更改表的校对(在数据库管理软件上更改,比如navicat更改),这里要注意的是如果列的校对规则和表的校对规则不一致的情况下,列的校对规则是大于表的校对规则的;还可以临时的指定校对规则,就是在sql语句中指定校对。

  • 相关阅读:
    国产化之虚拟ARM64-CPU安装银河麒麟操作系统
    为什么不是Github Copilot,不是 Devin 而是 AutoCoder
    【Java开发工具】下载安装eclipse并汉化配置教程(所以操作系统通用)
    多模态大一统:开启全模态LLM和通用AI时代的大门
    java: 错误: 无效的源发行版:17 【解决】
    ByteBuffer杂记
    机器学习入门--门控循环单元(GRU)原理与实践
    if条件分支计算分段函数
    Hadoop 集群搭建(docker版本)
    AQS的简单说明
  • 原文地址:https://blog.csdn.net/qq_34059233/article/details/128007807