下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > MS_SQL > SQL開發知識:SQLserver排序規則基本概念探索

          SQL開發知識:SQLserver排序規則基本概念探索

          時間:2024-03-09 11:51作者:下載吧人氣:23

          前言

          昨天在論壇里面遇到一個比較特殊的場景。他的公司做的是海外的項目,中英再加一個當地語言,要兼容三種文字啊.
          那有沒有什么字符集或排序規則,能兼容所有文字的?對于海外項目很痛苦啊 .Oracle 有AL32UTF8 ,MySQL 有UTF8 ,那SQL Server 有嗎?

          基本概念

          ASCII編碼

          在計算機發明后不久,計算機只在美國用。他們創造出了ASCII編碼,來表示:空格、標點符號、數字、大小寫字母,控制符等。可以完整的表達所有的英文。但是也只支持英文。

          GBK編碼

          后來隨著計算機的流行,中國人民通過對 ASCII 編碼的中文擴充改造,產生了 GB2312 編碼,可以表示6000多個常用漢字。漢字實在是太多了,包括繁體和各種字符,于是產生了

           GBK 編碼,它包括了 GB2312 中的編碼,同時擴充了很多。中國是個多民族國家,各個民族幾乎都有自己獨立的語言系統,為了表示那些字符,繼續把 GBK 編碼擴充為 GB18030 編碼。

          每個國家都像中國一樣,把自己的語言編碼,于是出現了各種各樣的編碼,如果你不安裝相應的編碼,就無法解釋相應編碼想表達的內容。

          終于,有個叫 ISO 的組織看不下去了。他們一起創造了一種編碼 UNICODE ,這種編碼非常大,大到可以容納世界上任何一個文字和標志。所以只要電腦上有 UNICODE 這種編碼系統,無論是全球哪種文字,只需要保存文件的時候,保存成 UNICODE 編碼就可以被其他電腦正常解釋。

          UTF-8 AND UTF-16

          UNICODE 在網絡傳輸中,出現了兩個標準 UTF-8 和 UTF-16,分別每次傳輸 8個位(2個字節)和 16個位(4個字節)。于是就會有人產生疑問,UTF-8 既然能保存那么多文字、符號,為什么國內還有這么多使用 GBK 等編碼的人?因為 UTF-8 等編碼體積比較大,占電腦空間比較多,如果面向的使用人群絕大部分都是中國人,用GBK 等編碼也可以。

          總的來說:

          Unicode 是「字符集」

          UTF-8 是「編碼規則」

          其中:

          字符集:為每一個「字符」分配一個唯一的 ID(學名為碼位 / 碼點 / Code Point)
          編碼規則:將「碼位」轉換為字節序列的規則(編碼/解碼 可以理解為 加密/解密 的過程)

          排序規則

          比如我們常用的:Chinese_PRC_CI_AS ,前面部分是Chinese_PRC 這個部分表示支持的中國大陸的字符集。但是這里有個特別需要注意的事項,劃重點,在很多博客上面會有這樣的描述:

          大陸簡體字UNICODE的排序規則

          這里有很大的歧義。并不是說這個排序規則對所有字符都是有的Unicode。這樣說并不準確。

          排序規則的后半部份即后綴 含義:

            _BIN 二進制排序
            _CI(CS) 是否區分大小寫,CI不區分,CS區分(case-insensitive/case-sensitive)
            _AI(AS) 是否區分重音,AI不區分,AS區分(accent-insensitive/accent-sensitive)
            _KI(KS) 是否區分假名類型,KI不區分,KS區分(kanatype-insensitive/kanatype-sensitive)
            _WI(WS) 是否區分寬度 WI不區分,WS區分(width-insensitive/width-sensitive) 

          區分大小寫:如果想讓比較將大寫字母和小寫字母視為不等,請選擇該選項。

          區分重音:如果想讓比較將重音和非重音字母視為不等,請選擇該選項。如果選擇該選項,

          比較還將重音不同的字母視為不等。

          區分假名:如果想讓比較將片假名和平假名日語音節視為不等,請選擇該選項。

          區分寬度:如果想讓比較將半角字符和全角字符視為不等,請選擇該選項

          Unicode

          SQL SERVER 是支持Unicode的。對應的字符類型是nchar,nvarchar.

          總結

          所以,SQL SERVER 沒有這樣的和ORACLE UTF-8類似的排序規則。。如果是三種文字,建議把所有的字符類型定義為nchar,nvarchar 。

          前言

          昨天在論壇里面遇到一個比較特殊的場景。他的公司做的是海外的項目,中英再加一個當地語言,要兼容三種文字啊.
          那有沒有什么字符集或排序規則,能兼容所有文字的?對于海外項目很痛苦啊 .Oracle 有AL32UTF8 ,MySQL 有UTF8 ,那SQL Server 有嗎?

          基本概念

          ASCII編碼

          在計算機發明后不久,計算機只在美國用。他們創造出了ASCII編碼,來表示:空格、標點符號、數字、大小寫字母,控制符等。可以完整的表達所有的英文。但是也只支持英文。

          GBK編碼

          后來隨著計算機的流行,中國人民通過對 ASCII 編碼的中文擴充改造,產生了 GB2312 編碼,可以表示6000多個常用漢字。漢字實在是太多了,包括繁體和各種字符,于是產生了

           GBK 編碼,它包括了 GB2312 中的編碼,同時擴充了很多。中國是個多民族國家,各個民族幾乎都有自己獨立的語言系統,為了表示那些字符,繼續把 GBK 編碼擴充為 GB18030 編碼。

          每個國家都像中國一樣,把自己的語言編碼,于是出現了各種各樣的編碼,如果你不安裝相應的編碼,就無法解釋相應編碼想表達的內容。

          終于,有個叫 ISO 的組織看不下去了。他們一起創造了一種編碼 UNICODE ,這種編碼非常大,大到可以容納世界上任何一個文字和標志。所以只要電腦上有 UNICODE 這種編碼系統,無論是全球哪種文字,只需要保存文件的時候,保存成 UNICODE 編碼就可以被其他電腦正常解釋。

          UTF-8 AND UTF-16

          UNICODE 在網絡傳輸中,出現了兩個標準 UTF-8 和 UTF-16,分別每次傳輸 8個位(2個字節)和 16個位(4個字節)。于是就會有人產生疑問,UTF-8 既然能保存那么多文字、符號,為什么國內還有這么多使用 GBK 等編碼的人?因為 UTF-8 等編碼體積比較大,占電腦空間比較多,如果面向的使用人群絕大部分都是中國人,用GBK 等編碼也可以。

          總的來說:

          Unicode 是「字符集」

          UTF-8 是「編碼規則」

          其中:

          字符集:為每一個「字符」分配一個唯一的 ID(學名為碼位 / 碼點 / Code Point)
          編碼規則:將「碼位」轉換為字節序列的規則(編碼/解碼 可以理解為 加密/解密 的過程)

          排序規則

          比如我們常用的:Chinese_PRC_CI_AS ,前面部分是Chinese_PRC 這個部分表示支持的中國大陸的字符集。但是這里有個特別需要注意的事項,劃重點,在很多博客上面會有這樣的描述:

          大陸簡體字UNICODE的排序規則

          這里有很大的歧義。并不是說這個排序規則對所有字符都是有的Unicode。這樣說并不準確。

          排序規則的后半部份即后綴 含義:

            _BIN 二進制排序
            _CI(CS) 是否區分大小寫,CI不區分,CS區分(case-insensitive/case-sensitive)
            _AI(AS) 是否區分重音,AI不區分,AS區分(accent-insensitive/accent-sensitive)
            _KI(KS) 是否區分假名類型,KI不區分,KS區分(kanatype-insensitive/kanatype-sensitive)
            _WI(WS) 是否區分寬度 WI不區分,WS區分(width-insensitive/width-sensitive) 

          區分大小寫:如果想讓比較將大寫字母和小寫字母視為不等,請選擇該選項。

          區分重音:如果想讓比較將重音和非重音字母視為不等,請選擇該選項。如果選擇該選項,

          比較還將重音不同的字母視為不等。

          區分假名:如果想讓比較將片假名和平假名日語音節視為不等,請選擇該選項。

          區分寬度:如果想讓比較將半角字符和全角字符視為不等,請選擇該選項

          Unicode

          SQL SERVER 是支持Unicode的。對應的字符類型是nchar,nvarchar.

          總結

          所以,SQL SERVER 沒有這樣的和ORACLE UTF-8類似的排序規則。。如果是三種文字,建議把所有的字符類型定義為nchar,nvarchar 。

          以上就是本文關于SQL開發知識:SQL開發知識:SQL開發知識:SQLserver排序規則基本概念探索的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站:sqlserver:查詢鎖住sql以及解鎖方法等,有什么問題可以隨時留言,小編會及時回復大家,在此也希望朋友們對本站多多支持!

          標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 制服中文字幕一区二区| 在线精品动漫一区二区无广告| 福利片福利一区二区三区| 亚洲一区二区三区在线观看精品中文| 色偷偷久久一区二区三区| 国产一区视频在线免费观看| 在线播放国产一区二区三区| 国精产品一区一区三区免费视频| 国产乱码精品一区二区三区四川人| 精品一区二区在线观看| 国产精品亚洲不卡一区二区三区| 无码人妻精一区二区三区| 亚洲国产韩国一区二区| 精品一区高潮喷吹在线播放| 无码一区二区三区| 中文字幕精品一区二区精品| 无码AV一区二区三区无码| 国精产品999一区二区三区有限| 国内精品视频一区二区八戒| 美女AV一区二区三区| 亚洲福利视频一区二区三区| 日本不卡一区二区视频a| 国产色精品vr一区区三区| 日本精品一区二区三区视频| 久久青青草原一区二区| 无码一区二区三区在线| 成人精品视频一区二区三区尤物| 精品少妇人妻AV一区二区三区 | 亚洲一区二区三区在线观看精品中文| 国产aⅴ一区二区| 亚洲视频一区二区| 亚洲AV综合色区无码一区| 久久国产一区二区| 国产韩国精品一区二区三区久久| 国产精品日韩欧美一区二区三区| 日韩免费无码一区二区视频| 国产成人精品a视频一区| 国产高清视频一区三区| 亚洲一区二区三区深夜天堂| 精品国产福利在线观看一区 | 免费一区二区三区在线视频|