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

MySQL에서 'group'을 테이블 이름으로 사용할 때 발생하는 구문 오류와 해결 방법

MySQL에서 'group' 예약어로 인한 구문 오류란?

MySQL에서 group은 예약어(reserved keyword)이기 때문에 테이블 이름으로 그대로 사용할 수 없습니다. 예약어를 테이블 이름으로 사용하면 SELECT 쿼리 실행 시 구문 오류(syntax error)가 발생하게 됩니다.

이러한 오류를 피하려면 테이블 이름 'group' 앞뒤를 역따옴표(backtick, `)로 감싸 주어야 합니다. 역따옴표로 감싸면 MySQL이 해당 이름을 예약어가 아닌 식별자(테이블 이름)로 인식합니다.

1. 역따옴표를 사용하여 테이블 생성하기

다음 예제를 통해 `group` 테이블을 생성해 보겠습니다.

mysql> create table `group`
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (1.26 sec)

2. insert 명령으로 레코드 삽입하기

insert 명령을 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into `group`(Name) values('Chris');
Query OK, 1 row affected (0.47 sec)
mysql> insert into `group`(Name) values('David');
Query OK, 1 row affected (0.36 sec)
mysql> insert into `group`(Name) values('Mike');
Query OK, 1 row affected (0.26 sec)
mysql> insert into `group`(Name) values('Sam');
Query OK, 1 row affected (0.16 sec)

3. select 문으로 전체 레코드 조회하기

select 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select * from `group`;

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

+----+-------+
| Id | Name  |
+----+-------+
|  1 | Chris |
|  2 | David |
|  3 | Mike  |
|  4 | Sam   |
+----+-------+
4 rows in set (0.00 sec)

정리 및 참고 사항

MySQL에는 group, order, select, table 등 SQL 문법에서 특별한 의미를 가지는 예약어들이 많습니다. 이러한 예약어를 테이블이나 컬럼 이름으로 사용해야 하는 상황이라면 반드시 역따옴표(`)로 감싸야 합니다.

다만 가능하다면 groups, user_group처럼 예약어와 겹치지 않는 이름을 사용하는 것이 좋습니다. 예약어 사용을 피하면 쿼리 작성 시 실수를 줄일 수 있고, 코드의 가독성과 유지보수성도 향상됩니다.