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

MySQL에서 예약어 'index'를 컬럼 이름으로 사용하는 방법

네, 가능합니다. 다만 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 모드를 활성화한 환경에서는 큰따옴표(")도 식별자로 인식되지만, 기본 설정에서는 백틱을 사용하는 것이 가장 안전하고 일반적인 방법입니다.