创建数据库时排序规则utf8_general_ci与utf8_bin的区别
在MySQL数据库中,字符集(如utf8
)定义了字符如何存储,而排序规则(Collation)则定义了字符如何比较、排序和区分大小写。utf8_general_ci
和utf8_bin
是两种常用的UTF-8字符集下的排序规则,它们之间的主要区别如下:
utf8_general_ci
- 全称:
case-insensitive
,意为“不区分大小写”。 - 特点:
- 在比较字符串时,
utf8_general_ci
会忽略字母的大小写。例如,“A”和“a”会被视为相同。 - 此外,它还使用了一些语言特有的比较规则,比如在某些语言中,重音符号可能会被忽略,使得带有重音的字母和不带重音的字母被视为相等。
- 这是最常用的UTF-8排序规则,因为它适合大多数不强调精确文本比较的应用场景,且性能较好。
- 在比较字符串时,
utf8_bin
- 全称:
binary
,意为“二进制”,即严格按照字节值进行比较。 - 特点:
utf8_bin
在比较时会区分大小写,并且完全按照字节的二进制值进行比较,没有任何语言特定的规则。- 例如,“A”和“a”会被视为不同的字符,因为它们的字节值不同。
- 这种排序规则适用于需要精确匹配的场景,比如密码存储、唯一标识符或者程序需要区分大小写的情况。
应用场景选择
- 如果你的应用不关心大小写敏感性,且需要较好的性能,或者处理的是多语言数据,推荐使用
utf8_general_ci
。 - 如果你的应用需要精确的字符比较,比如区分大小写,或者在进行安全相关的比较(如密码验证),则应选择
utf8_bin
。
总的来说,选择哪种排序规则取决于你的具体需求,尤其是在考虑查询性能和数据准确性之间的平衡。
创建数据库时排序规则utf8_general_ci与utf8_bin的区别的更多相关文章
- phpMyAdmin中mysql的创建数据库时的编码的问题
转载自新浪博客 Sean 一. mysql中utf8编码的utf8_bin,utf8_general_cs,utf8_general_ci的区别 utf8_general_ci 不区分大小写,这 ...
- Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题
Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...
- [转]LocalDB数据库修改排序规则,修复汉字变问号
VS中新增的轻量级数据库LocalDB,有个这个,开发人员就不必再安装庞大的SQL server了,可以方便地测试运行小型项目:既然是轻量级数据库,它抛弃了庞大的身躯,功能上当然也会受到局限,其中之一 ...
- 更改SQL Server 数据库的排序规则
更改数据库的排序规则,SQL提示 5030 的错误,错误信息如下: The database could not be exclusively locked to perform the operat ...
- ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开ORACLE企业管理器(EM)的解决办法
环境:win7 64位系统. 软件:oracle11g database ,oracle 10g client . 问题描述:在win7 64位系统下安装oracle11g,在创建数据库时,进度到85 ...
- 修改sqlserver2008数据库的排序规则 (转)
修改sqlserver2008数据库的排序规则 (转) 修改SQL server 2008服务器排序规则 SQL Server 2008安装好后,发现服务器排序规则不对,又不想重装SQL S ...
- ORACLE创建数据库时无法创建目录
ORACLE创建数据库时无法创建目录,如图所示信息 原因:没有创建写入的权限 解决:修改文件夹权限即可 F:\oracle\product\10.2.0\db_1\cfgtoollogs\dbca 增 ...
- LocalDB数据库修改排序规则,修复汉字变问号
VS中新增的轻量级数据库LocalDB,有个这个,开发人员就不必再安装庞大的SQL server了,可以方便地测试运行小型项目:既然是轻量级数据库,它抛弃了庞大的身躯,功能上当然也会受到局限,其中之一 ...
- MSSQL 修改数据库的排序规则
1.修改数据库排序规则 ALTER DATABASE [CHARACTER] COLLATE Chinese_PRC_CI_AS ; 2.修改表中列的排序规则 如果下列其中之一当前正在引用一个列,则无 ...
- MSSQL2005 修改数据库的排序规则
1.修改数据库排序规则ALTER DATABASE [DataBaseName] COLLATE Chinese_PRC_CI_AS ; 2.修改表中列的排序规则 如果下列其中之一当前正在引用一个列, ...
随机推荐
- LLM实战:LLM微调加速神器-Unsloth + Qwen1.5
1. 背景 上一篇介绍了基于训练加速框架Unsloth,微调训练Llama3的显卡资源占用及训练时间对比. 近期Unsloth新增了Qwen1.5的模型适配,因此本qiang~马不停蹄地又进行了一次实 ...
- 解决”将公司Linux服务器上的脚本导出到windows上打开串行的“问题
目录 一.前期准备 二.回车转换 一.前期准备 1.在linux服务器上写一个简单的脚本. [root@node5 ~]# vim linux脚本.sh [root@node5 ~]# cat lin ...
- docker构建镜像——Dockerfile
from RUN CMD EXPOSE LABEL ENV COPY 格式 COPY [--chown=<用户>:<组>]<源>...<目的> COPY ...
- jquery的树状菜单
<body> <ul> <li>一级菜单 <ol> <li ...
- LeetCode 675. Cut Off Trees for Golf Event 为高尔夫比赛砍树 (C++/Java)
题目: You are asked to cut off trees in a forest for a golf event. The forest is represented as a non- ...
- java springboot 指定运行端口
java springboot 指定运行端口 方法1: 修改源代码里的"\src\main\resources\application.properties" 文件,增加或修改 s ...
- 华擎B365 BIOS 设置来电启动,来电自启,来电后开机
开机 DEL 进入BIOS. F6 进入高级模式. 在Advanced \ Chipset Configuration ,拉到底,找到 Restore on AC/Power Loss,设置为 Pow ...
- Vue学习:4.v-model使用
第一节算是对v-model的粗略了解,仅仅是将input的输入与Vue 实例的数据之间双向绑定.这一节将更详细的了解v-model在不同表单元素中的使用. v-model实例:找对象 实现功能: 使用 ...
- Vue 打包相关
Vue 打包相关 vue-cli-service build# 用法:vue-cli-service build [options] [entry|pattern] 选项: --mode 指定环境模式 ...
- 阿里也出手了!Spring CloudAlibaba AI问世了
写在前面 在之前的文章中我们有介绍过SpringAI这个项目.SpringAI 是Spring 官方社区项目,旨在简化 Java AI 应用程序开发, 让 Java 开发者想使用 Spring 开发普 ...