MySQL字符集和校对规则对查询的影响分析
16 浏览量
更新于2024-08-31
收藏 91KB PDF 举报
MySQL 中查询的有关英文字母大小写问题的分析
MySQL 数据库在进行查询时,有时候是英文字母大小写敏感的,有时候又不是的,主要是由 MySQL 的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的。
**什么是字符集和校验规则?**
字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则。要想列出一个字符集的校对规则,使用 SHOW COLLATION 语句。
**校对规则的特征**
校对规则一般有这些特征:
* 两个不同的字符集不能有相同的校对规则。
* 每个字符集有一个默认校对规则。例如,utf8 默认校对规则是 utf8_general_ci。
* 存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以 _ci(大小写不敏感)、_cs(大小写敏感)或 _bin(二元)结束。
**不同级别的字符集和校验规则可控制大小写敏感**
MySQL 5.1 在同一台服务器、同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合定义字符串。字符集和校对规则有 4 个级别的默认设置:服务器级、数据库级、表级和连接级。
**服务器级**
MySQL 按照如下方法确定服务器字符集和服务器校对规则:
* 修改配置文件 /etc/my.cnf
* 在 [mysqld] 下添加:collation_server=utf8_bin
* 重启实例
更改服务器级的校验规则(collation_server)后,数据库校验规则(collation_collation)默认会继承服务器级的。
**注意**
* 这个只适用于在重新启动之后,新建的库,已存在的库不受影响。
* 同样的,即使库的校验规则改了,已经存在的表不受修改影响;
* 同理与已经存在的列…
**实践示例**
mysql> create database yutest0;
Query OK, 1 row affected (0.00 sec)
mysql> use yutest0;
Database changed
mysql> create table t1 (name varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t1 values ('AAA');
Query OK, 1 row affected (0.00 sec)
mysql> insert into t1 values ('aaa');
Query OK, 1 row affected (0.00 sec)
**小结**
MySQL 中查询的有关英文字母大小写问题的分析,主要是由 MySQL 的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的。字符集和校验规则是 MySQL 中非常重要的概念,它们控制着字符串的比较和排序规则。了解字符集和校验规则的特征和使用方法,对 MySQL 数据库的设计和使用非常重要。
2020-09-10 上传
2020-12-15 上传
点击了解资源详情
2020-09-10 上传
2020-09-14 上传
2009-01-14 上传
2024-01-28 上传
点击了解资源详情
点击了解资源详情
weixin_38652147
- 粉丝: 5
- 资源: 954
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库