Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 NVARCHAR 컬럼 생성하는 방법 총정리

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 구문이 그대로 동작한다는 점을 기억해 두면 유용합니다.