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

MySQL에서 백틱으로 감싼 예약어 컬럼명('from', 'to')을 SELECT하는 방법

MySQL에서 from, to처럼 SQL의 예약어(Reserved Words)를 컬럼명으로 사용하려면 반드시 백틱(`)으로 감싸서 정의해야 합니다.

`from`
`to`

이렇게 백틱으로 정의된 컬럼명을 조회(SELECT)할 때도 마찬가지로 백틱을 함께 사용해야 합니다. 기본적인 조회 쿼리는 다음과 같습니다.

SELECT `to`, `from` FROM yourTableName;

예제 테이블 생성하기

먼저 fromto를 컬럼명으로 가지는 테이블을 백틱과 함께 생성해 보겠습니다.

mysql> CREATE TABLE DemoTable720 (
    `from` date,
    `to` date
);
Query OK, 0 rows affected (0.69 sec)

데이터 삽입하기

INSERT 명령을 사용하여 몇 개의 레코드를 추가합니다.

mysql> INSERT INTO DemoTable720 VALUES('2019-01-21','2019-07-23');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable720 VALUES('2017-11-01','2018-01-31');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable720 VALUES('2015-08-11','2016-09-19');
Query OK, 1 row affected (0.12 sec)

전체 레코드 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> SELECT * FROM DemoTable720;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------+------------+
| from | to |
+------------+------------+
| 2019-01-21 | 2019-07-23 |
| 2017-11-01 | 2018-01-31 |
| 2015-08-11 | 2016-09-19 |
+------------+------------+
3 rows in set (0.00 sec)

'to'와 'from' 컬럼 선택하기

백틱으로 감싼 tofrom 컬럼을 선택하는 쿼리는 다음과 같습니다.

mysql> SELECT `to`, `from` FROM DemoTable720;

실행 결과는 아래와 같습니다.

+------------+------------+
| to | from |
+------------+------------+
| 2019-07-23 | 2019-01-21 |
| 2018-01-31 | 2017-11-01 |
| 2016-09-19 | 2015-08-11 |
+------------+------------+
3 rows in set (0.00 sec)

정리 및 참고 사항

핵심은 테이블 생성 시와 조회 시 모두 동일하게 백틱(`)을 사용해야 한다는 점입니다. 백틱 없이 SELECT from FROM ...처럼 작성하면 MySQL은 from을 일반 컬럼명이 아닌 SQL 구문의 예약어로 해석하기 때문에 문법 오류가 발생합니다.

참고로 이러한 문제를 피하려면 애초에 컬럼명을 지을 때 예약어를 사용하지 않는 것이 좋습니다. 예를 들어 date_from, date_to 또는 start_date, end_date처럼 의미를 명확히 하면서도 충돌하지 않는 이름을 사용하는 것이 권장됩니다.