MySQL에서 NVARCHAR 컬럼 생성하기
MySQL에서는 NVARCHAR 타입을 선언하면 자동으로 VARCHAR로 변환됩니다. 여기서 NVARCHAR는 'National Varchar'의 약자로, 유니코드 문자셋을 사용하는 문자열 타입을 의미합니다. MySQL은 내부적으로 이를 VARCHAR로 처리하기 때문에 결과적으로 두 타입은 동일하게 동작합니다.
그럼 실제 예제를 통해 NVARCHAR 컬럼이 어떻게 변환되는지 확인해 보겠습니다.
1. NVARCHAR 컬럼을 포함한 테이블 생성
먼저 'StudentName' 컬럼을 NVARCHAR 타입으로 지정하여 테이블을 생성합니다.
mysql> create table DemoTable
(
StudentName NVARCHAR(40),
StudentCountryName VARCHAR(50)
);
Query OK, 0 rows affected, 1 warning (0.49 sec)테이블 생성 시 경고(warning)가 발생했는데, 이것이 바로 NVARCHAR가 VARCHAR로 변환되었다는 알림입니다.
2. 테이블 구조 확인
DESC 명령어로 테이블 구조를 확인해 보겠습니다.
mysql> desc DemoTable;
실행 결과는 다음과 같습니다. 아래 출력에서 볼 수 있듯이, NVARCHAR(40)으로 선언한 StudentName 컬럼이 자동으로 varchar(40)으로 변환된 것을 확인할 수 있습니다.
+--------------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------------+-------------+------+-----+---------+-------+ | StudentName | varchar(40) | YES | | NULL | | | StudentCountryName | varchar(50) | YES | | NULL | | +--------------------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
3. 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable values('Chris','US');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Tom','UK');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('David','AUS');
Query OK, 1 row affected (0.11 sec)4. 저장된 데이터 조회하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-------------+--------------------+ | StudentName | StudentCountryName | +-------------+--------------------+ | Chris | US | | Tom | UK | | David | AUS | +-------------+--------------------+ 3 rows in set (0.00 sec)
핵심 정리
MySQL에서 NVARCHAR는 National Varchar를 의미하며, 테이블 생성 시 자동으로 VARCHAR로 변환됩니다. 따라서 MySQL 환경에서는 NVARCHAR 대신 VARCHAR를 직접 사용하는 것이 일반적이며, 두 타입 간에 실질적인 차이는 없습니다. 다만 SQL Server 등 다른 DBMS와의 호환성을 고려한 쿼리 작성 시에는 NVARCHAR 구문이 그대로 동작한다는 점을 기억해 두면 유용합니다.