네, 가능합니다. 다만 index는 MySQL의 예약어(reserved word)이기 때문에, 이를 컬럼 이름으로 사용하려면 반드시 백틱(`) 기호로 감싸야 오류 없이 정상적으로 동작합니다.
테이블 생성하기
먼저 예약어를 컬럼 이름으로 포함한 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
`index` int
);
Query OK, 0 rows affected (0.48 sec)데이터 삽입하기
INSERT 명령을 사용해 테이블에 여러 개의 레코드를 추가합니다.
mysql> insert into DemoTable values(1000); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(1020); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(967); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(567); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(1010); Query OK, 1 row affected (0.18 sec)
전체 데이터 조회하기
SELECT 문을 사용해 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+-------+ | index | +-------+ | 1000 | | 1020 | | 967 | | 567 | | 1010 | +-------+ 5 rows in set (0.00 sec)
`index` 컬럼 기준으로 정렬하여 조회하기
이제 백틱으로 감싼 `index` 컬럼 이름을 실제 쿼리에서 활용해 보겠습니다. 아래 예제에서는 해당 컬럼을 기준으로 내림차순 정렬한 후 상위 3개의 레코드만 조회합니다.
mysql> select *from DemoTable order by `index` DESC LIMIT 3;
실행 결과는 다음과 같습니다.
+-------+ | index | +-------+ | 1020 | | 1010 | | 1000 | +-------+ 3 rows in set (0.00 sec)
정리
MySQL에서 예약어를 컬럼 이름으로 사용하는 것은 가능하지만, 항상 백틱(`)으로 감싸야 한다는 점을 기억하세요. 백틱을 생략하면 SQL 구문 오류(syntax error)가 발생합니다. 참고로 ANSI_QUOTES 모드를 활성화한 환경에서는 큰따옴표(")도 식별자로 인식되지만, 기본 설정에서는 백틱을 사용하는 것이 가장 안전하고 일반적인 방법입니다.