【SQL Server】照合順序をざっくりわかるようになる

【SQL Server】照合順序をざっくりわかるようになる

はじめに

コジマです。

データベースには照合順序というものがあります。

照合順序っていったい何なのか?
どういう設定があるのか?
というのを簡単に紹介できればと思います。

照合順序っていったいなんなの?

データの並べ替えや比較を行うための規則のことを照合順序と言います。

全角半角を区別したり、逆に区別しないようにする設定ができます。
そうすることでデータの並び順が変わったり、クエリの検索結果が変わったりします。

ここまで意識して開発することってほとんどの人はないかと思うのですが、
思ったようなクエリの検索結果が得られないときなどに検討する必要が出ることがあります。

どんな設定があるの?

簡単に表にまとめてみました。
これを押さえておけると照合順序の検討ができると思います。

区別しない 区別する
大文字小文字 Ci CS 「A」と「a」
アクセント AI AS 「a」と「ấ」
ひらがなカタカナ KI省略する KS 「あ」と「ア」
全角と半角 WI省略する WS 「A」と「A」

ほかには、ロケール、文字コードなどのの設定があります。

2021/7/6 追記
KI、WIを勢いで書いてしまいましたが、
正しくは「省略する」でした。
照合順序に KI、WI はないですよー

例えば、「Japanese_XJIS_100_CI_AI_KS_WS」という照合順序が設定されていたとします。
このとき

  • 日本語辞書を使って照合します
  • 大文字小文字は区別しません
  • アクセントは区別しません
  • ひらがなカタカナは区別します
  • 全角半角は区別します

という意味になります。

さいごに

参考サイトは以下です。
この記事をざっと読んでからリンク先に目を通すと理解が深まると思います。初見だと何言ってるかわからん人もいると思います(私もそうだった)
https://docs.microsoft.com/ja-jp/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver15
https://docs.microsoft.com/ja-jp/sql/t-sql/statements/windows-collation-name-transact-sql?view=sql-server-ver15

ここで紹介したのはほんの一部です。

ここでは色々区別したりしなかったりするようにする設定なんだなと思っていただけたらよいです。

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

もっと学びたい人はこちら

SQLをもっと学びたいエンジニアのためにおすすめのUdemy講座を紹介いたします!

SQLはじめましての人!まずあなたの3時間をください。
この講座でまずこれだけは覚えてくれ!という内容をしっかり押さえることができます。
SQLはプログラミング言語がなんであれ、システム開発に必要になります。
この講座を見て最低限必要な知識を身に着けて実践で貢献できるようになりましょう!
3時間で学ぶ SQL ・データベース 超入門【丁寧な解説+演習問題で SQL データ抽出の基本が身につく】標準 SQL

データベースの設計について学べる講座です。
設計について学べる教材は少ないので、実務でデータベースを触る人にはとてもうれしい講座です。

ちょっとニッチに感じるかもしれませんが、SQLのインデックスを学ぶことができる講座です。
よい性能でSQLを運用するためにはインデックスの理解は必要不可欠です。
CRUD書いて満足するエンジニアを出し抜きましょう。

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


SQLカテゴリの最新記事