Responsive Advertisement

Node.js에서 MySQL 데이터 업데이트하기: UPDATE 문 사용법

Node.js와 MySQL을 사용하면 데이터를 삽입하고 조회할 수 있을 뿐만 아니라, 기존 데이터를 업데이트할 수 있습니다. 데이터를 수정하는 가장 일반적인 방법은 UPDATE 문을 사용하는 것입니다. 이번 글에서는 Node.js와 MySQL을 연동하여 UPDATE 문을 사용해 데이터를 업데이트하는 방법을 단계별로 설명하겠습니다.

Node.js와 MySQL 연결 설정

MySQL 데이터를 업데이트하기 전에, 먼저 Node.js와 MySQL 간의 연결을 설정해야 합니다. 이를 위해 mysql2 패키지를 설치하고, MySQL 서버에 연결하는 방법을 확인해보겠습니다.

1. mysql2 패키지 설치

MySQL과 Node.js를 연동하려면 mysql2 패키지를 설치해야 합니다. 이 패키지는 MySQL 서버와의 데이터 교환을 쉽게 해줍니다.

$ npm init -y
$ npm install mysql2

위 명령어로 mysql2 패키지를 프로젝트에 설치할 수 있습니다.

2. MySQL 연결 설정

이제 MySQL 서버와의 연결을 설정할 차례입니다. 아래 코드를 사용하여 MySQL에 연결할 수 있습니다.

// app.js

const mysql = require('mysql2');

// MySQL 연결 설정
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'your-password',
    database: 'node_mysql'
});

// MySQL 연결
connection.connect((err) => {
    if (err) {
        console.error('MySQL 연결 중 오류 발생:', err);
        return;
    }
    console.log('MySQL에 성공적으로 연결되었습니다.');
});

MySQL 데이터 업데이트: UPDATE 문 사용

MySQL에서 데이터를 수정하려면 UPDATE 문을 사용합니다. UPDATE 문은 특정 조건에 맞는 데이터를 수정할 때 사용되며, SET 절을 통해 어떤 필드를 수정할지 지정합니다.

1. 기본적인 UPDATE 문 사용

예를 들어, users 테이블에서 특정 사용자의 이메일을 업데이트한다고 가정해보겠습니다.

// 특정 사용자의 이메일 업데이트 쿼리
const updateQuery = 'UPDATE users SET email = ? WHERE id = ?';
const data = ['newemail@example.com', 1];

// 데이터 업데이트 실행
connection.query(updateQuery, data, (err, results) => {
    if (err) {
        console.error('데이터 업데이트 중 오류 발생:', err);
        return;
    }
    console.log('데이터가 성공적으로 업데이트되었습니다.');
});

위 코드에서는 id가 1인 사용자의 이메일을 newemail@example.com으로 업데이트합니다. WHERE 조건을 사용하여 특정 데이터를 선택한 후, SET을 통해 이메일 필드를 업데이트합니다.

2. 여러 필드 업데이트

한 번에 여러 필드를 업데이트하려면 SET 절에서 필드를 쉼표로 구분하여 나열할 수 있습니다. 예를 들어, 사용자의 이름과 이메일을 동시에 업데이트하려면 다음과 같이 작성할 수 있습니다.

// 이름과 이메일을 동시에 업데이트하는 쿼리
const updateQuery = 'UPDATE users SET name = ?, email = ? WHERE id = ?';
const data = ['John Doe', 'john@example.com', 1];

// 데이터 업데이트 실행
connection.query(updateQuery, data, (err, results) => {
    if (err) {
        console.error('데이터 업데이트 중 오류 발생:', err);
        return;
    }
    console.log('이름과 이메일이 성공적으로 업데이트되었습니다.');
});

위 코드에서는 nameemail 필드를 동시에 업데이트합니다.

3. 조건 없이 모든 데이터 업데이트

만약 WHERE 절을 사용하지 않으면, 테이블의 모든 데이터가 수정됩니다. 예를 들어, 모든 사용자의 이메일 도메인을 변경하고 싶다면 다음과 같이 할 수 있습니다.

// 모든 사용자의 이메일 도메인 업데이트 쿼리
const updateQuery = "UPDATE users SET email = REPLACE(email, '@old.com', '@new.com')";

// 데이터 업데이트 실행
connection.query(updateQuery, (err, results) => {
    if (err) {
        console.error('데이터 업데이트 중 오류 발생:', err);
        return;
    }
    console.log('모든 사용자의 이메일 도메인이 성공적으로 업데이트되었습니다.');
});

이 쿼리는 모든 이메일에서 @old.com@new.com으로 변경합니다. REPLACE() 함수를 사용하여 문자열을 치환할 수 있습니다.

4. 특정 조건에 따라 여러 행 업데이트

특정 조건을 만족하는 여러 행을 동시에 업데이트할 수도 있습니다. 예를 들어, 나이가 30 이상인 사용자의 등급을 'Premium'으로 업데이트하는 방법을 살펴보겠습니다.

// 특정 조건에 따라 여러 행 업데이트 쿼리
const updateQuery = "UPDATE users SET membership = 'Premium' WHERE age >= 30";

// 데이터 업데이트 실행
connection.query(updateQuery, (err, results) => {
    if (err) {
        console.error('데이터 업데이트 중 오류 발생:', err);
        return;
    }
    console.log('나이가 30 이상인 사용자의 등급이 성공적으로 업데이트되었습니다.');
});

위 코드에서는 나이가 30 이상인 사용자들의 membership 필드를 'Premium'으로 업데이트합니다.

MySQL 연결 종료

데이터 업데이트 작업이 끝난 후에는 MySQL 연결을 종료하는 것이 중요합니다. connection.end() 메서드를 사용해 안전하게 연결을 종료할 수 있습니다.

// MySQL 연결 종료
connection.end((err) => {
    if (err) {
        console.error('MySQL 연결 종료 중 오류 발생:', err);
        return;
    }
    console.log('MySQL 연결이 종료되었습니다.');
});

전체 코드 예시

지금까지 설명한 내용을 바탕으로, 특정 사용자의 데이터를 업데이트하는 전체 코드는 다음과 같습니다.

// app.js

const mysql = require('mysql2');

// MySQL 연결 설정
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'your-password',
    database: 'node_mysql'
});

// MySQL 연결
connection.connect((err) => {
    if (err) {
        console.error('MySQL 연결 중 오류 발생:', err);
        return;
    }
    console.log('MySQL에 성공적으로 연결되었습니다.');

    // 데이터 업데이트 쿼리
    const updateQuery = 'UPDATE users SET email = ? WHERE id = ?';
    const data = ['newemail@example.com', 1];

    // 데이터 업데이트 실행
    connection.query(updateQuery, data, (err, results) => {
        if (err) {
            console.error('데이터 업데이트 중 오류 발생:', err);
            return;
        }
        console.log('데이터가 성공적으로 업데이트되었습니다.');

        // MySQL 연결 종료
        connection.end((err) => {
            if (err) {
                console.error('MySQL 연결 종료 중 오류 발생:', err);
                return;
            }
            console.log('MySQL 연결이 종료되었습니다.');
        });
    });
});

결론

Node.js에서 MySQL을 사용하면 UPDATE 문을 통해 테이블의 데이터를 손쉽게 수정할 수 있습니다. 특정 조건에 맞춰 데이터를 업데이트하거나, 여러 필드를 동시에 수정하는 등의 작업을 할 수 있습니다. 이 방법을 활용해 데이터베이스를 효율적으로 관리하고 애플리케이션의 기능을 더욱 확장해보세요.

댓글 쓰기