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

MySQL 테이블 이름에 밑줄(_)을 사용하면 문제가 발생할까요?

MySQL 테이블 이름에 밑줄(underscore, _)을 사용해도 아무런 문제가 발생하지 않습니다. 오히려 문제가 되는 것은 대시(dash, -)입니다. 대시는 특정 MySQL 버전에서 유효하지 않은 문자로 간주되어 오류를 일으킬 수 있습니다.

밑줄이 포함된 테이블 이름 예시

다음은 밑줄로 시작하는 테이블 이름으로, 전혀 문제 없이 사용 가능한 예입니다.

_StudentTrackerDemo

실제로 이 이름으로 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table _StudentTrackerDemo
   -> (
   -> StudentId int,
   -> StudentFirstName varchar(100)
   -> );
Query OK, 0 rows affected (0.75 sec)

위 결과에서 볼 수 있듯이 밑줄이 포함된 테이블 이름은 정상적으로 생성됩니다. 밑줄은 MySQL 테이블 이름에 허용되는 유효한 문자입니다.

대시(-)가 포함된 테이블 이름의 문제점

반면, 대시는 일부 MySQL 버전에서 테이블 이름으로 사용할 수 없습니다. 대시가 포함된 테이블 이름을 생성하려고 하면 다음과 같은 구문 오류가 발생합니다.

mysql> create table Student-table
    -> (
    -> Id int,
    -> Name varchar(100)
    -> );
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 '-table
(Id int, Name varchar(100) )' at line 1

참고: 대시를 꼭 사용해야 한다면?

만약 대시가 포함된 이름을 반드시 사용해야 하는 경우에는 테이블 이름을 역따옴표(backtick, `)로 감싸주면 됩니다. 예를 들어 다음과 같이 작성할 수 있습니다.

mysql> create table `Student-table`
    -> (
    -> Id int,
    -> Name varchar(100)
    -> );

역따옴표로 감싼 식별자는 MySQL에서 특수 문자를 포함한 이름도 허용하기 때문입니다. 다만 가독성과 호환성 측면에서는 밑줄(_)을 사용하는 것이 가장 안전하고 권장되는 방식입니다.