반응형
이번 강의에서는 VARCHAR와 NVARCHAR의 차이를 실습을 통해 확인했습니다.
한글과 같은 유니코드 문자를 저장할 때, 유니코드 지원 여부에 따라 어떻게 결과가 달라지는지를 비교해 보았습니다.
📌 예제 코드
-- [1] 유니코드 미지원/지원 컬럼으로 테이블 생성
CREATE TABLE unicode_table (
col_1 VARCHAR(50), -- 유니코드 지원하지 않음
col_2 NVARCHAR(50) -- 유니코드 지원
);
-- [2] 한글 문자열 저장
INSERT INTO unicode_table VALUES ('가', N'가');
-- [3] 결과 확인
SELECT * FROM unicode_table;
-- [4] 실습 테이블 제거
DROP TABLE unicode_table;
💻 실행 결과 예시
col_1 : ? / col_2 : 가
- col_1의 결과는 한글이 제대로 저장되지 않고 물음표(?)나 깨진 문자로 표시됩니다.
- col_2는 NVARCHAR 타입으로, 유니코드 문자열인 '가'가 정상적으로 저장됩니다.
💬 코드 설명
- VARCHAR: 유니코드를 지원하지 않음, 한글·일본어·중국어 등 저장 시 문자 손실 발생
- NVARCHAR: 유니코드 지원, 국제 문자 및 특수 문자 저장 가능
- N'문자열': 유니코드 문자열 입력 시 반드시 접두사 N 필요
- 유니코드 미지원 형식에 유니코드 데이터를 넣으면 문자 깨짐
💡 포인트 정리
- VARCHAR: 영문 위주의 시스템에서 사용, 유니코드 문자 깨짐
- NVARCHAR: 다국어 및 한글 저장용, 필수적으로 사용해야 함
- 유니코드 문자열은 항상 N'' 형식으로 입력
- 다국어 지원이 필요한 시스템은 NVARCHAR + N'' 조합 필수
📌 정리하자면, 이번 강의에서는 유니코드 미지원 형식인 VARCHAR에 한글을 저장할 경우 발생하는 문제를 실습으로 확인했습니다.
정상적으로 한글, 일본어, 중국어 등 다국어를 다루기 위해서는 반드시 NVARCHAR와 N'문자열' 형식을 사용해야 하며,
이는 글로벌 환경에서 데이터 손실을 방지하기 위한 필수 조건입니다.
'SQL Server > 실기 정리' 카테고리의 다른 글
SQL Server 28강 - 다중 INNER JOIN을 활용한 테이블 결합 (1) | 2025.06.04 |
---|---|
SQL Server 27강 - 두 테이블 연결 조회 (INNER JOIN) (2) | 2025.06.02 |
SQL Server 26강 - 날짜/시간 데이터 형식별 저장 결과 비교 (DATE, TIME, DATETIME, DATETIME2) (0) | 2025.06.02 |
SQL Server 24강 - 문자열 데이터 형식과 저장 공간 비교 (LEN, DATALENGTH) (0) | 2025.06.02 |
SQL Server 23강 - SELECT INTO를 활용한 테이블 생성 및 데이터 복사 (0) | 2025.06.02 |
SQL Server 22강 - 다른 테이블에서 조건부 데이터 복사하기 (0) | 2025.06.02 |