创建数据库时排序规则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.修改表中列的排序规则 如果下列其中之一当前正在引用一个列, ...
随机推荐
- windows下IPv6通信(C++、MFC)
Server #include <stdio.h> #include <Ws2tcpip.h> #include <winsock2.h> #define HELL ...
- Win11安装VMware Workstation Pro,Centos,Xshell,Xftp(Linux学习需要)
注意:1.win11不能安装太低版本的VMware Workstation Pro,否则启动linux会出现蓝屏 2.win11是默认没有开虚拟机平台支持的,所以同时也要开启,否则也会出现蓝屏. ...
- 题解 P2497 [SDOI2012]基站建设
解题思路 CDQ优化DP 下文中 \(pos_i\) 表示编号为 \(i\) 的位置或者说坐标. 暴力 DP 转移方程是 \(f_i=\min\limits_{1\le j<i}\{f_j+\d ...
- WEB攻防-代码特性
WEB攻防-代码特性 目录 WEB攻防-代码特性 ASP 如何判断网站搭建是否是asp ASP常见的搭配组合 ASP语言的漏洞点(从哪一方面入手) ASP-数据库-MDB下载 ASP-数据库-ASP后 ...
- map数据类型
MAP数据类型是一个类似于对象的数据类型 大型项目中会经常使用 通过 构造函数来定义MAP数据类型 con ...
- ETL工具-nifi干货系列 第十一讲 处理器UpdateAttribute使用教程
1.在这里我们重温下nifi里面一个重要的概念FlowFile,如下图所示: FlowFile:FlowFile代表NiFi中的单个数据.nifi数据流中流动的就是flowfile,每个nifi处理器 ...
- 前台往后台传id
js页面var stuid;$(function () { var request = { QueryString : function(val) { var uri = window.locatio ...
- 报错解决 :Resolved [org.springframework.web.bind.MissingServletRequestParameterException
报错解决 :Resolved [org.springframework.web.bind.MissingServletRequestParameterException 解决方法:RequestPar ...
- CAT监控指标
CAT监控指标 CAT 是基于 Java 开发的实时应用监控平台.官方文档:https://github.com/dianping/cat CAT提供以下几种报表:Transaction报表 一段代码 ...
- http请求方式-CloseableHttpClient
http请求方式-CloseableHttpClient import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObjec ...