MySQL中的排序規則
在新建MySQL資料庫或表的時候經常會選擇字符集和排序規則。資料庫用的字符集大家都知道是怎麼回事,那排序規則是什麼呢?
排序規則:是指對指定字符集下不同字元的比較規則。其特徵有以下幾點:
1、 兩個不同的字符集不能有相同的排序規則
2、 兩個字符集有一個預設的排序規則
3、 有一些常用的命名規則。如_ci結尾表示大小寫不敏感(caseinsensitive),_cs表示大小寫敏感(case sensitive),_bin表示二進位制的比較(binary).
在MySQL資料庫中,可以使用show collation來檢視支援的各種排序呢規則,我用的是MySQL 5.6.12-log版本的資料庫,支援219種排序規則。
為了易於資料擴充套件,一般我們建立資料庫都會選擇utf8字符集,那麼utf8字符集的預設排序規則是什麼呢?我們可以通過“show charset like 'utf8%' ”進行檢視。
Utf8的預設排序規則是“utf8_general_ci”,上文已經說了以“_ci”結尾的表示大小寫不敏感,我們可以來測試一下。
use test;
drop table if EXISTS test;
create table test(
a varchar(1) not null
)COLLATE utf8_general_ci;
insert into test select 'a';
insert into test select 'A';
select * from test where a ='a';
通過執行結果可以看到,使用這種排序規則確實是不區分大小寫的。
![](https://i.iter01.com/images/a70f07a954c056db4b44da04e0ff282701b058d00e096bd69b2a7ec383592861.png)
大小寫敏感的需求還是要是應用程式的需求而定的。
相關文章
- 【MySQL】批次修改排序規則MySql排序
- 關於mysql字符集及排序規則設定MySql排序
- Mysql-基本的規則與規範MySql
- MySQL中的排序MySql排序
- SQLServer的排序規則(字符集編碼)SQLServer排序
- MySQL觸發器的使用規則MySql觸發器
- 聊聊MySQL的加鎖規則《死磕MySQL系列 十五》MySql
- Mysql中的雙路排序和單路排序MySql排序
- JS中this的繫結規則JS
- react中的 Hook 使用規則ReactHook
- JavaScript中this的繫結規則JavaScript
- MySQL索引選擇及規則整理MySql索引
- ESLint規則中的JavaScript知識EsLintJavaScript
- MySQL鎖(四)行鎖的加鎖規則和案例MySql
- JS中this的4種繫結規則JS
- laravel8中的路由規則更改Laravel路由
- Go 應用中 package main 的規則GoPackageAI
- 2021-2-18:請你說說MySQL的字符集與排序規則對開發有哪些影響?MySql排序
- 資料庫建庫時字符集和排序規則的選擇資料庫排序
- ETL中如何自定義規則
- 對線面試官:Mysql組合索引的生效規則面試MySql索引
- Java中動態規則的實現方式Java
- 數字化轉型中的規則引擎
- Android中的Intent Filter匹配規則介紹AndroidIntentFilter
- MySQL 中的鎖有哪些型別,MySQL 中加鎖的原則MySql型別
- 外掛後臺表單無法按照所寫規則排序排序
- 20190116-將特定數字插入一個已經排序好的序列並且不改變其排序規則排序
- 解決equal to 運算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之間的排序規則衝突排序
- MySQL 優化三(優化規則)(高階篇)MySql優化
- 規則
- 第2-4-4章 規則引擎Drools規則屬性-業務規則管理系統-元件化-中臺元件化
- 從根上理解 MySQL 的字符集和比較規則MySql
- 如何在 Linux 中配置 firewalld 規則Linux
- .NET 6中使用Jint的JavaScript規則引擎JavaScript
- [提問交流]模型管理中的欄位【驗證規則】和【自動完成規則】怎麼用?模型
- MySQL字符集和校對規則(character set & collation)MySql
- Mysql中聯合索引的最左匹配原則MySql索引
- SQL稽核 | 這裡有 MySQL/Oracle 最常用的 SQL 開發規則MySqlOracle
- 正則匹配規則2