mysql字符集和校对规则_mysql设置字符集

mysql字符集和校对规则_mysql设置字符集1、字符集 character 设置数据存储编码格式 1)utf8 2)utf8mb4 (支持Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手…

mysql字符集与校对集详解

设置数据存储编码格式
1)utf8
2)utf8mb4 (支持Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上)) 

代码100分

2、校对集 collate

代码100分每种字符集都对应一些校对集,校对集会影响到排序规则、where查询、group by having结果、影响创建索引、影响连接查询索引、distinct等查询
1)utf8mb4_general_ci ( 大小写无关 Case Insensitive 、没有实现Unicode排序规则 )
2)utf8mb4_unicode_ci ( 基于标准的Unicode来排序和比较,能够在各种语言之间精确排序 )
3)utf8mb4_general_cs ( 区分大小写 Case Sensitive )
4)utf8mb4_bin ( 直接将所有字符看作二进制串,然后从最高位往最低位比对。所以很显然它是区分大小写的 )

3、校对集优先级(字符集优先级同样的顺序)

查询语句(sql)> 列(colmun) > 表(table) > 数据库(database) > mysql实例 (mysql server)
如果全都显示设置了,那么优先级顺序是 SQL语句 > 列级别设置 > 表级别设置 > 库级别设置 > 实例级别设置。
也就是说列上所指定的COLLATE可以覆盖表上指定的COLLATE,表上指定的COLLATE可以覆盖库级别的COLLATE。
如果没有指定,则继承下一级的设置。即列上面没有指定COLLATE,则该列的COLLATE和表上设置的一样

4、设置字符集、校对级的语句

1)mysql实例在字符集、校对级在my.cnf配置文件设置

2)数据库的字符集、校对级在创建语句指定

代码100分CREATE DATABASE DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3)表的字符集、校对级在创建语句指定

CREATE TABLE (
……
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

4)列的字符集、校对级在创建语句指定

CREATE TABLE (
"column1" VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT "",
……
) ……

5)查询语句的校对级在查询语句指定

SELECT DISTINCT column1 COLLATE utf8mb4_general_ci FROM table1;
SELECT column1, column2 FROM table1 ORDER BY column1 COLLATE utf8mb4_unicode_ci;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9952.html

(0)
上一篇 2023-01-28
下一篇 2023-01-28

相关推荐

  • [Elasticsearch] ES更新问题踩坑记录「终于解决」

    [Elasticsearch] ES更新问题踩坑记录「终于解决」问题描述 我们有个系统设计的时候针对Hive创建表、删除表, 需要更新ES中的一个状态,标记是否删除,在几乎同时执行两条下面的语句的时候,发现在ES 中出现表即使被创建了还是无法被查询到的情况,针对该

    2023-04-22
    151
  • Python中json.dumps使用教程

    Python中json.dumps使用教程JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。在Python中,可以使用json.dumps()函数将Python对象转化为JSON格式的数据。

    2024-06-08
    58
  • MySQL存储过程和游标[通俗易懂]

    MySQL存储过程和游标[通俗易懂]一、存储过程什么是存储过程,为什么要使用存储过程以及如何使用存储过程,并且介绍创建和使用存储过程的基本语法。什么是存储过程:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-S

    2023-01-24
    142
  • 数据库基础知识(三)

    数据库基础知识(三)五、Navicat Premium 12的安装和激活成功教程 是一套数据库开发管理工具,支持连接 MySQL、Oracle等多种数据库,可以快速轻松地创建、管理和维护数据库。 相关教程网址:https://w

    2023-02-10
    153
  • Python列表操作

    Python列表操作Python列表是一种储存多个元素的数据结构,它能够储存不同类型的元素,包括数字、字符串、布尔值等等,而且可以根据需要动态地改变其元素个数。

    2024-07-30
    37
  • PostgreSQL 12.2 公开课及视频及PGCE认证(第6期)(CUUG)(2020年)「终于解决」

    PostgreSQL 12.2 公开课及视频及PGCE认证(第6期)(CUUG)(2020年)「终于解决」六:PostgreSQL 12.2企业级应用公开课(6):可见性验证 1、Transaction ids Structure 2、Tuples Structure 3、dml操作PG操作原理 4、T…

    2023-02-27
    148
  • Python查找子字符串的方法

    Python查找子字符串的方法在Python编程过程中,查找子字符串的需求很常见。这篇文章将介绍Python中常用的几种方法来查找子字符串。

    2024-04-10
    62
  • hdfs上传和下载_hdfs下载文件

    hdfs上传和下载_hdfs下载文件hdfs上传流程 首先客户端向nn请求上传文件、nn经过检查回应客户端是否可以上传、客户端得到同意后向nn请求上传第一块文件的dn、nn返回给客户端dn的地址、客户端与其中一个dn1建立连接然后dn1

    2023-05-08
    157

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注