【MySQL】关于数据库字符编码以及字符集排序相关知识

这篇具有很好参考价值的文章主要介绍了【MySQL】关于数据库字符编码以及字符集排序相关知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 通过设置表的字符集和排序规则,解决MySQL查询时不区分字母大小写、插入时不支持特殊字符的问题。
  • 关于MySQL查询时不区分字母大小写、插入时不支持特殊字符的问题,只有修改表的字符集和排序规则才能根治,而且事半功倍。utf8mb4支持的最低mysql版本为5.5.3+,若不是,请升级到较新版本。

一、字符集utf8 和Unicode、utf8 和utf8mb4 区别

新建mysql数据库的时候,需要指定数据库的字符集,一般我们都是选择utf8这个字符集,但是还会又一个utf8mb4这个字符集,好像和utf8有联系。

涨知识一

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。
可以简单的理解 utf8mb4 是目前最大的一个字符编码,支持任意文字。

涨知识二

Unicode可以认为是字符的编号,即每个字符在Unicode表里面的序号。utf8是一种编码方式,类似于哈夫曼编码过程,就是把常用(位置靠前)的Unicode字符用短编码表示,不常用的字符用长代码表示,从而实现更小的整个文档的文件大小。在UTF-8编码中,英文字母是一个字节,中文(非生僻字)是2~3个字节。可以认为,utf8是对Unicode的一种压缩算法。

二、mysql库的排序规则

utf8_unicode_ci比较准确,utf8_general_ci速度比较快。(更多查看)通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了。
如果是utf8mb4那么对应的就是 utf8mb4_general_ci utf8mb4_unicode_ci。

三、查看更改字符集、排序规则

1. 查看数据库的字符集方式

-- database_name 为数据库名称
SHOW CREATE DATABASE database_name;

2. 查看表的字符集方式

-- table_name为表的名称
SHOW CREATE TABLE table_name;

3. 查看字段的字符集方式

-- column_name为字段名称
SHOW FULL COLUMNS FROM column_name;

4. 修改数据库的字符集方式

-- database_name 为数据库名称
-- utf8为目标字符编码
ALTER DATABSE database_name DEFAULT CHARACTER SET utf8mb4;

5. 修改表的字符集方式

-- table_name为表的名称
-- utf8为目标字符编码
ALTER TABLE table_name DEFAULT CHARACTER SET utf8;

6. 修改字段的字符集方式

-- table_name为表的名称
-- column_name为字段名称
-- varchar(20)为字段的类型
-- utf8为目标字符集
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(20) CHARACTER SET utf8;

7. 同时修改表和表中所有字符类型的字段字符集方式文章来源地址https://www.toymoban.com/news/detail-531572.html

-- 例子:alter table user2 convert to character set utf8 collate utf8_general_ci;
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]

到了这里,关于【MySQL】关于数据库字符编码以及字符集排序相关知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库 --- mysql(03)-- mysql字符集、表操作(01)

    (1)简介: MySQL字符集 包括 字符集(CHARACTER) 和 校对规则(COLLATION) 两个概念: 字符集(CHARACTER) 是一套编码 校对规则(COLLATION) 是在字符集内用于比较字符的一套规则。 (2)命令: 1 查看字符集 2 修改默认字符集 附:utf8和utf8mb4的区别 MySQL在5.5.3之后增加了这个u

    2024年02月16日
    浏览(39)
  • Mysql 创建数据库字符集与排序规则

    新版本数据库默认编码格式是  utf8mb4 , utf8mb4  比  utf8  多了  emoji  编码支持,建议普通表使用  utf8  如果这个表需要支持  emoji  就使用  utf8mb4 ,也可以全部用  utf8mb4 , utf8mb4 完全向下兼容 utf8 。 字符集 当数据库需要适应不同的语言就需要有不同的字符集,如果不指

    2024年02月07日
    浏览(46)
  • 达梦数据库如何查看字符集

     0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR select SF_GET_UNICODE_FLAG(); select  UNICODE (); 字符集在安装初始化库的时候指定,设定后不可更改,请在安装时按照需求设置好 后期如果想修改就只能重新初始库! 注意中文字符的长度问题:数据库初始化参数  LENGTH_IN_CHAR=0  时,unicode 编

    2023年04月09日
    浏览(39)
  • MySQL——修改数据库和表的字符编码

    修改编码: ( 1) 先停止服务 ( 2 )修改 my.ini 文件 ( 3 )重新启动服务说明: 如果是在修改 my.ini 之前建的库和表,那么库和表的编码还是原来的 Latin1 ,要么删了重建,要么使用 alter 语句修改编码。 mysql create database 0728 db charset Latin1; Query OK, 1 row affected ( 0.00 sec) mysql use

    2024年02月09日
    浏览(46)
  • Oracle数据库字符集概述及修改方式

    Oracle语言环境的描述包括三部分:language、territory、characterset(语言、地域、字符集) language:主要指定服务器消息的语言,提示信息显示中文还是英文 territory:主要指定服务器的数字和日期的格式 characterset:是指字符集,一般国内数据库实际使用的字符集主要是ZHS16GBK、AL32

    2024年02月11日
    浏览(46)
  • GBASE南大通用数据库GBase 8s常见问题讲堂 -- 字符集的设置

    本文摘自GBASE南大通用社区,by:wty,原文请点击:GBase 8s常见问题 -- 字符集相关问题|GBASE社区|天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商 23103   Code-set conversion function failed due to an illegal sequence or invalid value. 字符集转换失败,字符串中

    2024年01月24日
    浏览(59)
  • 数据库编码 问题 mysql 修改字符集为utf8mb4

    数据库编码 问题 mysql 修改字符集为utf8mb4 问题 ; 当向数据库插入表,或者在表中插入数据时,出现 ERROR 1366 (HY000): Incorrect string value: ‘xBDxF0xD3xB9’ for column ‘name’ at row 1 原因 数据库编码方式 和 表编码方式 以及 插入数据(字符串)的编码方式不同 我们可以查看建表,

    2023年04月08日
    浏览(42)
  • 关于初识MySQL数据库以及MySQL的基本使用

    数据库一般是指: 在磁盘或者内存中存储的特定结构组织的数据 。 其本质可以理解为: 对数据内容存储的一套解决方案,对数据库提供要求或字段,它会给用户返回结果 MySQL是 一套给用户提供数据存取的服务,是一种网络程序 那么在系统中会存在mysql和mysqld,如何区分两

    2024年02月16日
    浏览(53)
  • 关于Android Studio连接mysql数据库的过程和注册功能的实现(数据的插入)以及mysql环境变量的配置

    1.安装mysql数据库,安装的教程哔站有很多,版本尽量用mysql5.7的版本,用mysql8.0的版本与android studio进行连接的话可能会出现问题。 2.安装完成之后,给本机配置环境变量,步骤:如下图示 (1)通过搜索打开环境变量。 (2).点击环境变量。 (3).找到系统变量点击新建。

    2024年04月14日
    浏览(61)
  • mysql 的增删改查以及模糊查询、字符集语句的使用

    net  start mysql81 mysql -uroot -p show databases; show databases like \\\'%schema\\\'; create databases mydb; create databases if not exists mydb; show warnings; drop database mydb; drop database if not exists mydb; select database(); use mydb(); select database(); select version(); select user(); create database mydb2 character gbk collate gbk_chinese_ci show d

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包