成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server與MySQL中排序規(guī)則與字符集相關(guān)知識的一點(diǎn)總結(jié)

數(shù)據(jù)庫 SQL Server MySQL
字符集是針對不同語言的字符編碼的集合,,不同的字符集使用不同的規(guī)則給字符進(jìn)行編碼。排序規(guī)則只不過是指定了存儲的數(shù)據(jù)的排序(比較)規(guī)則而已,換句話說就是,排序規(guī)則中已經(jīng)包含了字符集的信息。

字符集&&排序規(guī)則

字符集是針對不同語言的字符編碼的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的規(guī)則給字符進(jìn)行編碼。排序規(guī)則則是在特定字符集的基礎(chǔ)上特定的字符排序方式,排序規(guī)則是基于字符集的,是對字符集在排序方式維度上的一個劃分。

排序規(guī)則是依賴于字符集的,一種字符集可以有多種排序規(guī)則,但是一種排序規(guī)則只能基于某一種字符集的,比如中文字符集,也即漢字,可以按照“拼音排序”、“按姓氏筆劃排序”等等。而對于英語,就沒有“拼音”和“姓氏筆畫”,但是可以分為區(qū)分大小寫、不區(qū)分大小寫等等,而其他語言下面也有自己特定的排序規(guī)則。

在SQL Server中,任何一種字符集的數(shù)據(jù)庫,都能存儲任何一種語言的字符。

并不是說拉丁(Latin)字符集的數(shù)據(jù)就存儲不了中文,中文(Chinese)字符集的數(shù)據(jù)庫就存儲不了蒙古語(只要操作系統(tǒng)本身支持)。sqlserver中,不管哪種字符集(實(shí)際上是排序規(guī)則)的數(shù)據(jù)庫(或者字段),都是可以使用nvarchar(或者nchar),而nvarchar(或者nchar)是可以存儲任意非Unicode字符的。至于排序規(guī)則,那是根據(jù)不同的字符集所支持的不同的排序規(guī)則人為定義的。

SQL Server中的字符集和排序規(guī)則

排序規(guī)則只不過是指定了存儲的數(shù)據(jù)的排序(比較)規(guī)則而已,換句話說就是,排序規(guī)則中已經(jīng)包含了字符集的信息。因此在sqlserver中 ,不需要關(guān)心字符集,只需要關(guān)心排序規(guī)則,sqlserver中在創(chuàng)建只能指定排序規(guī)則(不能直接指定字符集),如截圖,只能指定collation,也就是字符集

 

在MySQL中的字符集和排序規(guī)則

上面說了,排序規(guī)則是依賴于字符集的,一種字符集可以有多種排序規(guī)則,但是一種排序規(guī)則只能基于某一種字符集的。如下是MySQL中排序規(guī)則和字符集的對應(yīng)關(guān)系。

 

MySQL的建庫語法比較扯,可以指定字符集和排序規(guī)則,如果指定的排序規(guī)則在字符集的下面,則是沒有問題的,如果指定的排序規(guī)則不在字符集下面,則會報錯。

比如下面這一句,排序規(guī)則utf8_bin是屬于字符集utf8下面的一種排序規(guī)則,這個語句執(zhí)行是沒有問題的

 

  1. create database test_database2 charset utf8 collate utf8_bin; 

再比如下面這一句,排序規(guī)則latin1_bin不是屬于字符集utf8下面的一種排序規(guī)則,這個語句執(zhí)行是會報錯的

 

  1. create database test_database2 charset utf8 collate latin1_bin; 

 

以上是字符集和排序規(guī)則在sqlserver和MySQL中的一些基本應(yīng)用,再說說常用的排序規(guī)則的區(qū)別

***_genera_ci & ***_genera_cs & ***_bin 常見排序規(guī)則的特點(diǎn)

