照合順序と sql azure

17
2010/11/25 おだ

Upload: oda-shinsuke

Post on 09-Jul-2015

2.010 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: 照合順序と Sql azure

2010/11/25 おだ

Page 2: 照合順序と Sql azure

自己紹介

照合順序ってなに?

SQL Azure では

まとめ

Page 3: 照合順序と Sql azure

お だ

大阪で 開発者 してます。

個人的に興味のある技術等を blog で取り上げてます。

http:/d.hatena.ne.jp/odashinsuke/

SQL World/わんくま同盟/JGGUG の勉強会に参加してます

Page 4: 照合順序と Sql azure
Page 5: 照合順序と Sql azure

照合順序は、特定の言語とロケールの基準に基づいて、文字データの文字列の並べ替え方法および比較方法に関する規則を指定します。

http://msdn.microsoft.com/ja-jp/library/ms187582.aspx

たとえば、昇順のORDER BY 句では、英語を話す人は文字列 'Chiapas' が 'Colima' より前に並べ替えられると予測

するでしょう。しかし、メキシコ在住のスペイン語を話す人であれば、'Ch' で始まる単語が 'C' で始まる単語の末尾に並べ替えられることを予測するかもしれません。

スペイン語わかんないから例えられても…( ゚д゚)ポカーン

Page 6: 照合順序と Sql azure

ようは「文字データ」の

並び替え方法

比較方法を決めるルールって事!

Page 7: 照合順序と Sql azure

非Unicode 型① char 型

② varchar 型

③ text 型 (varchar(max) 型)

Unicode 型① nchar 型

② nvarchar 型

③ ntext 型 (nvarchar(max) 型)※text, ntext は将来削除される可能性有り!http://msdn.microsoft.com/ja-jp/library/ms187993.aspx

Page 8: 照合順序と Sql azure

非Unicode 型の文字データに照合順序を指定すると、その照合順序には特定のコードページが関連付けられます。http://msdn.microsoft.com/ja-jp/library/ms187582.aspx

http://msdn.microsoft.com/ja-jp/library/ms186356.aspx

Page 9: 照合順序と Sql azure

コードページ (code page) とは文字セットのこ

とで、数字、区切り記号、および他のグリフを含むこともあります。http://msdn.microsoft.com/ja-jp/library/2x8et5ee.aspx

よく言われる文字コードってこと?

文字化けの原因?!

Page 10: 照合順序と Sql azure

次の4つの単位で設定可能

サーバー (インスタンス)

データベース

基本は上位の設定を引き継ぐ。

下位で変更可能。http://msdn.microsoft.com/ja-jp/library/ms177439.aspx

Page 11: 照合順序と Sql azure

おまけ

識別子 サーバー(インスタンス)の照合順序が適用される

1. ログイン名、データベース名等

2. 直接発行する SQL 内の変数、GOTO ラベル等

3. 組み込みストアド、関数等

データベースの照合順序が適用される1. テーブル名、列名等

http://msdn.microsoft.com/ja-jp/library/ms188686.aspx

Page 12: 照合順序と Sql azure

同じT-SQL でも、サーバーの照合順序が違うと…

Page 13: 照合順序と Sql azure
Page 14: 照合順序と Sql azure

列、式しか照合順序を指定出来ない。

サーバーの照合順序は固定。

SQL_LATIN1_GENERAL_CP1_CI_AShttp://msdn.microsoft.com/en-us/library/ee336245.aspx

なので、

非 Unicode 型を使うと適切な照合順序を指定しない場合、日本語が化けます。(コードページの話)

Page 15: 照合順序と Sql azure

同期や移行の事を考えると…新規で構築する SQL Server は、サーバーの照合順序を

「SQL_LATIN1_GENERAL_CP1_CI_AS」

にしておくというのも有りかも?

Page 16: 照合順序と Sql azure
Page 17: 照合順序と Sql azure

並び替えや比較に影響がある。

非 Unicode データの場合は、コードページも注意!(文字化けの原因)

サーバー、データベース、列、式に設定可能->識別子も照合順序の影響を受ける。

->SQL Azure では、サーバーは固定で、列、式のみ設定可能

SQL Azure への同期や移行を考えている場合、照合順序を合わせておく事も考慮する?