MySQL에서 CHAR() 함수는 기본적으로 바이너리(binary) 문자열을 반환합니다. 하지만 USING 키워드를 함께 사용하면 기본 바이너리 문자열이 아닌, 사용자가 지정한 문자 집합(character set)의 문자열을 얻을 수 있습니다.
USING 키워드의 기본 문법
CHAR(N, ... [USING charset_name])
즉, CHAR() 함수 뒤에 USING 키워드를 붙이고 원하는 문자 집합 이름을 명시하면, 해당 문자 집합에 맞는 문자열이 결과로 반환됩니다.
utf8 문자 집합으로 문자열 생성하기
아래 예제는 USING utf8을 지정하여 문자열을 생성한 경우입니다.
mysql> Select CHARSET(CHAR(85 USING utf8)); +------------------------------+ | CHARSET(CHAR(85 USING utf8)) | +------------------------------+ | utf8 | +------------------------------+ 1 row in set (0.00 sec)
결과를 보면 반환된 문자열의 문자 집합이 utf8로 나타납니다. 이는 USING 키워드 뒤에 utf8을 지정했기 때문입니다. 참고로 숫자 85는 ASCII 코드에서 문자 'U'에 해당합니다.
latin1 문자 집합으로 문자열 생성하기
마찬가지 방식으로 latin1 문자 집합을 지정할 수도 있습니다.
mysql> Select CHARSET(CHAR(85 USING latin1)); +--------------------------------+ | CHARSET(CHAR(85 USING latin1)) | +--------------------------------+ | latin1 | +--------------------------------+ 1 row in set (0.00 sec)
이번에는 반환된 문자열의 문자 집합이 latin1로 표시됩니다. USING 키워드 뒤에 latin1을 작성했기 때문입니다.
정리
이처럼 MySQL의 CHAR() 함수에 USING 키워드를 활용하면, 기본 바이너리 문자열 대신 utf8, latin1 등 원하는 문자 집합의 문자열을 손쉽게 생성할 수 있습니다. 또한 CHARSET() 함수를 함께 사용하면 실제로 어떤 문자 집합이 적용되었는지 간편하게 확인할 수 있습니다.