Mysql Replace 문자열 치환하기 2020 Update

MySQL Replace 문은 SQL 표준의 확장이며, 기존 문자열 표현식을 새 문자열 값으로 바꾸는 데 사용되는 문자열 함수 중 하나입니다.

Replace 문을 사용하여 데이터베이스 테이블에 데이터를 삽입하거나 업데이트 해봅시다. REPLACE 명령문을 사용하려면 최소한 테이블에 대한 권한 INSERT와 DELETE 권한이 있어야 합니다.


mysql replace
데이터베이스 생성

먼저 Replace문 사용전에 Database 생성 명령으로 test 데이터베이스를 생성하겠습니다. 그리고 test 데이터베이스를 사용하겠다고 선언합니다.

create database test;
use test;

MySQL Replace 사용하여 새 행 삽입하기

새 행을 삽입하기 위한 Replace 명령 구문 입니다 .

REPLACE [INTO] table_name(column_list)
VALUES(value_list);

예제를 통하여 Replace 문을 사용하여 새 행을 삽입하는 방식을 확인해보겠습니다.

먼저 아래와 같이 “Seoul”이라는 이름의 새 테이블을 만들어 보겠습니다.

CREATE TABLE Seoul (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    population INT NOT NULL
);

테이블 생성 후 “Seoul” 테이블에 3개의 행을 삽입 하겠습니다.

INSERT INTO Seoul(name,population)
VALUES('Enupyeong' ,481800),
      ('gangmam',543200),
      ('songpa',677700);

그리고 Seoul 테이블의 데이터를 조회 해보겠습니다.

SELECT * FROM Seoul;
mysql replace
테이블 데이터 조회

그 후 아래 Replace 문을 사용하여 “Gangmam”의 인구를 543222로 업데이트 하겠습니다.

REPLACE INTO seoul(id,population)
VALUES(2,543222);

교체 여부를 확인하기 위해 서울 테이블의 데이터를 다시 한 번 쿼리하겠습니다.

SELECT * FROM seoul;
mysql replace

name 열의 값이 Null이 되었습니다. Replace 문은 다음과 같이 작동했습니다.

  1. Replace 문으로 새로운 행을 서울에 삽입하려고 했고 ID 2가 서울 테이블에 이미 존재하기 때문에 삽입에 실패했습니다.
  2. Replace 문이 ID 2의 행을 삭제하고 population에 543222의 인구수를 삽입 하였고 이름 열에 대한 값은 지정이 안되었기 때문에 NULL로 설정되었습니다.

MySQL Replace를 사용하여 행 업데이트

다음은 Replace 명령문을 사용하여 데이터를 업데이트 해보겠습니다. 아래 문장은 행 업데이트 Replace 명령 구문입니다.

REPLACE INTO table
SET column1 = value1,
    column2 = value2;

Replace 명령문을 사용하여 Guro 도시 인구 406300명으로 업데이트 해보겠습니다.

REPLACE INTO seoul
SET id = 4,
    name = 'Guro',
    population = 406300;

UPDATE 문과 달리 SET 절에 열의 값을 지정하지 않으면 Replace문이 해당 열의 기본값을 사용합니다.

아래와 같이 테이블 데이터 조회를 통해 Seoul 테이블을 조회하여 Guro 도시 인구가 업데이트 되어 추가된것을 확인할 수 있습니다.

SELECT * FROM Seoul;
SELECT * FROM Seoul;
SELECT * FROM Seoul;

MySQL Replace문 사용하여 Select 명령문에서 데이터 삽입

다음은 Replace 데이터를 쿼리에서 가져온 테이블에 데이터를 삽입 하는 명령문 입니다.

REPLACE INTO table_1(column_list)
SELECT column_list
FROM table_2
WHERE where_condition;

위의 REPLACE 문장은 INSERT INTO SELECT 문장과 유사하다는 점에 유의하시기 바랍니다.

REPLACE INTO 
    seoul(name,population)
SELECT 
    name,
    population 
FROM 
   seoul 
WHERE id = 1;

위 명령문은 Replace INTO를 사용하여 동일한 테이블 내의 행을 복사합니다.

이것으로 replace 사용방법 삽입 및 업데이트 사용으로 테이블에 데이터를 삽입하거나 업데이트하기 위한 다양한 형태의 구문을 알아보았습니다.

Mysql 관련 참고하기

mysql tutorial에서 알아보기

MySQL INSERT UPDATE DELETE 방법에 대해 알아보자!

Mysql join 종류 및 예제를 통한 사용법을 알아보자!

Comments are closed.

error: