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

MySQL 데이터베이스에서 기존 데이터에 새로운 값 추가하는 방법

MySQL에서 기존 데이터에 데이터 추가하기

MySQL에서 기존 컬럼의 값을 유지하면서 새로운 문자열을 덧붙이고 싶다면 CONCAT() 함수를 사용하면 됩니다. 이 함수는 여러 문자열을 하나로 연결해 주는 역할을 하며, UPDATE 문과 함께 사용하면 기존 데이터 뒤에 원하는 내용을 손쉽게 추가할 수 있습니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName varchar(100)
    );
Query OK, 0 rows affected (0.43 sec)

다음으로 INSERT 명령어를 사용해 테이블에 레코드를 삽입합니다.

mysql> insert into DemoTable(UserName) values('John');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable(UserName) values('Chris');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(UserName) values('Robert');
Query OK, 1 row affected (0.11 sec)

SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable;

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

+--------+----------+
| UserId | UserName |
+--------+----------+
| 1      | John     |
| 2      | Chris    |
| 3      | Robert   |
+--------+----------+
3 rows in set (0.00 sec)

CONCAT() 함수로 기존 데이터에 값 연결하기

이제 핵심인 CONCAT() 함수를 활용한 쿼리를 살펴보겠습니다. 아래 예제는 UserId가 1인 행의 기존 이름 'John' 뒤에 ' Smith'라는 성을 연결하여 'John Smith'로 업데이트하는 과정입니다.

mysql> update DemoTable
set UserName=concat(UserName,' Smith') where UserId=1;
Query OK, 1 row affected (0.12 sec)
Rows matched: 1 Changed: 1 Warnings: 0

업데이트 후 테이블의 레코드를 다시 한번 확인해 보겠습니다.

mysql> select *from DemoTable;

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

+--------+------------+
| UserId | UserName   |
+--------+------------+
| 1      | John Smith |
| 2      | Chris      |
| 3      | Robert     |
+--------+------------+
3 rows in set (0.00 sec)

정리 및 참고 사항

이처럼 CONCAT() 함수와 UPDATE 문을 조합하면 기존 데이터를 삭제하지 않고도 새로운 문자열을 자연스럽게 덧붙일 수 있습니다. 몇 가지 유용한 팁을 추가로 알려드리면:

- 구분자 활용: CONCAT_WS() 함수를 사용하면 첫 번째 인자로 지정한 구분자(예: 공백, 콤마)를 자동으로 삽입하며 여러 문자열을 연결할 수 있습니다.
- NULL 처리: CONCAT() 함수는 인자 중 하나라도 NULL이면 전체 결과가 NULL이 됩니다. 따라서 IFNULL() 또는 COALESCE() 함수를 함께 사용하면 안전하게 처리할 수 있습니다.
- WHERE 절 필수: WHERE 조건 없이 UPDATE를 실행하면 테이블의 모든 행이 변경되므로 반드시 조건을 명시해야 합니다.