Mysql字符集和排序规则详解

Mysql字符集和排序规则详解

MySQL是当前最流行的数据库之一,对于数据存储乃至于展示,字符集和排序规则都是最基本的要素之一。

字符集(Character Set)

MySQL中,字符集是一组字符的字符集合集合,也就是说,字符集是相互关联的一组字符,这些字符在计算机中用一定的方式进行存储和传输。MySQL中实现了多种字符集,具体可以在官方文档中查看。

在创建数据库,数据表时,都可以指定该对象的字符集,MySQL支持的字符集包括ASCII,UTF-8,GBK,等常见字符集,如下:

-- 创建数据库时指定默认字符集为UTF-8
CREATE DATABASE dbname DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 创建数据表时指定字符集和排序规则
CREATE TABLE table_name (
  column1 varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  column2 varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

排序规则(Collation)

排序规则定义了在字符集中如何比较和排序字符。 它基本上定义了将字符串字符实际定义为二进制字符时使用哪种比较算法。

MySQL中也使用了多种排序规则,也可以在文档中查看,例如:utf8mb4_general_ci,utf8mb4_unicode_ci,utf8mb4_bin等等。

示例1:

utf8mb4_general_ci排序规则可以将包含不同形式和大小写的字符串,认为是相等的。例如以下两个字符串:

SELECT 'abc' = 'ABC' COLLATE utf8mb4_general_ci; -- 结果为1,即相等

示例2:

utf8mb4_unicode_ci排序规则实现根据Unicode规则排序,因此在比较时,按照字符的实际大小进行比较,例如以下两个字符串:

SELECT 'œ' COLLATE utf8mb4_unicode_ci < 'Z' COLLATE utf8mb4_unicode_ci; -- 结果为1,即小于

总结

字符集和排序规则是MySQL中非常基础和重要的选项,能够直接影响到数据存储并展现的正确性和可靠性。在进行数据库创建或数据表创建的过程中,应该尽量按照业务需求来选择相应的字符集和排序规则,确保数据的准确性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql字符集和排序规则详解 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • Java transient 关键字是干啥的

    当Java中的对象被序列化时,它们的所有属性(包括私有属性)都将被保存。在某些情况下,某些属性可能不想被序列化。在这种情况下,使用Java中的transient关键字进行标记,表示该属性不应该被序列化,并且不存储在返回的字节数组中。 在Java中,transient是一个关键字,用于标记类成员变量,通常用于序列化和反序列化。 Markdown 格式 在Mar…

    Java 2023年5月20日
    00
  • java多线程有序读取同一个文件

    要实现Java多线程有序读取同一个文件,可以使用以下步骤: 步骤一:打开文件流 首先,需要创建一个FileInputStream对象,该对象可以打开文件流并准备读取数据。代码示例如下: FileInputStream fis = new FileInputStream("file.txt"); 步骤二:创建 BufferedReader …

    Java 2023年5月19日
    00
  • springboot项目如何设置session的过期时间

    下面我将详细讲解Spring Boot项目如何设置Session的过期时间。 Spring Boot框架内置了许多有用的快捷方法和工具,其中包括Session的管理和设置。在Spring Boot中配置Session的过期时间非常简单,只需在配置文件(比如application.properties或application.yml)中添加相应的配置即可,具体…

    Java 2023年5月19日
    00
  • IDEA中如何查找jar包之间的依赖关系并忽略依赖的某个包

    在IDEA中查找jar包之间的依赖关系并忽略依赖的某个包,可以使用”Maven Dependency Analyzer”插件。 下面是具体步骤: 打开IDEA,选择“File” -> “Settings” -> “Plugins”,搜索“Maven Dependency Analyzer”插件并安装。 打开项目,选择“View” -> “T…

    Java 2023年5月19日
    00
  • MyBatis如何实现多表查询(多对一、一对多)

    MyBatis 是一种优秀的持久层框架,它提供了一种灵活方便的方式来处理多表操作。多表查询中最常见的场景是多对一和一对多关系。接下来我们详细讲解 MyBatis 如何实现这两种关系的多表查询。 多对一查询 多对一查询通常是一个表中的多条数据对应另一个表中的一条数据。在 MyBatis 中实现多对一查询的步骤如下: 步骤一:建立实体类 我们需要建立两张表的实体…

    Java 2023年5月20日
    00
  • springboot 使用websocket技术主动给前端发送消息的实现

    以下是详细的攻略。 1. WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间可以双向通信,可以实现实时通信、弹幕等功能。 2. springboot使用WebSocket发送消息的实现 2.1 添加依赖 在pom.xml文件中添加WebSocket的依赖: <dependency> &…

    Java 2023年6月15日
    00
  • 常见的垃圾回收器有哪些?

    以下是关于常见的垃圾回收器的完整使用攻略: 常见的垃圾回收器 垃圾回收器是一种自动化的内存管理方式,可以减少程序员的作量,提高程序的可靠和安全性。常见的垃圾回收器有以下几种: 1. 标记清除算法 标记清除算法是垃圾回收的一种常见算法,它的原理是在程序运行过程中,标记所有不再使用的内存空间,然后清除这些内存空间,从而回收内存空间。 以下是一个 Java 中标记…

    Java 2023年5月12日
    00
  • Javaweb监听器实例之统计在线人数

    讲解一下 “Javaweb监听器实例之统计在线人数” 的完整攻略。 什么是Javaweb监听器 Javaweb监听器是一种特殊的类,在JavaWeb应用服务器启动、关闭或发生某种事件时执行相应的方法。监听器提供了一种方便的方法来实现一些常见的业务逻辑。比如,统计在线人数、记录日志、缓存数据、初始化应用等。 如何使用Javaweb监听器统计在线人数 1、编写监…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部