返回顶部
首页 > 资讯 > 数据库 >MySQL基础学习之字符集的应用
  • 323
分享到

MySQL基础学习之字符集的应用

MySQL字符集应用MySQL字符集MySQL基础 2023-05-16 14:05:12 323人浏览 泡泡鱼
摘要

目录字符集的查询与修改字符集比较规则utf8mb3和 utf8mb4比较规则后缀含义字符集常用sql字符集的查询与修改 在Mysql 8.0版本之前, 默认字符集是latin1, 使用默认字符集的时候输入中文会出现乱码问

字符集的查询与修改

Mysql 8.0版本之前, 默认字符集是latin1, 使用默认字符集的时候输入中文会出现乱码问题, 所以我们开发人员经常会将mysql字符集的格式修改为utf8解决乱码问题, utf8字符集默认指向的是utf8mb3格式编码, 在MySQL 8.0版本开始, 默认的字符集将改为了utf8mb4, 有效的解决了中文乱码问题

查看当前MySQL数据库使用的字符集

show variables like 'character%';

-- 或

show variables like '%char%';

MySQL基础学习之字符集的应用

MySQL 8.0版本查询默认字符集

MySQL基础学习之字符集的应用

MySQL 5.7版本查询默认字符集

对于MySQL 5.7版本我们可以通过Navicat工具来对数据库的默认字符集进行修改, 也可以通过修改MySQL的配置文件my.cnf来修改默认字符集

my.cnf文件在linux系统下的地址是: /etc/my.cnf 在 [mysqld] 下新增 character_set_server=utf8 修改成功之后注意要重启 MySQL, 使配置生效, 重启命令systemctl restart mysqld.service

在上面字符集列表里面有几个属性可以了解一下:

  • character_set_client 服务器解码请求时使用的字符集
  • character_set_connection 服务器处理请求时会把请求字符串character_set_client转为character_set_connection
  • character_set_results 服务器向客户端返回数据时使用的字符集

字符集比较规则

utf8mb3和 utf8mb4

在日常操作中utf8字符集表示一个字符需要 14个字节, 但是我们常用的一些字符只需要使用 13个字节, 而字符集表示使用一个字符的最大字节长度, 长度不同占用空间大小也不同, 所以在MySQL中定义了utf8mb3utf8mb4:

  • utf8mb3 1~3字节
  • utf8mb4 1~4字节

MySQL中, utf8通常指的是 utf8mb4

查看当前MySQL支持的字符集可输入下列查询:

show charset;
-- 或
show character set;

MySQL基础学习之字符集的应用

我们可以看到查询结果一共有四列, 分别是字符集名称, 简介, 该字符集默认排序规则, 使用该字符集最大字节数

MySQL基础学习之字符集的应用

Default collation表示的是该字符集默认的比较规则, utf8_general_ci是一种通用的比较规则,这里可以选择比较规则主要作用于哪种语言 在我们使用Navicat编辑数据库的时候可以看到当前数据库使用的字符集和排序规则

  • utf8_croatiian_ci就是以罗克地亚语的规则比较,
  • utf8_czech_ci 以捷克语的规则比较
  • utf8_danish_ci 以丹麦语规则比较
  • ...

utf8_unicode_ci和 utf8_general_ci对中英文来说没有区别 utf8_general_ci 校对速度快, 准确度较差 utf8_unicode_ci 准确度高, 但校对速度稍慢

一般来讲使用utf8_general_ci就够了, 但是如果应用中使用到德语, 法语或者俄语, 一定要使用 utf8_unicode_ci, 因为 utf8_general_ci是一种比较老的标准 utf8_unicode_ci会更符合这些国家人们的习惯

比较规则后缀含义

后缀英文释义描述
_aiaccent insensitive不区分重音
_asaccent sensitive区分重音
_cicase insensitive不区分大小写
_cscase sensitive区分大小写
_binbinary以二进制的方式比较

字符集常用SQL

-- 查看服务器的字符集和比较规则
show variables like '%_server';
-- 查看数据库的字符集和比较规则
show variables like '%_database';
-- 查看具体数据库的字符集
show create database 表名;
-- 修改具体数据库的字符集
alter database 表名 default character set 'utf8' collate 'utf8_general_ci';

修改数据库的默认字符集和比较规则后, 原来已经创建的表的字符集和比较规则并不会改变, 需要单独的去更改

以上就是MySQL基础学习之字符集的应用的详细内容,更多关于MySQL字符集的资料请关注我们其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL基础学习之字符集的应用

