mysql 查看字符集和校对规则 命令详解数据库
2023-06-13 09:20:08 时间
简介
每个字符集对应若干校对规则(collation),如果不指定,会有默认校对规则;
服务器有字符集、数据库有字符集、表有字符集、列有字符集,如果不指定,会继承父字符集,有了字符集如果不设置校对规则,就使用字符集的默认校对规则。在做比较时,最终起作用的是列的字符集和校对规则。
比如 table1.col1=table2.col2,首先会拿table1.col1的校对规则与table2.col2的校对规则,进行比较,如果校对规则不兼容,就会出现,类似
Error Code: 1267. Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation = 的错误
_ci _cs _bin解释
ci: case insensitive,大小写不敏感,不区分大小写比较
cs: case sensitive,大小写敏感,区分大小写比较
bin: binary,二进制,使用二进制比较
选择了,大小写不敏感的校对规则,比如utf8_general_ci,那么select * from table1 where name= a ,那么会获取name=a或者A的数据,而不仅仅是a
命令
/*查看数据库当前的字符集和校对规则*/ show variables like %character%; show variables like %collation%; /*查看表的校对规则*/ show table status from db_name like %table_name% ; /*查看列的校对规则*/ show full columns from table_name;
由于多字节编码的缘故,字符个数不一定等于字节数,所以在查询时,注意区分,length是字节数,char_length是字符数
select length(你);/*结果是3,3个字节,数据库采用的utf8编码*/ select char_length(你);/*结果是1,1个字符*/
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/3759.html
相关文章
- Tp6之PhpspreadSheet学习(3)导入Excel导入mysql数据库
- mysql索引最左匹配原则的理解详解数据库
- MySQL: 时间迫在眉睫(mysql时间最近)
- 恢复恢复MySQL数据库中丢失的.frm文件(mysql.frm)
- MySQL建库脚本:构建完美数据库(mysql建库脚本)
- MySQL查询运行进程(mysql查询执行进程)
- MySQL查看数据库权限的方法(mysql 查看库权限)
- 指南:如何查询MySQL数据库版本(查mysql 版本)
- MySQL 数据库的倒入指南(mysql倒入)
- MySQL操作指令ps ef在数据库管理中的应用(mysql中ps -ef)
- MySQL操作开启与关闭(c mysql打开关闭)
- 如何利用MySQL数据库提升效率(c mysql库使用)
- Atlas快速连接MySQL数据库(atlas连接mysql)
- 深入了解MySQL函数的使用方法(mysql中函数用法)
- MySQL存储引擎比较选择合适的引擎提高数据库性能和效率(mysql不同的存储引擎)
- MySQL使用双引号代替单引号存储字符串(mysql 不使用单引号)