区别MySQL字段内容大小写讲解
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,下文内容主要给大家带来区别MySQL字段内容大小写讲解,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。数据由Orac
千家信息网最后更新 2025年01月20日区别MySQL字段内容大小写讲解
下文内容主要给大家带来区别MySQL字段内容大小写讲解,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
数据由Oracle 迁入MySQL ,由于之前Oracle区分大小写,MySQL的配置使用了默认配置,导致一些数据导入失败,有的唯一键报错,冲突。
将测试过程记录在下面。
数据库版本:MySQL 5.7.11
引用他人博客中内容:
校对规则一般有这些特征:
两个不同的字符集不能有相同的校对规则。
每个字符集有一个默认校对规则。例如,utf8默认校对规则是utf8_general_ci。
存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。
查看支持的校验规则:
mysql> SHOW COLLATION like 'utf8%';+--------------------------+---------+-----+---------+----------+---------+| Collation | Charset | Id | Default | Compiled | Sortlen |+--------------------------+---------+-----+---------+----------+---------+| utf8_general_ci | utf8 | 33 | Yes | Yes | 1 || utf8_bin | utf8 | 83 | | Yes | 1 || utf8_unicode_ci | utf8 | 192 | | Yes | 8 |...| utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 || utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 || utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 || utf8mb4_icelandic_ci | utf8mb4 | 225 | | Yes | 8 |
查看本地的校验规则:mysql> show global variables like '%coll%';+----------------------+--------------------+| Variable_name | Value |+----------------------+--------------------+| collation_connection | utf8mb4_unicode_ci || collation_database | utf8mb4_unicode_ci || collation_server | utf8mb4_unicode_ci |+----------------------+--------------------+
生产中数据库使用的编码为utf8mb4, 校验规则为 utf8mb4_unicode_ci,对大小写不敏感
如果需要大小写敏感,需要将排序规则修改为utf8mb4_bin.
测试后结果:修改数据库配置后,不会对已经存在的表造成影响,如要生效需要修改特定列的排序规则。优先级大概是这样:列>表>数据库>云服务器
有两种方法使查询区分大小写:
第一种方法为修改列级别的校验规则为utf8mb4_bin
T表
CREATE TABLE `T` ( `name` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_cimysql> select * from T;+------+| name |+------+| YOU || You || you || you || yOU |+------+
T2表:将列校对规则修改为utf8mb4_bin
CREATE TABLE `T2` ( `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_cimysql> select * from T2;+------+| name |+------+| yOU || you |+------+
查询:
T:(未区分大小写)
mysql> select * from T where name = 'you';+------+| name |+------+| YOU || You || you || you || yOU |+------+
T2:(已经区分大小写)
mysql> select * from T2 where name = 'you';+------+| name |+------+| you |+------+
第二种方法: 不修改配置,表结构,而使用如下的查询语句:
T:(未修改表)
mysql> select * from T where name = binary'you';+------+| name |+------+| you || you |+------+
对于以上关于区别MySQL字段内容大小写讲解,如果大家还有更多需要了解的可以持续关注我们的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。
规则
大小
数据
校对
内容
数据库
配置
字符
字符集
方法
查询
字段
不同
专业
知识
过程
排序
测试
相同
下文
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
扩充功能是数据库设计的什么阶段
acl网络安全配置心得
网络安全化示意图
软件开发费税率是
银行从业人员如何网络安全
计算机网络技术概论论文
用友数据库隐藏账套
计算机三级网络技术大题知乎
华为软件开发技术交流会
全民健身服务软件开发
网络有自己的服务器吗
我们应该如何应对网络安全
网络安全研讨会
正当防卫4老是连不上服务器
变电站plc管理服务器
服务器硬盘初始化
es数据库查询数据少了
互联网 高科技新闻
对计算机网络技术有什么了解
郑州电脑软件开发价格
网络安全云办公
台州企业网络安全准入控制价格
关于召开网络技术交流会的通知
网络安全关机检查什么意思
马鞍山浪潮服务器维修电话
任务管理器应用服务器
关于网络安全的手抄报 简
php的多线程操作数据库
软件开发老板激励员工
第五人格欧美服务器怎么才能不卡