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';
通過執行結果可以看到,使用這種排序規則確實是不區分大小寫的。
大小寫敏感的需求還是要是應用程式的需求而定的。
相關文章
- SERVER的排序規則Server排序
- MySql Order By 多個欄位 排序規則MySql排序
- SQL Server排序規則SQLServer排序
- 關於mysql字符集及排序規則設定MySql排序
- MySQL中的排序MySql排序
- List資料多重規則排序排序
- Mysql中的排序規則utf8_unicode_ci、utf8_general_ci的區別總結MySql排序Unicode
- Mysql-基本的規則與規範MySql
- SQLServer的排序規則(字符集編碼)SQLServer排序
- 更改系統資料庫的排序規則資料庫排序
- sqlserver2000排序規則SQLServer排序
- Oacle中如果按照漢字來排序(order by), 是什麼規則 ?排序
- MySQL觸發器的使用規則MySql觸發器
- 從排序原理到MYSQL中的排序方式排序MySql
- JS中this的繫結規則JS
- JavaScript中this的繫結規則JavaScript
- web前端中的命名規則Web前端
- JS中的"=="轉換規則JS
- Sql Server 聯合查詢的排序規則衝突SQLServer排序
- mysql的字符集校對規則MySql
- 聊聊MySQL的加鎖規則《死磕MySQL系列 十五》MySql
- .htaccess中的apacherewrite規則詳解Apache
- mysql 基於規則的執行計劃MySql
- 【java規則引擎】規則引擎RuleBase中利用觀察者模式Java模式
- 【勝通】mysql連線通道中的字符集和校驗規則MySql
- SSIS 資料庫排序規則衝突問題資料庫排序
- MySQL索引選擇及規則整理MySql索引
- JS中this的4種繫結規則JS
- ESLint規則中的JavaScript知識EsLintJavaScript
- Go 應用中 package main 的規則GoPackageAI
- laravel8中的路由規則更改Laravel路由
- mysql 基於規則的執行計劃(二)MySql
- jQuery中$符號規則(7)jQuery符號
- ETL中如何自定義規則
- 【MySQL】資料庫字元校對規則MySql資料庫字元
- Oracle排序的時候在PGA中的分割原則是 ?Oracle排序
- Java中動態規則的實現方式Java
- Canvas中的非零環繞規則原理Canvas