資料庫字元集與定序(Character Set And Collation)

來源:互聯網
上載者:User

標籤:技術   font   設定   指定   weight   order   character   from   code   

  資料庫需要適應各種語言和字元就需要支援不同的字元集Character Set),每種字元集也有各自的定序Collation)。

(注意:Collation原意為校對,校勘,但是根據實際使用情境,覺得還是翻譯為定序比較合適)

  在絕大部分情形中,使用何種字元集和定序決定於伺服器,資料庫和表的層級,一般SQL操作不必關心這些。

以下操作均以MySQL為例。

 

查看資料庫支援的字元集與定序

查看字元集:

SHOW CHARACTER SET;

部分結果:

查看定序:(尾碼"_cs"或者"_ci"意思是區分大小寫和不區分大小寫(Case Sensitive & Case Insensitve))

SHOW COLLATION;

部分結果:

 

使用資料庫支援的字元集與定序

  通常系統管理在安裝時定義一個預設的字元集和定序,

也可以在建立資料庫時對資料庫範圍,建表時對錶層級,甚至列層級設定字元集和定序。

 

> 為建資料庫時指定字元集和定序

為了確定所用的字元集和定序,可以使用下列語句:

SHOW VARIABLES LIKE ‘character%‘;SHOW VARIABLES LIKE ‘collation%‘;

 

> 建表時指定表的字元集和定序

1 CREATE TABLE mytable (2     column1 INT,3     column2 VARCHAR (10)4 ) DEFAULT CHARACTER SET hebrew5 COLLATE hebrew_general_ci;

不指定字元集和定序時使用資料庫預設設定,若指定了字元集沒有指定定序,則使用字元集的預設定序。

 

>建表時指定表和列的字元集和定序

CREATE TABLE mytable (    column1 INT,    column2 VARCHAR (10),    column3 VARCHAR (10) CHARACTER SET latin1         COLLATE latin1_general_ci) DEFAULT CHARACTER SET hebrew     COLLATE hebrew_general_ci;

 

>自訂查詢語句中ORDER BY的定序

SELECT * FROM `mytable` ORDER BY `column1` COLLATE latin1_general_cs;

這裡的使用不限於ORDER BY,還有GROUP BY,聚集合函式等。

 

參考文章:

【1】MySQL比知必會 2009年1月第一1版 第27章 “全球化與本地化”

資料庫字元集與定序(Character Set And Collation)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.