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

MySQL에서 이름에 점(.)이 포함된 열 업데이트하는 방법

MySQL에서 열 이름에 점(.)이 포함되어 있다면, 해당 열 이름을 반드시 백틱(`` ` ``)으로 감싸야 합니다. 점이 포함된 열 이름은 그대로 사용할 경우 MySQL이 이를 데이터베이스·테이블·열을 구분하는 구분자로 잘못 해석할 수 있기 때문입니다.

이 개념을 이해하기 위해 실제 예제를 통해 단계별로 살펴보겠습니다.

1. 예제 테이블 생성하기

먼저 점(.)이 포함된 열 이름을 가진 테이블을 생성합니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table UpdateDemo
    -> (
    -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> `User.FirstName.LastName` varchar(60)
    -> );
Query OK, 0 rows affected (0.54 sec)

위 쿼리에서 User.FirstName.LastName라는 열 이름에 점이 포함되어 있으므로, 생성 시에도 백틱으로 감싸야 한다는 점에 주목하세요.

2. 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 여러 레코드를 삽입합니다.

mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('John Smith');
Query OK, 1 row affected (0.14 sec)
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Adam Smith');
Query OK, 1 row affected (0.12 sec)
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Carol Taylor');
Query OK, 1 row affected (0.25 sec)
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Mitchell Johnson');
Query OK, 1 row affected (0.19 sec)
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('David Brown');
Query OK, 1 row affected (0.16 sec)
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Larry Miller');
Query OK, 1 row affected (0.22 sec)

3. 테이블 데이터 확인하기

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

mysql> select *from UpdateDemo;

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

+--------+-------------------------+
| UserId | User.FirstName.LastName |
+--------+-------------------------+
| 1 | John Smith |
| 2 | Adam Smith |
| 3 | Carol Taylor |
| 4 | Mitchell Johnson |
| 5 | David Brown |
| 6 | Larry Miller |
+--------+-------------------------+
6 rows in set (0.00 sec)

4. 점(.)이 포함된 열 업데이트하기

이제 User.FirstName.LastName처럼 점(.)이 포함된 열 이름을 업데이트할 때는 열 이름을 반드시 백틱(`` ` ``)으로 감싸야 합니다.

UPDATE 쿼리는 다음과 같습니다.

mysql> update UpdateDemo set `User.FirstName.LastName`='David Miller' where UserId=5;
Query OK, 1 row affected (0.19 sec)
Rows matched: 1 Changed: 1 Warnings: 0

5. 업데이트 결과 확인하기

테이블 레코드를 다시 조회하여 업데이트가 정상적으로 적용되었는지 확인합니다.

mysql> select *from UpdateDemo;

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

+--------+-------------------------+
| UserId | User.FirstName.LastName |
+--------+-------------------------+
| 1 | John Smith |
| 2 | Adam Smith |
| 3 | Carol Taylor |
| 4 | Mitchell Johnson |
| 5 | David Miller |
| 6 | Larry Miller |
+--------+-------------------------+
6 rows in set (0.00 sec)

위 출력 결과에서 UserId가 5인 행이 'David Brown'에서 'David Miller'로 성공적으로 업데이트된 것을 확인할 수 있습니다.

정리

MySQL에서 열 이름에 점(.)과 같은 특수 문자가 포함된 경우, 테이블 생성, 데이터 삽입, 업데이트 등 모든 SQL 문에서 해당 열 이름을 반드시 백틱(`` ` ``)으로 감싸야 합니다. 이를 생략하면 구문 오류가 발생하거나 의도하지 않은 동작이 일어날 수 있으므로 주의해야 합니다.