회사/DB

[DB / MSSQL] COLLATION (정렬방식)

daykim 2024. 10. 16. 15:52

Collation (정렬방식)

주로 DBeaber를 사용하는데 아래와 같은 설정을 볼 수 있다.

GPT에게 물어보니 아래와 같이 설명해준다.

  • Korean_Wansung : 한글 완성형 문자셋을 사용한 정렬 방식이다. 한글 음절을 미리 정의해 Unicode와 달리 한글 자모가 분리되지 않고, 완성된 글자로 저장된다.
  • CI (Case Insensitive) : 대소문자를 구별하지 않는다.
  • AS (Accent Insentive) : 악센트나 발음 기호를 구별하지 않는다. ex) é와 e는 동일하게 취급

이렇게 데이터베이스의 정렬방식을 지정하는 것이다.

 

COLLATE 명령어

  • COLLATE 절을 이용해 컬럼 || 식의 정렬방식을 명시적으로 지정, 변경할 수 있다.
-- 컬럼 정렬방식 지정
ALTER COLUMN [COLUMN_NAME] [DATA_TYPE] COLLATE [정렬방식]

-- 쿼리 정렬방식 변경
SELECT [COLUMN] FROM [TABLE_NAME] WHERE COLUMN_NAME COLLATE [정렬방식] = [문자열]
	-- 예시
    SELECT * FROM myTable WHERE APPLE COLLATE Korean_Wansung_CI_AS = 'ABC';
    -- APPLE의 컬럼값이 ABC와 ABC, Abc, aBC 등 대소문자를 구분하지 않고 같은지 비교한다는 의미다.
    -- 만약 APPLE의 데이터가 'apple'인 경우 대소문자 구분없이 ABC와 다르므로 같지 않다.