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

MySQL에서 예약어(키워드)와 동일한 이름의 컬럼을 선택하는 방법

MySQL에서 select처럼 예약어(키워드)로 이미 등록된 이름과 동일한 컬럼을 조회하려면, 컬럼 이름을 백틱(`)으로 감싸주어야 합니다. MySQL에서 SELECT는 쿼리를 실행하는 데 사용되는 핵심 예약어이기 때문에, 이를 그대로 컬럼 이름으로 사용하면 문법 오류가 발생할 수 있습니다.

예약어를 컬럼 이름으로 가진 테이블 생성하기

실습을 위해 컬럼 이름을 select로 지정한 테이블을 생성해 보겠습니다. 이때 반드시 백틱으로 컬럼 이름을 감싸야 정상적으로 테이블이 생성됩니다.

mysql> create table DemoTable (`select` varchar(100));
Query OK, 0 rows affected (0.53 sec)

테스트 데이터 삽입하기

다음은 INSERT 명령문을 사용해 테이블에 샘플 데이터를 추가하는 쿼리입니다.

mysql> insert into DemoTable values('Records');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('All Data');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Information');
Query OK, 1 row affected (0.32 sec)

테이블 전체 데이터 조회하기

SELECT 명령문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select * from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+-------------+
| select      |
+-------------+
| Records     |
| All Data    |
| Information |
+-------------+
3 rows in set (0.00 sec)

백틱을 사용해 예약어 컬럼 선택하기

이제 핵심 부분입니다. 예약어인 select라는 이름의 컬럼을 조회하려면 아래와 같이 백틱으로 컬럼 이름을 감싸서 쿼리를 작성합니다.

mysql> select `select` from DemoTable;

실행 결과는 다음과 같습니다.

+-------------+
| select      |
+-------------+
| Records     |
| All Data    |
| Information |
+-------------+
3 rows in set (0.00 sec)

정리

MySQL에서 예약어와 동일한 이름의 컬럼을 다룰 때는 다음 두 가지 상황에서 모두 백틱(`)을 사용해야 합니다.

1. 테이블 생성 시: 예약어를 컬럼 이름으로 지정할 때
2. 데이터 조회 시: 해당 컬럼을 SELECT 문에서 참조할 때

참고로 ANSI SQL 표준에서는 큰따옴표(")를 식별자 구분 기호로 사용하지만, MySQL은 기본 설정에서 백틱(`)을 사용한다는 점도 함께 기억해 두면 좋습니다.