本文链接: https://lsjlt.com/news/210097.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL基础学习之字符集的应用
    目录字符集的查询与修改字符集比较规则utf8mb3和 utf8mb4比较规则后缀含义字符集常用SQL字符集的查询与修改 在mysql 8.0版本之前, 默认字符集是latin1, 使用默认字符集的时候输入中文会出现乱码问...
    99+
    2023-05-16
    MySQL字符集应用 MySQL字符集 MySQL基础
  • Java基础学习之字符缓冲流的应用
    目录一、字符缓冲流二、字符缓冲流复制Java文件三、字符缓冲流特有功能四、字符缓冲流特有功能复制Java文件一、字符缓冲流 字符缓冲流介绍: BufferedWriter:将文本写入...
    99+
    2024-04-02
  • mysql学习之-字符集选定,修改。
    环境:5.6 基础概念: 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等; 编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应...
    99+
    2024-04-02
  • MySQL 学习之-字符集选定,修改
    基础概念: 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等; 编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符.例如,我们给字...
    99+
    2024-04-02
  • Java基础学习之字符串知识总结
    目录一、前言二、String 类(字符串常量)2.1 String 类实例的创建2.2 String 对象的比较2.3 String对象的空值2.4 字符串拼接三、StringBui...
    99+
    2024-04-02
  • MySQL学习笔记(8):字符集
    本文更新于2019-06-16,使用MySQL 5.7,操作系统为Deepin 15.4。 目录常用字符集MySQL字符集 常用字符集 字符集 定长 代码宽度 说明 ASCII或ISO-646 是 1字节7位 英文字...
    99+
    2019-08-14
    MySQL学习笔记(8):字符集
  • 【MySQL基础】字符集与校对集详解
    序号系列文章1【MySQL基础】MySQL介绍及安装2【MySQL基础】MySQL基本操作详解3【MySQL基础】MySQL基本数据类型4【MySQL基础】MySQL表的七大约束 文章目录 前言字符集与校对集1,字符集与校对集的概...
    99+
    2023-08-18
    mysql 数据库 服务器
  • Java基础学习之集合底层原理
    目录一、Collection集合二、List接口三、Set(Set底层是由Map实现的,所以一般都是问Map)四、Map一、Collection集合 Collection接口是单列...
    99+
    2024-04-02
  • mysql学习笔记之基础测试
    10. 基础测试 10.1...
    99+
    2024-04-02
  • MySQL学习之基础操作总结
    目录1.库的操作2.表的操作创建表查看表结构删除表修改表1.库的操作 查看当前mysql数据库下默认有哪些库 show databases; 创建一个库 create databas...
    99+
    2024-04-02
  • Python基础学习列表+元组+字典+集合
    目录一、列表二、元组三、字典四、集合五、总节前言: 这一章的知识紧接上一章,零基础的小伙伴可以从上一章学起来。当然,你也可以收藏起来慢慢学习,学习是不可操之过急的啦… ...
    99+
    2024-04-02
  • mysql数据库字符集学习总结
    MYSQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念。MYSQL 支持的字符集和校对规则可以通过命令showcharacter set;查看。和字符集有关的变量my...
    99+
    2024-04-02
  • Java基础学习之IO流应用案例详解
    目录一、点名器二、集合到文件三、文件到集合一、点名器 需求: 我有一个文件里面存储了班级同学的姓名,每一个姓名占一行,要求通过程序实现随机点名器 实现步骤: 创建字符缓冲输入流对象创...
    99+
    2024-04-02
  • MySQL查询学习之基础查询操作
    前言 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:...
    99+
    2024-04-02
  • MySQL学习之基础命令实操总结
    目录启动mysql服务连接mysql常用命令DatabaseTable启动mysql服务 (以管理员身份运行cmd) net start mysql 连接mysql mysql -...
    99+
    2024-04-02
  • Python基础学习之Python主要的
    Python主要是依靠众多的第三方库来增强它的数据处理能力的。常用的是Numpy库,Scipy库、Matplotlib库、Pandas库、Scikit-Learn库等。 常规版本的python需要在安装完成后另外下载相应的第三方库来安装库...
    99+
    2023-01-31
    基础 Python
  • Netty学习教程之基础使用篇
    什么Netty?Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架...
    99+
    2023-05-31
    netty 基础
  • Java基础学习之运算符相关知识总结
    1.算术运算符 +表示加法运算符 -表示减法运算符 *表示乘法运算符 /表示除法运算符 %表示取模/取余运算符 package com...
    99+
    2024-04-02
  • MySQL数据库基础(二)——MySQL字符集与乱码解析
    MySQL数据库基础(二)——MySQL字符集与乱码解析 一、字符集与编码 1、字符集简介 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Charac...
    99+
    2024-04-02
  • Go语言基础学习之Context的使用详解
    目录前言基本用法Context控制goroutine的生命周期使用 WithValue() 传递数据使用 WithCancel() 取消操作使用 WithDeadline() 设置截...
    99+
    2023-05-19
    Go语言Context使用 Go语言Context用法 Go Context
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作