DB

【SQL Server】照合順序で文字の区別を設定する

SQL Serverで大文字・小文字/半角・全角などを区別するしないの設定を「照合順序」と言います。本記事では照合順序についての内容をまとめます。

照合順序とは

照合順序とは主に下記の区別を行うための設定です。

  • 大文字 / 小文字
  • 半角 / 全角
  • ひらがな / カナタカ
  • アクセント(濁音、半濁音)

照合順序の種類

照合順序の区別の種類は下記の通りです。

大文字・小文字 CI(区別しない)/ CS(区別する)
アクセント AI(区別しない)/ AS(区別する)
ひらがな・カタカナ KI(区別しない)/ KS(区別する)
半角・全角 WI(区別しない)/ WS(区別する)

「I」がつくと区別しない、「S」がつくと区別する ということになります。

照合順序はデフォルトで「Japanese_CI_AS」が設定されています。
Japanese_CI_ASの特徴は下記の通りです。

  • 大文字 / 小文字 を区別しない
  • アクセントを区別する
  • ひらがな / カタカナ を区別しない
  • 半角 / 全角 を区別しない

「 Japanese_CI_AS 」には「KI」と「WI」がありませんが、その二つは区別しない場合は省略します。区別する場合のみ「KS」「WS」を付けます。

ひらがな・カタカナを区別したい場合は「Japanese_CI_AS_KS

半角・全角を区別したい場合は「Japanese_CI_AS_WS

すべて区別したい場合は「Japanese_CI_AS_KS_WS」もしくは「Japanse_BIN

といった使い方をします。

照合順序の使い方(SELECT文で指定)

SELECT文で検索条件に照合順序を指定する場合は、下記のようにCOLLATE句を使います。

SELECT * FROM Person
    WHERE Kana = 'ながのめい' COLLATE Japanese_CI_AS_KS

特に指定がなければ、ひらがな・カタカナは区別されません。


「Japanese_CI_AS_KS」を指定すると、ひらがな・カタカナを区別され検索結果が変わりました。

デフォルト照合順序の設定

照合順序はサーバー単位、DB単位、列単位でそれぞれ設定することができます。

サーバー (SQL Server のインスタンス)

SQL Server自体のデフォルト照合順序はインストール時に設定します。
インストール後の変更はできません(再インストールする必要がある)

照合順序の設定はオブジェクトエクスプローラーのインスタンスを右クリックで「プロパティ」から確認できます。

データベース

データベースの照合順序はDBの作成時に「オプション」ページから設定が出来ます。サーバーの設定から変える必要がなければ「既定」でOKです。

既存のDBの照合順序の確認は、 オブジェクトエクスプローラーのDBを右クリックで「プロパティ」から確認できます。

カラム

カラムの照合順序はテーブルの作成時に設定が出来ます。また、定義後に設定変更を行うことも可能です。

SSMSでテーブル作成時

テーブル作成時の列のプロパティから照合順序を設定できます。


列の照合順序の確認は、オブジェクトエクスプローラーの列を右クリックで「プロパティ」から確認できます。

CREATE TABLE

CREATE TABLE でテーブル作成時には下記のように、データ型と制約の間に記述します。

CREATE TABLE [dbo].[TEST](
	[ID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
	[Name] [nvarchar](10) NOT NULL,
	[Kana] [nvarchar](20) COLLATE Japanese_CI_AS_KS NOT NULL,
	[Age] [tinyint] NOT NULL,
)


また、ALTER TABLE で既存のテーブルの列を変更したい場合は下記のように記述します。

ALTER TABLE [dbo].[TEST]
	ALTER COLUMN Kana [nvarchar](20) COLLATE Japanese_CI_AS_KS
エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい