• 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语句中指定校对。

  • 相关阅读:
    代码随想录——图论一刷day05
    抖音招聘直播报白:短视频流量红利和精准推送,让招聘更精准
    hive笔记(五):查询、排序-join语句/连接/分区/sort by/distribute by/cluster by
    基于 NCNN 的 Chinese-Lite 模型测试
    2022年卡塔尔世界杯黑科技盘点
    【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录
    Spring Cloud Gateway夺命连环10问?
    系统移植 串口输入ECHO点灯
    C++ Reference: Standard C++ Library reference: C Library: cstring: strncpy
    智能水厂运行与调控3D模拟仿真在线展示提高整个系统的协同效应
  • 原文地址:https://blog.csdn.net/qq_34059233/article/details/128007807