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

MySQL에서 'order'라는 이름의 테이블을 만드는 방법 – 백틱 사용법 완벽 정리

MySQL에서 order는 테이블을 정렬하는 데 사용되는 예약어(키워드)입니다. 따라서 테이블 이름을 그냥 order로 지정하면 SQL 문법 오류가 발생합니다. 이 문제를 해결하려면 테이블 이름 앞뒤에 백틱(`)을 붙여야 합니다. 백틱으로 감싸면 MySQL이 해당 단어를 예약어가 아닌 일반적인 테이블 또는 컬럼 이름으로 인식하게 됩니다.

기본 문법

백틱을 사용해 'order' 테이블을 생성하는 기본 문법은 다음과 같습니다.

CREATE TABLE `order`
(
    yourColumnName1 dataType,
    yourColumnName2 dataType,
    yourColumnName3 dataType,
    ...
    N
);

테이블 생성 예제

실제로 'order'라는 이름의 테이블을 만들어 보겠습니다.

mysql> create table `order`
    -> (
    -> Id int,
    -> Price int
    -> );
Query OK, 0 rows affected (0.66 sec)

위 쿼리를 실행하면 IdPrice 두 개의 컬럼을 가진 'order' 테이블이 성공적으로 생성됩니다.

데이터 삽입하기

이제 INSERT 명령을 사용해 테이블에 레코드를 추가해 보겠습니다.

mysql> insert into `order` values(1,200);
Query OK, 1 row affected (0.21 sec)
mysql> insert into `order` values(2,100);
Query OK, 1 row affected (0.17 sec)
mysql> insert into `order` values(3,300);
Query OK, 1 row affected (0.20 sec)
mysql> insert into `order` values(4,1200);
Query OK, 1 row affected (0.13 sec)
mysql> insert into `order` values(5,1000);
Query OK, 1 row affected (0.18 sec)
mysql> insert into `order` values(6,7000);
Query OK, 1 row affected (0.20 sec)
mysql> insert into `order` values(7,900);
Query OK, 1 row affected (0.16 sec)
mysql> insert into `order` values(8,10000);
Query OK, 1 row affected (0.18 sec)
mysql> insert into `order` values(9,1100);
Query OK, 1 row affected (0.30 sec)
mysql> insert into `order` values(10,500);
Query OK, 1 row affected (0.18 sec)

저장된 데이터 조회하기

SELECT 문을 사용해 테이블의 모든 레코드를 확인할 수 있습니다.

mysql> select *from `order`;

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

+------+-------+
| Id   | Price |
+------+-------+
|    1 |   200 |
|    2 |   100 |
|    3 |   300 |
|    4 |  1200 |
|    5 |  1000 |
|    6 |  7000 |
|    7 |   900 |
|    8 | 10000 |
|    9 |  1100 |
|   10 |   500 |
+------+-------+
10 rows in set (0.00 sec)

백틱을 사용하지 않으면 발생하는 오류

만약 예약어인 테이블 이름을 백틱 없이 그대로 사용하면 어떻게 될까요? 아래와 같이 문법 오류가 발생합니다.

mysql> select *from order;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'order' at line 1

정리

MySQL에서 order, select, group 등과 같은 예약어를 테이블 이름이나 컬럼 이름으로 사용하고 싶다면 반드시 이름 앞뒤를 백틱(`)으로 감싸야 합니다. 이렇게 하면 MySQL이 해당 단어를 식별자(identifier)로 올바르게 인식하여 오류 없이 쿼리를 실행할 수 있습니다. 다만, 가능하면 예약어와 겹치지 않는 이름(예: orders)을 사용하는 것이 유지보수 측면에서 더 권장됩니다.