Responsive Advertisement

Node.js에서 MySQL 데이터 정렬하기: ORDER BY 사용법

Node.js에서 MySQL을 사용할 때, 데이터를 조회할 뿐만 아니라 특정 기준에 따라 정렬할 수도 있습니다. MySQL에서 데이터를 정렬하기 위해서는 ORDER BY 절을 사용합니다. 이번 글에서는 Node.js와 MySQL을 연동하여 ORDER BY 절을 활용해 데이터를 정렬하는 방법을 설명하겠습니다.

Node.js와 MySQL 연결 설정

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

1. mysql2 패키지 설치

Node.js와 MySQL을 연동하려면 mysql2 패키지를 설치해야 합니다. 이 패키지를 사용하면 MySQL 데이터베이스에 쉽게 접근할 수 있습니다.

$ npm init -y
$ npm install mysql2

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

2. MySQL 연결 설정

MySQL 서버와의 연결을 설정하려면, 아래와 같이 mysql.createConnection을 사용하여 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 데이터베이스와 Node.js 간의 연결을 설정할 수 있습니다.

MySQL 데이터 정렬: ORDER BY 사용

MySQL에서 데이터를 정렬하려면 ORDER BY 절을 사용합니다. 기본적으로 오름차순으로 정렬되며, 내림차순으로 정렬하려면 DESC 키워드를 추가할 수 있습니다.

1. 기본적인 ORDER BY 사용법

다음은 users 테이블에서 사용자의 이름을 기준으로 오름차순으로 정렬하는 예시입니다.

// 이름을 기준으로 오름차순 정렬
const selectQuery = 'SELECT * FROM users ORDER BY name ASC';

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

위 코드에서는 ORDER BY name ASC를 사용하여 users 테이블의 데이터를 이름 순으로 오름차순으로 정렬합니다. 만약 내림차순으로 정렬하고 싶다면 ASC 대신 DESC를 사용할 수 있습니다.

2. 내림차순으로 데이터 정렬하기

내림차순으로 데이터를 정렬하고 싶을 때는 ORDER BY 절에 DESC 키워드를 추가합니다. 예를 들어, 사용자의 생성 날짜(created_at)를 기준으로 가장 최근에 추가된 사용자를 먼저 조회하려면 다음과 같이 작성할 수 있습니다.

// 생성 날짜를 기준으로 내림차순 정렬
const selectQuery = 'SELECT * FROM users ORDER BY created_at DESC';

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

위 코드에서는 ORDER BY created_at DESC를 사용해 가장 최근에 추가된 사용자를 먼저 조회합니다. DESC 키워드는 내림차순을 의미합니다.

3. 여러 필드를 기준으로 정렬하기

여러 필드를 기준으로 데이터를 정렬할 수도 있습니다. 예를 들어, 이름을 기준으로 오름차순으로 정렬하고, 같은 이름을 가진 경우 이메일을 기준으로 내림차순으로 정렬하는 방법은 다음과 같습니다.

// 이름을 기준으로 오름차순, 이메일을 기준으로 내림차순 정렬
const selectQuery = 'SELECT * FROM users ORDER BY name ASC, email DESC';

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

위 코드에서는 이름을 기준으로 먼저 오름차순 정렬하고, 같은 이름이 있을 경우 이메일을 기준으로 내림차순으로 정렬하는 방법을 보여줍니다.

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 selectQuery = 'SELECT * FROM users ORDER BY created_at DESC';

    // 데이터 조회 실행
    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 연결이 종료되었습니다.');
        });
    });
});

결론

Node.js에서 MySQL을 사용해 데이터를 정렬하는 방법은 매우 간단합니다. ORDER BY 절을 활용하여 특정 필드를 기준으로 데이터를 오름차순 또는 내림차순으로 정렬할 수 있습니다. 또한, 여러 필드를 기준으로 복합적인 정렬도 가능하니, 다양한 상황에서 유용하게 활용해보세요.

댓글 쓰기