회사/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와 다르므로 같지 않다.