史上最简单的 MySQL 教程(八)「校对集问题」

本文深入探讨MySQL数据库中校对集的作用与应用,通过对比_bin和_ci校对集,展示如何影响数据排序与大小写敏感性,强调校对集设置的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

校对集问题

校对集,其实就是数据的比较方式。

校对集,共有三种,分别为:

_bin:binary,二进制比较,区分大小写;

_cs:case sensitive,大小写敏感,区分大小写;

_ci:case insensitive,大小写不敏感,不区分大小写。

查看(全部)校对集 –> 基本语法:show collation;



如上图所示,MySQL 数据库支持百多种校对集。

接下来,咱们在一起看看校对集的应用,因为只有当数据进行比较的时候,校对集才会生效。在这里,咱们用utf8_bin_ci两种校对集进行比较:
 

[plain] view plaincopy

  1. -- 创建两张使用不同校对集的表  
  2. create table my_collate_bin(  
  3. name char(10)  
  4. )charset utf8 collate utf8_bin;  
  5.   
  6. create table my_collate_ci(  
  7. name char(10)  
  8. )charset utf8 collate utf8_general_ci;  





如上图所示,咱们创建了两张表,分别为my_collate_binmy_collate_ci,其校对集分别为_bin_ci. 然后,分别向这两张表中添加数据:
 

[plain] view plaincopy

  1. -- 向表中添加数据  
  2. insert into my_collate_bin values ('a'),('A'),('B'),('b');  
  3. insert into my_collate_ci values ('a'),('A'),('B'),('b');  



再分别查看两张表中的数据:
 

[plain] view plaincopy

  1. -- 查看表中的数据  
  2. select * from my_collate_bin;  
  3. select * from my_collate_ci;  





下面,咱们根据表中的某个字段(在这里my_collate_binmy_collate_ci都仅有一个字段)进行排序,其基本语法为:

order by + 字段名 + [asc/desc];

其中,asc表示升序,desc表示降序,默认为升序。执行如下 SQL 语句:
 

[plain] view plaincopy

  1. -- 排序比较  
  2. select * from my_collate_bin order by name;  
  3. select * from my_collate_ci order by name;  





如上图所示,显然校对集生效啦!

此外,咱们需要特别注意的是: 校对集必须在没有数据之前声明好,如果有了数据之后,再进行校对集的修改,则修改无效。

温馨提示:用符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值