MySQL에서 열(컬럼) 이름에 하이픈(-)과 같은 특수 문자를 사용하려면 백틱(`)으로 열 이름을 감싸주면 됩니다. 일반적인 식별자 명명 규칙을 벗어나는 이름이라도 백틱 안에서는 자유롭게 정의할 수 있습니다.
1. 특수 문자가 포함된 열로 테이블 생성하기
먼저 열 이름에 특수 문자가 포함된 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
-> (
-> `Student-Id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> `Student-Name` varchar(100),
-> `Student-Age` int
-> );
Query OK, 0 rows affected (0.55 sec)위 예제에서는 'Student-Id', 'Student-Name', 'Student-Age'처럼 하이픈(-)이 포함된 열 이름을 백틱으로 감싸 오류 없이 테이블을 생성했습니다.
2. INSERT 문으로 데이터 삽입하기
insert 명령을 사용해 테이블에 레코드를 삽입합니다. 이때도 특수 문자가 포함된 열 이름은 반드시 백틱으로 감싸야 합니다.
mysql> insert into DemoTable(`Student-Name`,`Student-Age`) values('Chris',21);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(`Student-Name`,`Student-Age`) values('Mike',19);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(`Student-Name`,`Student-Age`) values('Bob',18);
Query OK, 1 row affected (0.21 sec)3. SELECT 문으로 데이터 조회하기
select 문을 사용하여 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------------+--------------+-------------+ | Student-Id | Student-Name | Student-Age | +------------+--------------+-------------+ | 1 | Chris | 21 | | 2 | Mike | 19 | | 3 | Bob | 18 | +------------+--------------+-------------+ 3 rows in set (0.00 sec)
정리
MySQL에서 열 이름에 특수 문자를 사용하려면 해당 이름을 항상 백틱(`)으로 감싸야 합니다. 이는 테이블 생성 시뿐만 아니라 INSERT, SELECT, UPDATE 등 모든 SQL 문장에서 동일하게 적용됩니다. 다만 코드의 가독성과 다른 데이터베이스와의 호환성을 고려하면, 실무에서는 알파벳, 숫자, 밑줄(_)만으로 구성된 열 이름을 사용하는 것이 좋습니다.