Node.js - MySQL Order By

Hai, para pemrogram yang sedang mencari ilmu! Hari ini, kita akan mendalami topik yang menarik yang akan membantu Anda mengatur data Anda seperti seorang ahli. Bayangkan Anda mencoba mengatur rak buku Anda - itu tepatnya apa yang kita lakukan dengan database kita menggunakan klausa "ORDER BY" di MySQL dalam Node.js. Mari kita mulai!

Node.js - MySQL Order By

Memahami dasar-dasar

Sebelum kita masuk ke kode, mari kita memahami apa yang dilakukan "ORDER BY". Dalam kata-kata sederhana, itu seperti topi penyortir magis untuk data Anda. Itu memungkinkan Anda mengatur hasil database Anda dalam urutan tertentu, baik ascending (A ke Z, 1 ke 100) atau descending (Z ke A, 100 ke 1).

Mengapa ORDER BY penting?

Bayangkan Anda menjalankan toko buku online. Pelanggan Anda mungkin akan senang jika buku-buku diurutkan berdasarkan harga, nama penulis, atau tanggal terbit. Itu adalah tempat ORDER BY datang untuk menyelamatkan!

Menyiapkan lingkungan kami

Pertama-tama, pastikan kita memiliki segala sesuatu yang diperlukan:

  1. Node.js terinstal di komputer Anda
  2. Database MySQL diatur
  3. Modul MySQL untuk Node.js terinstal

Jika Anda belum menginstal modul MySQL belum, buka terminal Anda dan ketik:

npm install mysql

Menghubungkan ke database kita

Mari kita mulai dengan menghubungkan ke database kita. Ini adalah skrip sederhana untuk melakukan itu:

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('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to database.');
});

Jangan lupa mengganti 'your_username', 'your_password', dan 'your_database_name' dengan kredensial MySQL Anda sebenarnya.

Contoh ORDER BY dasar

Sekarang, katakanlah kita memiliki tabel 'books' di database kita. Kita ingin mengambil semua buku dan mengurutkan mereka berdasarkan judul. Ini adalah cara kita bisa melakukan itu:

connection.query(
'SELECT * FROM books ORDER BY title',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by title:');
console.log(results);
}
);

Dalam contoh ini, kita memilih semua kolom (*) dari tabel 'books' dan mengurutkan mereka berdasarkan kolom 'title'. Secara default, ORDER BY mengurutkan dalam urutan ascending.

Urutan Descending

Apa jika kita ingin mengurutkan buku-buku kita dari Z ke A? Mudah-mudahan! Kita hanya menambahkan 'DESC' setelah nama kolom:

connection.query(
'SELECT * FROM books ORDER BY title DESC',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by title in descending order:');
console.log(results);
}
);

Mengurutkan berdasarkan beberapa kolom

Sekarang, mari kita lihat bagaimana hal ini menjadi sangat menarik. Apa jika kita ingin mengurutkan buku-buku kita terlebih dahulu berdasarkan penulis, dan kemudian berdasarkan judul? ORDER BY telah memberikan solusi untuk kita:

connection.query(
'SELECT * FROM books ORDER BY author, title',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by author, then by title:');
console.log(results);
}
);

Query ini akan pertama-tama mengurutkan buku-buku berdasarkan nama penulis. Jika dua buku memiliki penulis yang sama, itu akan kemudian mengurutkan mereka berdasarkan judul.

Menggabungkan urutan ascending dan descending

Kita bahkan dapat menggabungkan urutan ascending dan descending dalam pengurutan multi-kolom:

connection.query(
'SELECT * FROM books ORDER BY author DESC, title ASC',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by author (DESC) and title (ASC):');
console.log(results);
}
);

Ini akan mengurutkan buku-buku berdasarkan nama penulis dalam urutan descending, dan kemudian berdasarkan judul dalam urutan ascending.

Mengurutkan berdasarkan posisi kolom

Apakah Anda tahu Anda juga dapat mengurutkan berdasarkan posisi kolom? Itu benar! Sebagai ganti dari nama kolom, Anda dapat menggunakan angka yang mewakili posisi kolom dalam pernyataan SELECT Anda:

connection.query(
'SELECT id, title, author FROM books ORDER BY 3, 2',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by author (3rd column), then title (2nd column):');
console.log(results);
}
);

Dalam contoh ini, '3' merujuk ke kolom 'author', dan '2' merujuk ke kolom 'title'.

Contoh praktis: Sistem Inventory Toko Buku

Mari kita gabungkan semua ini dalam contoh praktis. Bayangkan kita membuat sistem inventory untuk toko buku kita:

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('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to bookstore database.');

// Get all books, sorted by author and title
connection.query(
'SELECT * FROM books ORDER BY author, title',
(error, results, fields) => {
if (error) throw error;
console.log('All books, sorted by author and title:');
console.log(results);
}
);

// Get top 10 most expensive books
connection.query(
'SELECT * FROM books ORDER BY price DESC LIMIT 10',
(error, results, fields) => {
if (error) throw error;
console.log('Top 10 most expensive books:');
console.log(results);
}
);

// Get books published in the last year, sorted by publication date
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('Books published in the last year, sorted by date:');
console.log(results);
}
);

connection.end();
});

Skrip ini menghubungkan ke database toko buku kita dan melakukan tiga query:

  1. Mengambil semua buku, diurutkan berdasarkan penulis dan kemudian berdasarkan judul.
  2. Mendapatkan 10 buku termahal.
  3. Menemukan semua buku yang diterbitkan dalam setahun terakhir, diurutkan berdasarkan tanggal terbit.

Kesimpulan

Dan begitulah, teman-teman! Anda telah belajar bagaimana menggunakan ORDER BY di Node.js dengan MySQL. Ingat, mengatur data Anda adalah seperti mengatur rak buku - itu membuat segala sesuatu mudah untuk ditemukan dan lebih menyenangkan untuk dilihat.

Berikut adalah tabel rujukan cepat dari metode ORDER BY yang kita pelajari:

Metode Deskripsi Contoh
Basic ORDER BY Mengurutkan dalam urutan ascending ORDER BY column_name
Descending ORDER BY Mengurutkan dalam urutan descending ORDER BY column_name DESC
Multi-column ORDER BY Mengurutkan berdasarkan beberapa kolom ORDER BY column1, column2
Mixed ORDER BY Menggabungkan ascending dan descending ORDER BY column1 DESC, column2 ASC
Position-based ORDER BY Mengurutkan berdasarkan posisi kolom ORDER BY 1, 2

Latih konsep-konsep ini, eksperimen dengan database Anda sendiri, dan segera Anda akan menjadi ahli dalam pengurutan data! Selamat coding!

Credits: Image by storyset