以上是某種字符集下常用的三種排序規(guī)則,下面以常見的utf8為例說明。

  • utf8_genera_ci不區(qū)分大小寫,ci為case insensitive的縮寫,即大小寫不敏感,
  • utf8_general_cs區(qū)分大小寫,cs為case sensitive的縮寫,即大小寫敏感,但是目前MySQL版本中已經(jīng)不支持類似于***_genera_cs的排序規(guī)則,直接使用utf8_bin替代。
  • utf8_bin將字符串中的每一個字符用二進(jìn)制數(shù)據(jù)存儲,區(qū)分大小寫。

那么,同樣是區(qū)分大小寫,utf8_general_cs和utf8_bin有什么區(qū)別?

  • cs為case sensitive的縮寫,即大小寫敏感;bin的意思是二進(jìn)制,也就是二進(jìn)制編碼比較。
  • utf8_general_cs排序規(guī)則下,即便是區(qū)分了大小寫,但是某些西歐的字符和拉丁字符是不區(qū)分的,比如ä=a,但是有時并不需要ä=a,所以才有utf8_bin
  • utf8_bin的特點(diǎn)在于使用字符的二進(jìn)制的編碼進(jìn)行運(yùn)算,任何不同的二進(jìn)制編碼都是不同的,因此在utf8_bin排序規(guī)則下:ä<>a

在utf8_genera_ci的情況下A=a,ä=a

 

 

在utf8_bin排序規(guī)則下,A<>a,ä<>a

 

所以要想?yún)^(qū)分大小寫,有沒有特殊需求,就直接使用utf8_bin(實(shí)際上***_general_cs在MySQL中本身就不支持,在SQL Server中支持)。以上字符集的特點(diǎn)以及使用情況在SQL Server中表現(xiàn)為類似。 

責(zé)任編輯:龐桂玉 來源: 數(shù)據(jù)分析與開發(fā)
相關(guān)推薦

2010-06-02 17:59:19

MySQL字符集

2009-07-01 00:23:40

MySQL字符集亂碼

2011-08-25 15:19:25

SQL Server 排序規(guī)則

2010-04-30 10:16:22

Oracle字符集

2010-05-10 11:50:33

Oracle數(shù)據(jù)庫字符

2010-05-06 14:40:59

Oracle字符集

2010-06-11 16:46:20

MySQL5

2010-11-11 14:14:52

SQL Server排

2010-11-11 14:05:17

SQL Server排

2010-07-13 14:42:02

SQL Server

2010-06-07 16:09:58

MySQL字符集

2020-12-16 06:34:16

MySQL字符集服務(wù)器

2021-03-23 18:21:30

MySQL數(shù)據(jù)庫字符集

2020-10-15 06:56:51

MySQL排序

2012-03-27 08:49:19

Json

2021-03-04 22:02:18

SQL Serve數(shù)據(jù)庫架構(gòu)

2010-05-20 15:29:43

優(yōu)化IIS

2010-04-27 13:21:58

Oracle數(shù)據(jù)字符集

2010-11-23 17:04:54

MySQL字符集

2011-05-16 13:15:55

MySQL存儲字符集
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产成人免费视频网站高清观看视频 | 成人免费视频久久 | 国产精品一区久久久久 | 国产精品欧美精品 | 欧美国产日本一区 | 超碰97免费观看 | 精品欧美激情在线观看 | 台湾佬久久 | 亚洲系列第一页 | 亚洲精品电影在线观看 | 亚洲精品欧美 | 精品毛片 | 欧美一区中文字幕 | 一区二区三区国产精品 | 午夜av一区二区 | 免费观看一级黄色录像 | 一区免费观看 | 一二区视频 | 国产精品99久久久久久大便 | 麻豆国产精品777777在线 | 久久久久久中文字幕 | 日日骚网 | 高清国产午夜精品久久久久久 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲欧美在线观看 | 欧美日韩久久久 | 精品福利一区 | 亚洲精品日韩综合观看成人91 | 欧美成人精品一区二区男人看 | 免费能直接在线观看黄的视频 | 亚洲一区在线播放 | 国产免费一区二区三区最新6 | 精品一区二区三区91 | 成人免费观看视频 | 久草精品视频 | 国产成人精品一区二区三区网站观看 | wwwxxx国产| 日本a∨视频 | 国产免费自拍 | 亚洲二区在线 | 成人午夜免费网站 |