MySQL 테이블 이름에 'user'를 사용할 수 있을까?
MySQL에서는 테이블 이름으로 'user'를 그대로 사용할 수 없습니다. 'user'는 MySQL의 예약어(reserved word)로 지정되어 있기 때문입니다. 이 경우 두 가지 해결 방법이 있습니다.
- 테이블 이름을
users처럼 다른 이름으로 변경하기 - 백틱(backtick, `) 기호로 'user'를 감싸서 사용하기
참고로 'user'라는 단어 자체는 CREATE USER 구문으로 계정을 생성하거나, mysql 시스템 데이터베이스에서 사용자 목록을 조회할 때 활용됩니다.
방법 1. 테이블 이름을 users로 변경하여 생성
먼저 테이블을 생성해 보겠습니다. 여기서는 테이블 이름으로 users를 사용했습니다.
mysql> create table users
-> (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20),
-> UserAge int
-> );
Query OK, 0 rows affected (0.51 sec)
방법 2. 백틱으로 감싸서 user 테이블 생성
꼭 'user'라는 이름을 사용해야 한다면 백틱으로 감싸면 됩니다.
mysql> create table `user`
-> (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20),
-> UserAge int
-> );
Query OK, 0 rows affected (0.51 sec)
레코드 삽입하기
INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into users(UserName,UserAge) values('Chris Brown',28);
Query OK, 1 row affected (0.17 sec)
mysql> insert into users(UserName,UserAge) values('John Doe',31);
Query OK, 1 row affected (0.18 sec)
mysql> insert into users(UserName,UserAge) values('John Smith',26);
Query OK, 1 row affected (0.17 sec)
mysql> insert into users(UserName,UserAge) values('David Miller',27);
Query OK, 1 row affected (0.13 sec)전체 레코드 조회하기
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from users;
위 쿼리는 다음과 같은 결과를 출력합니다.
+--------+--------------+---------+
| UserId | UserName | UserAge |
+--------+--------------+---------+
| 1 | Chris Brown | 28 |
| 2 | John Doe | 31 |
| 3 | John Smith | 26 |
| 4 | David Miller | 27 |
+--------+--------------+---------+
4 rows in set (0.00 sec)
정리하면, 'user'는 MySQL 예약어이므로 테이블 이름으로 직접 사용할 수 없으며, 이름을 users로 바꾸거나 백틱으로 감싸는 방식으로 해결할 수 있습니다. 다만 가독성과 유지보수를 고려하면 별도의 이름을 사용하는 것이 권장됩니다.