Node.js - MySQL ORDER BY

안녕하세요, 야심 찬 프로그래머 여러분! 오늘 우리는 데이터를 프로처럼 정리하는 흥미로운 주제로 깊이 들어보겠습니다. 책장을 정리하려고 할 때를 상상해 보세요 - 이 precisely이 MySQL의 "ORDER BY" 절을 사용하여 데이터베이스를 정리하는 것입니다. 시작해 보겠습니다!

Node.js - MySQL Order By

기본 이해

코드로 들어가기 전에 "ORDER BY"가 무엇하는지 이해해 보겠습니다. 간단히 말하면, 데이터에 마법의 정렬 모자를 씌우는 것입니다. 데이터베이스 결과를 특정 순서로 정렬할 수 있게 해줍니다. 오름차순(A에서 Z, 1에서 100) 또는 내림차순(Z에서 A, 100에서 1) 중 선택할 수 있습니다.

ORDER BY의 중요성

온라인 서점을 운영 중이라면, 고객들이 책을 가격, 저자 이름, 또는 출판일로 정렬되기를 바랄 것입니다. 이럴 때 ORDER BY가 구원자가 됩니다!

환경 설정

먼저 필요한 것들을 확인해 보겠습니다:

  1. 컴퓨터에 Node.js가 설치되어 있어야 합니다.
  2. MySQL 데이터베이스가 설정되어 있어야 합니다.
  3. Node.js용 MySQL 모듈이 설치되어 있어야 합니다.

MySQL 모듈을 아직 설치하지 않았다면, 터미널을 열고 다음 명령어를 입력하세요:

npm install mysql

데이터베이스 연결

먼저 데이터베이스에 연결해 보겠습니다. 다음과 같은 간단한 스크립트를 사용할 수 있습니다:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});

connection.connect((err) => {
if (err) {
console.error('데이터베이스에 연결하는 중 오류 발생: ' + err.stack);
return;
}
console.log('데이터베이스에 연결되었습니다.');
});

'your_username', 'your_password', 'your_database_name'을 실제 MySQL 자격 증명으로 변경하지 않 забудьте.

기본 ORDER BY 예제

이제 데이터베이스에 'books' 테이블이 있다고 가정해 봅시다. 모든 책을 검색하고 제목으로 정렬하고 싶습니다. 다음과 같이 할 수 있습니다:

connection.query(
'SELECT * FROM books ORDER BY title',
(error, results, fields) => {
if (error) throw error;
console.log('제목으로 정렬된 책들:');
console.log(results);
}
);

이 예제에서 우리는 'books' 테이블에서 모든 열(*)을 선택하고 'title' 열로 정렬합니다. 기본적으로 ORDER BY는 오름차순으로 정렬합니다.

내림차순

책을 Z에서 A로 정렬하고 싶다면? 간단합니다! 'DESC'를 열 이름 뒤에 추가하면 됩니다:

connection.query(
'SELECT * FROM books ORDER BY title DESC',
(error, results, fields) => {
if (error) throw error;
console.log('제목으로 내림차순 정렬된 책들:');
console.log(results);
}
);

여러 열로 정렬

이제 더 흥미로운 부분입니다. 책을 먼저 저자로, 그런 다음 제목으로 정렬하고 싶다면? ORDER BY는 이를 지원합니다:

connection.query(
'SELECT * FROM books ORDER BY author, title',
(error, results, fields) => {
if (error) throw error;
console.log('저자로, 그런 다음 제목으로 정렬된 책들:');
console.log(results);
}
);

이 쿼리는 먼저 저자 이름으로 책을 정렬합니다. 두 책이 같은 저자라면 제목으로 정렬합니다.

오름차순과 내림차순 혼합

여러 열 정렬에서 오름차순과 내림차순을 혼합할 수도 있습니다:

connection.query(
'SELECT * FROM books ORDER BY author DESC, title ASC',
(error, results, fields) => {
if (error) throw error;
console.log('저자로 내림차순, 제목으로 오름차순 정렬된 책들:');
console.log(results);
}
);

이 쿼리는 저자 이름으로 내림차순으로 정렬하고, 그런 다음 제목으로 오름차순으로 정렬합니다.

열 위치로 정렬

열 이름 대신 열 위치를 사용하여 정렬할 수 있다는 것을 아시나요? 정말 그렇습니다! SELECT 문에서 열의 위치를 나타내는 숫자를 사용할 수 있습니다:

connection.query(
'SELECT id, title, author FROM books ORDER BY 3, 2',
(error, results, fields) => {
if (error) throw error;
console.log('저자(3번째 열), 그런 다음 제목(2번째 열)으로 정렬된 책들:');
console.log(results);
}
);

이 예제에서 '3'은 'author' 열을 가리키고, '2'는 'title' 열을 가리킵니다.

실용적인 예제: 서점 인벤토리 시스템

이제 이 모든 것을 실용적인 예제로 통합해 보겠습니다. 서점 인벤토리 시스템을 만들고 있습니다:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'bookstore'
});

connection.connect((err) => {
if (err) {
console.error('데이터베이스에 연결하는 중 오류 발생: ' + err.stack);
return;
}
console.log('서점 데이터베이스에 연결되었습니다.');

// 모든 책을 검색하고 저자, 제목으로 정렬
connection.query(
'SELECT * FROM books ORDER BY author, title',
(error, results, fields) => {
if (error) throw error;
console.log('모든 책, 저자와 제목으로 정렬:');
console.log(results);
}
);

// 가장 비싼 10권의 책을 검색
connection.query(
'SELECT * FROM books ORDER BY price DESC LIMIT 10',
(error, results, fields) => {
if (error) throw error;
console.log('가장 비싼 10권의 책:');
console.log(results);
}
);

// 최근 1년 내에 출판된 책을 검색하고 출판일로 정렬
connection.query(
'SELECT * FROM books WHERE publication_date >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR) ORDER BY publication_date DESC',
(error, results, fields) => {
if (error) throw error;
console.log('최근 1년 내에 출판된 책들, 출판일로 정렬:');
console.log(results);
}
);

connection.end();
});

이 스크립트는 서점 데이터베이스에 연결하고 세 가지 쿼리를 수행합니다:

  1. 모든 책을 검색하고 저자와 제목으로 정렬합니다.
  2. 가장 비싼 10권의 책을 검색합니다.
  3. 최근 1년 내에 출판된 책을 검색하고 출판일로 정렬합니다.

결론

이제 Node.js와 MySQL을 사용하여 ORDER BY를 어떻게 사용하는지 배웠습니다. 데이터를 정리하는 것은 책장을 정리하는 것과 같아요 - 모든 것이 더 쉽게 찾아지고 더 기쁨을 줍니다.

이제까지 다루었던 ORDER BY 방법의 빠른 참조 표입니다:

방법 설명 예제
기본 ORDER BY 오름차순으로 정렬 ORDER BY column_name
내림차순 ORDER BY 내림차순으로 정렬 ORDER BY column_name DESC
여러 열 ORDER BY 여러 열로 정렬 ORDER BY column1, column2
혼합 ORDER BY 오름차순과 내림차순 혼합 ORDER BY column1 DESC, column2 ASC
위치 기반 ORDER BY 열 위치로 정렬 ORDER BY 1, 2

이 개념들을 연습하고 자신의 데이터베이스에서 실험해 보세요. 곧 프로처럼 데이터를 정렬할 수 있을 것입니다! 행복한 코딩을 기원합니다!

Credits: Image by storyset