varchar와 nvarchar의 차이
varchar는 바이트 수, nvarchar는 글자 수를 기준으로 합니다.
varchar는 가변 문자열이며, nvarchar는 유니코드 지원 가변 문자열입니다.
그렇기 때문에 비유니코드 지원인 varchar는 영어, 숫자는 1byte, 그 외 한글, 한자 등은 2byte로 저장합니다.
반면, nvarchar는 유니코드 지원이므로 모든 문자를 일괄적으로 2byte로 저장하게 됩니다.
예를 들어,
'MousaDembele'라는 문자열은 varchar에서는 영문 12자리이기 때문에 12byte의 공간이 필요합니다. 반면 nvarchar에서는 영문이든 한글이든 관계없이 글자당 2byte를 할당하기 때문에 24byte의 공간이 필요합니다.
한글의 경우 '무사뎀벨레'라는 문자열을 저장하려면 varchar에서는 10byte(한글 1글자 당 2byte, 5 x 2byte = 10byte)의 공간이 필요합니다. nvarchar에서도 모든 글자를 한 글자당 2byte로 인식하기 때문에 10byte가 필요합니다.
아래의 표를 통하여 요약합니다.
varchar | nvarchar | |
공통점 | 가변형 문자열 저장 | |
지원 언어 | 영문 또는 테이블에 설정된 기본 지원 언어 | 유니코드 지원 |
영문, 숫자 데이터크기 | 1byte | 2byte |
한글, 한자 데이터 크기 | 2byte |
반응형
'DB & SQL' 카테고리의 다른 글
[MSSQL] WITH(NOLOCK) - 테이블 잠금 해제 (2) | 2022.09.07 |
---|---|
날짜, 시간 연산(DATEADD) (2) | 2022.06.02 |
테이블 수정(ALTER TABLE) (6) | 2022.04.14 |
반올림, 올림, 내림 함수(ROUND, CEILING, FLOOR) (0) | 2022.02.15 |
쿼리 변환 사이트 : SQLines (2) | 2021.12.21 |
댓글