Responsive Advertisement

Node.js에서 MySQL 데이터 삭제하기: DELETE 문 사용법

Node.js에서 MySQL을 사용할 때, 필요 없는 데이터를 삭제하는 작업은 매우 중요합니다. MySQL에서는 DELETE 문을 사용하여 테이블에서 특정 조건에 맞는 데이터를 삭제할 수 있습니다. 이번 글에서는 Node.jsMySQL을 연동하여 데이터를 삭제하는 방법을 단계별로 설명하겠습니다.

Node.js와 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에 성공적으로 연결되었습니다.');
});

위 코드를 통해 Node.js와 MySQL 데이터베이스 간의 연결을 설정할 수 있습니다.

MySQL 데이터 삭제: DELETE 사용

MySQL에서 데이터를 삭제하려면 DELETE 문을 사용합니다. 삭제는 신중하게 해야 하며, 특히 WHERE 조건 없이 삭제하면 테이블의 모든 데이터가 제거될 수 있습니다.

1. 특정 조건에 맞는 데이터 삭제하기

특정 조건에 맞는 데이터를 삭제하려면 WHERE 절을 함께 사용해야 합니다. 예를 들어, 이메일이 john@example.com인 사용자를 삭제하는 방법은 다음과 같습니다.

// 특정 조건에 맞는 데이터 삭제 쿼리
const deleteQuery = 'DELETE FROM users WHERE email = ?';
const email = 'john@example.com';

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

위 코드에서는 WHERE 절을 사용해 이메일이 john@example.com인 사용자를 삭제합니다. 배열 형태로 조건 값을 전달하여 SQL 인젝션과 같은 보안 문제를 방지할 수 있습니다.

2. 모든 데이터 삭제하기

테이블의 모든 데이터를 삭제하려면 DELETE 문에서 WHERE 조건을 사용하지 않습니다. 예를 들어, users 테이블의 모든 데이터를 삭제하려면 아래와 같이 할 수 있습니다.

// 모든 데이터 삭제 쿼리
const deleteAllQuery = 'DELETE FROM users';

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

이 코드는 테이블에 저장된 모든 데이터를 삭제합니다. WHERE 절이 없기 때문에, 주의해서 사용해야 합니다.

3. 특정 ID를 기준으로 데이터 삭제하기

일반적으로 데이터는 기본 키나 고유 식별자를 기준으로 삭제합니다. 예를 들어, id가 1인 사용자를 삭제하는 방법은 다음과 같습니다.

// ID를 기준으로 데이터 삭제 쿼리
const deleteByIdQuery = 'DELETE FROM users WHERE id = ?';
const userId = 1;

// 데이터 삭제 실행
connection.query(deleteByIdQuery, [userId], (err, results) => {
    if (err) {
        console.error('ID를 기준으로 데이터 삭제 중 오류 발생:', err);
        return;
    }
    console.log('ID가 1인 사용자가 성공적으로 삭제되었습니다.');
});

위 코드에서는 id가 1인 사용자를 삭제하는 예시를 보여줍니다. 이렇게 기본 키를 기준으로 데이터를 삭제하는 것이 일반적입니다.

MySQL 연결 종료

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

// MySQL 연결 종료
connection.end((err) => {
    if (err) {
        console.error('MySQL 연결 종료 중 오류 발생:', err);
        return;
    }
    console.log('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에 성공적으로 연결되었습니다.');

    // 특정 조건에 맞는 데이터 삭제
    const deleteQuery = 'DELETE FROM users WHERE email = ?';
    const email = 'john@example.com';

    // 데이터 삭제 실행
    connection.query(deleteQuery, [email], (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을 사용해 데이터를 삭제하는 것은 매우 간단합니다. DELETE 문과 WHERE 절을 사용하면 특정 조건에 맞는 데이터를 쉽게 삭제할 수 있습니다. 단, WHERE 절 없이 삭제를 수행할 경우 테이블의 모든 데이터가 삭제될 수 있으니 주의가 필요합니다. 데이터 삭제를 올바르게 사용하여 안전하고 효율적인 애플리케이션을 개발해보세요.

댓글 쓰기