Responsive Advertisement

Node.js에서 MySQL 데이터 조회하기: SELECT 문 사용법

Node.js에서 MySQL을 사용하면 데이터를 삽입하는 것뿐만 아니라, 저장된 데이터를 쉽게 조회할 수 있습니다. 이를 위해 SELECT 문을 사용하여 테이블에 저장된 데이터를 검색할 수 있습니다. 이 글에서는 Node.js에서 MySQL을 사용해 데이터를 조회하는 방법, 즉 SELECT FROM 문을 사용하는 방법을 단계별로 설명하겠습니다.

Node.js와 MySQL 연결 설정

MySQL 데이터를 조회하기 전에 먼저 Node.js와 MySQL 간의 연결을 설정해야 합니다. 이를 위해 mysql2 패키지를 설치하고, MySQL 서버와의 연결을 구성합니다.

1. mysql2 패키지 설치

MySQL과 Node.js를 연동하기 위해 mysql2 패키지를 설치합니다.

$ npm init -y
$ npm install mysql2

이 명령을 실행하면 mysql2 패키지가 프로젝트에 설치됩니다.

2. MySQL 연결 설정

다음은 MySQL 서버에 연결하는 기본 설정 코드입니다. 호스트, 사용자명, 비밀번호, 데이터베이스 이름을 사용하여 연결을 설정합니다.

// app.js

const mysql = require('mysql2');

// MySQL 연결 설정
const connection = mysql.createConnection({
    host: 'localhost',       // MySQL 서버 호스트
    user: 'root',            // MySQL 사용자명
    password: 'your-password', // MySQL 비밀번호
    database: 'node_mysql'   // 사용할 데이터베이스 이름
});

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

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

MySQL 데이터 조회: SELECT FROM

MySQL에서 데이터를 조회할 때는 SELECT FROM 문을 사용합니다. 이를 통해 테이블의 모든 데이터를 가져오거나, 특정 조건에 맞는 데이터를 검색할 수 있습니다.

1. 테이블 생성

먼저 데이터를 조회할 테이블이 필요합니다. users 테이블을 생성해 사용자의 정보를 저장한다고 가정합니다.

// users 테이블 생성 쿼리
const createTableQuery = `
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100),
        email VARCHAR(100),
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )
`;

// 테이블 생성 실행
connection.query(createTableQuery, (err, results) => {
    if (err) {
        console.error('테이블 생성 중 오류 발생:', err);
        return;
    }
    console.log('테이블이 성공적으로 생성되었습니다.');
});

위 쿼리는 users라는 테이블을 생성하며, 사용자의 이름, 이메일, 생성 시간을 저장할 수 있는 필드를 포함합니다.

2. 데이터 삽입

조회할 데이터를 삽입해야 합니다. INSERT INTO 문을 사용해 데이터를 추가할 수 있습니다.

// 데이터 삽입 쿼리
const insertQuery = 'INSERT INTO users (name, email) VALUES (?, ?)';
const userData = ['John Doe', 'john@example.com'];

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

위 코드를 사용해 users 테이블에 데이터를 삽입합니다. 이제 이 데이터를 조회할 준비가 되었습니다.

3. 전체 데이터 조회

테이블의 모든 데이터를 조회하려면 SELECT * 문을 사용할 수 있습니다. 이는 테이블에 저장된 모든 행을 반환합니다.

// 전체 데이터 조회 쿼리
const selectQuery = 'SELECT * FROM users';

// 데이터 조회 실행
connection.query(selectQuery, (err, results, fields) => {
    if (err) {
        console.error('데이터 조회 중 오류 발생:', err);
        return;
    }
    console.log('조회된 데이터:', results);
});

위 코드에서는 SELECT * 문을 사용해 users 테이블에 저장된 모든 데이터를 조회합니다. 결과는 results 배열에 저장되며, 각 행은 객체로 반환됩니다.

4. 조건에 맞는 데이터 조회

특정 조건에 맞는 데이터를 조회하려면 WHERE 절을 사용할 수 있습니다. 예를 들어, 이메일이 특정 값인 사용자를 조회할 수 있습니다.

// 조건에 맞는 데이터 조회 쿼리
const selectQueryByEmail = 'SELECT * FROM users WHERE email = ?';
const email = 'john@example.com';

// 조건에 맞는 데이터 조회 실행
connection.query(selectQueryByEmail, [email], (err, results, fields) => {
    if (err) {
        console.error('조건에 맞는 데이터 조회 중 오류 발생:', err);
        return;
    }
    console.log('조회된 데이터:', results);
});

위 코드에서는 WHERE 절을 사용해 이메일이 john@example.com인 사용자를 조회합니다. 배열에 조건 값을 전달하여 보안 취약점인 SQL 인젝션을 방지할 수 있습니다.

5. 특정 필드만 조회하기

전체 데이터를 조회하지 않고 특정 필드만 조회할 수 있습니다. 예를 들어, 사용자 이름만 조회하고 싶다면 다음과 같이 할 수 있습니다.

// 특정 필드만 조회 쿼리
const selectNamesQuery = 'SELECT name FROM users';

// 데이터 조회 실행
connection.query(selectNamesQuery, (err, results, fields) => {
    if (err) {
        console.error('특정 필드 조회 중 오류 발생:', err);
        return;
    }
    console.log('조회된 이름:', results);
});

위 코드에서는 SELECT name을 사용해 users 테이블에서 이름만 조회합니다.

MySQL 연결 종료

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

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

    // 전체 데이터 조회 쿼리
    const selectQuery = 'SELECT * FROM users';

    // 데이터 조회 실행
    connection.query(selectQuery, (err, results, fields) => {
        if (err) {
            console.error('데이터 조회 중 오류 발생:', err);
            return;
        }
        console.log('조회된 데이터:', results);

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

이 코드를 실행하면, MySQL에서 users 테이블에 저장된 데이터를 조회하고, 결과를 출력한 후 MySQL 연결을 종료합니다.

결론

Node.js와 MySQL을 사용하면 간단하게 데이터를 조회할 수 있습니다. mysql2 패키지를 사용해 MySQL 데이터베이스에 연결하고, SELECT 문을 통해 테이블에 저장된 데이터를 검색할 수 있습니다. 이를 통해 Node.js 애플리케이션에서 데이터를 조회하고 필요한 정보만 가져오는 기능을 쉽게 구현할 수 있습니다. 다양한 조건을 사용해 데이터를 효율적으로 조회하고, 이를 활용해 유용한 기능을 구현해보세요!

댓글 쓰기