摘要:通过设置表的字符集和排序规则,解决MySQL查询时不区分字母大小写、插入时不支持特殊字符的问题。

  关于MySQL查询时不区分字母大小写、插入时不支持特殊字符的问题,只有修改表的字符集和排序规则才能根治,而且事半功倍。utf8mb4支持的最低mysql版本为5.5.3+,若不是,请升级到较新版本。下面以把字符集和排序规则分别修改为utf8mb4 和 utf8mb4_bin为例,进行展开描述,当然,童鞋们也可以换成其它字符集和排序规则,请量体裁衣,自行决定。

查看表的字符集和排序规则

  查看schema中某张表的排序规则:

show table status from schema_name like '%table_name%';

  查看schema中所有表的排序规则:

SELECT table_name, table_type, engine, version, table_collation
FROM information_schema.tables WHERE table_schema = 'schema_name' ORDER BY table_name DESC;

  上述SQL脚本支持表名模糊匹配。查看某张表中字段的字符集和排序规则:

show full COLUMNS FROM table_name;

修改表的字符集和排序规则

  修改数据库的字符集编码命令如下:

ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

  修改表的字符集编码:

alter table table_name character set utf8mb4;

  它只修改表新增列的默认定义,已有列的字符集不受影响,请格外注意。若要同时修改表字符集和已有列字符集,并将已有数据进行字符集编码转换,请使用如下CONVERT TO脚本:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

修改字段的字符集和排序规则

  修改某个字段的字符集编码:

ALTER TABLE table_name CHANGE column_name column_name VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL;

  注:执行命令过程中字段名无需加引号。修改完数据库字符集,立即生效。

结束语

  工作中处处都需要学习,有时候看似简单的一个优化,可以让你深入学习后收获各种知识。所以在学习中要不求甚解,不仅要了解这个知识点,也要熟悉为什么要这么做。

MySQL修改表和字段的字符集和排序规则的更多相关文章

  1. Navicat修改mysql表的字符集和排序规则

    突然想起前一阵子,在做javaweb后端debug的时候遇到的这个问题.由于在Dao层测试的时候没有尝试过中文的测试例,所以在Service写好后一直不报错但是无法插入数据库. 找了好久才发现是Mys ...

  2. 【mysql】 数据库字符集和排序规则

    库的字符集影响表和字段的字符集 数据库字符集 >表的字符集 > 字段的字符集 (从前往后优先级由低到高,从左往右继承,如果表没设置字符集,继承数据库的,如果字段没设置,继承表的) 数据库的 ...

  3. 翻译:MariaDB字符集和排序规则

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  4. mysql 批量修改 表字段/表/数据库 字符集和排序规则

    今天接到一个任务是需要把数据库的字符编码全部修改一下,写了以下修正用的SQL,修正顺序是   表字段 > 表 > 数据库. 表字段修复: #改变字段数据 SELECT TABLE_SCHE ...

  5. MySQL修改表中字段的字符集

    MySQL修改表中字段的字符集 ALTER TABLE 表名 MODIFY 字段名 要修改的属性: 例:ALTER TABLE `guaduates` MODIFY `studentno` CHAR( ...

  6. MySQL如何指定字符集和排序规则?

    在MySQL中,可以使用以下两种方式指定字符集和排序规则: 创建数据库或表时指定字符集和排序规则 在创建数据库或表时,可以使用 CHARACTER SET 和 COLLATE 选项指定字符集和排序规则 ...

  7. 关于mysql中字符集和排序规则说明

    文章转自 http://blog.csdn.net/smallSBoy/article/details/52997138 数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set ...

  8. MySQL数据库字符集和排序规则的四个级别

    MySQL数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列. 最初,服务器字符集和排序规则取决于启动mysqld时使用的选项.可以使用 --character-set-server该 ...

  9. mysql字符集和排序规则

    1.关于字符集和排序规则所为字符集,就是用来定义字符在数据库中的编码的集合.常见的字符集有:utf8(支持中文)和AccIS(不支持中文) 数据库中的排序规则用来定义字符在进行排序和比较的时候的一种规 ...

  10. mysql修改表、字段、库的字符集

    在一次导入数据表(MYISAM)的经历:复制过来的表打开后中文出现乱码,肯定是字符集出现了不致的问题,所以从原数据库导出.sql文件,修改其中的创建表的语句,加入字符集DEFAULT CHARSET= ...

随机推荐

  1. 基于ThreeJs的大屏3D地图(二)——气泡图、渐变柱体与热力图

    前提 上一篇文章中我们完成了地图区块模型的渲染,在此基础之上本篇来讲解气泡图.3D柱形图以及3D热力图的实现方式. 首先,为了更好的关注点分离及与地图渲染模块的解耦,我们可以把所有类型的可视化元素抽象 ...

  2. npm配置

    在 Node.js 中,npm(Node Package Manager)是 JavaScript 包的默认管理工具.要查看 npm 的配置,你可以使用 npm config 命令配合不同的子命令来获 ...

  3. HttpClient 进行soap请求

    当你在使用C#的HttpClient进行SOAP请求时,确保你的代码类似于以下示例: using System; using System.Net.Http; using System.Text; u ...

  4. 在Linux系统下验证万兆网络(10Gbps)的性能和配置情况,可以通过多种方法来实现

    在Linux系统下验证万兆网络(10Gbps)的性能和配置情况,可以通过多种方法来实现.以下是一些常用的步骤和工具: 1. 确认硬件支持 首先,确保您的计算机硬件支持万兆网络.这包括: 网卡:确认您的 ...

  5. 【MATLAB习题】曲柄滑块机构运动学分析

    曲柄滑块机构分享 1. 机构简图 2. 实例 3. matlab code function main %输入已知数据 clear; i1=100; i2=300; e=0; hd = pi/180; ...

  6. 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!

    前言 今天大姚给大家分享 3 个 .NET 开源.免费的文件压缩处理库,希望可以快速帮助同学们实现文件压缩和解压功能! SharpCompress SharpCompress 是一个基于 C# 编写的 ...

  7. Netty基础—6.Netty实现RPC服务

    大纲 1.RPC的相关概念 2.RPC服务调用端动态代理实现 3.Netty客户端之RPC远程调用过程分析 4.RPC网络通信中的编码解码器 5.Netty服务端之RPC服务提供端的处理 6.RPC服 ...

  8. Go语言遍历字符串——获取每一个字符串元素

    遍历字符串有下面两种写法. 遍历每一个ASCII字符 遍历 ASCII 字符使用 for 的数值循环进行遍历,直接取每个字符串的下标获取 ASCII 字符,如下面的例子所示. theme := &qu ...

  9. SOA架构和微服务架构的区别

    1.SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件. 1.SOA(Service Or ...

  10. picoctf general skills-easy 部分题目详解(1)

    实验介绍: ctf竞赛(Capture The Flag)是网络安全技术人员代替真实攻击,比拼技术的竞赛. 又名夺旗赛,是以拿到flag为目标的比赛. picoctf上的题目比较适合新手练习. 但是注 ...