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 struts常见错误以及原因分析

    Java Struts常见错误以及原因分析 Java Struts是一种MVC架构的Web应用程序框架。在使用Java Struts开发Web应用程序时,可能会遇到各种各样的错误。在本篇文章中,我们将讨论一些常见的Java Struts错误以及可能的原因,并提供一些解决这些错误的方法和示例。 1. Struts中的空指针异常 在Java Struts应用程序…

    Java 2023年5月20日
    00
  • IntelliJ IDEA下Maven创建Scala项目的方法步骤

    下面是详细的攻略步骤: 一、前置条件 在开始之前,需要你已经将IntelliJ IDEA和Maven安装并配置好。如果还没有安装和配置,请先安装和配置。 二、创建Maven项目 打开IntelliJ IDEA,选择“File”-“New”-“Project”,在选择窗口中选择Maven,并点击“Next”; 在“New Project”对话框中,填写项目相关…

    Java 2023年5月20日
    00
  • JS注释所产生的bug 即使注释也会执行

    JS注释所产生的bug是指在一些情况下,即使代码中存在注释,这些注释也会被执行而导致程序出现问题。 该问题主要是因为在一些JS引擎中,被注释的代码可能在编译阶段和解析阶段都会被执行,因此如果注释中包含了有效的代码,则这些代码会被直接执行。这就引起了一定的安全隐患,也可能导致代码出现逻辑错误。 下面通过两个示例来说明该问题: 示例一: function tes…

    Java 2023年6月15日
    00
  • Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能对比

    针对“Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能对比”的比较和讲解,以下是详细的攻略。 一、三者介绍 1. 原生Mybatis 原生Mybatis就是指在没有任何封装、框架的情况下使用Mybatis。通过编写SQL语句、映射文件和Java代码等相关文件来实现对数据库的操作。 2. Mybatis Plus Mybati…

    Java 2023年5月20日
    00
  • JAVA如何把数据库的数据处理成树形结构

    对于将数据库中的数据处理成树形结构,大致可以分为以下三步: 从数据库中获取原始数据 将原始数据转化为树形结构数据 将树形结构数据渲染到前端页面 1.从数据库中获取原始数据 我们首先要从数据库中获取原始数据,一般情况下,我们可以通过使用JDBC操作数据库实现该功能。 示例代码如下: import java.sql.Connection; import java…

    Java 2023年5月20日
    00
  • uploadify在Firefox下丢失session问题的解决方法

    针对“uploadify在Firefox下丢失session问题”的解决方法,以下是一个完整的攻略: 问题描述 使用uploadify上传文件时,在Firefox浏览器下登录用户的session会丢失。这会导致用户无法正确地上传文件和访问相关的API。 解决方案 有两种解决方案可供选择。 方案一:关闭Firefox的cookie隐私模式 这个问题的根本原因是…

    Java 2023年6月15日
    00
  • Spring MVC 前端控制器 (DispatcherServlet)处理流程解析

    Spring MVC 前端控制器 (DispatcherServlet)处理流程解析 前端控制器 (DispatcherServlet) 简介 Spring MVC是一个基于MVC架构的Web框架,它的核心是前端控制器 (DispatcherServlet)。前端控制器是一个Servlet,它是整个Spring MVC框架的核心,负责接收所有的请求,并将请求…

    Java 2023年5月17日
    00
  • 详解Spring Security中的HttpBasic登录验证模式

    开发Web应用时,安全措施不可忽视,特别是对于需要用户登录的应用程序。Spring Security是一个功能强大的安全框架,它支持多种身份验证和授权方案。其中,HttpBasic登录验证模式是最简单的一种方式。本文将详细讲解Spring Security中的HttpBasic登录验证模式。 什么是HttpBasic登录验证模式 HttpBasic登录验证模…

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