PostgreSQL - ORDER BY Clause: A Beginner's Guide

Hai teman-teman, para ahli basisdata masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia PostgreSQL, khususnya fokus pada klausa ORDER BY. Jangan khawatir jika Anda baru belajar pemrograman – saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatunya langkah demi langkah. Mari kita masuk ke dalam!

PostgreSQL - Order By Clause

Apa Itu Klausa ORDER BY?

Bayangkan Anda memiliki lemari pakaian yang kacau penuh pakaian. Klausa ORDER BY seperti organisator pribadi Anda, membantu Anda mengatur data (atau pakaian) Anda dalam urutan tertentu. Ini adalah alat yang kuat yang memungkinkan kita untuk mengurutkan hasil query kita berdasarkan satu atau lebih kolom.

Mengapa Ini Penting?

Dalam dunia nyata, data jarang datang dalam urutan yang kita inginkan. Klausa ORDER BY membantu kita untuk menyajikan data dalam cara yang bermakna. Apakah Anda sedang membangun sebuah website, menganalisis data penjualan, atau mencoba mencari pola, kemampuan untuk mengurutkan data sangat penting.

Sintaks Klausa ORDER BY

mari kita lihat sintaks dasar klausa ORDER BY:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

Jangan takut! Mari kitauraikan ini:

  1. SELECT: Ini adalah tempat kita memilih kolom mana yang kita ingin lihat.
  2. FROM: Ini menentukan tabel mana kita mengambil data kita.
  3. ORDER BY: Ini bintang utamanya – dia memberitahu PostgreSQL bagaimana mengurutkan hasil kita.
  4. column1, column2, ...: Ini adalah kolom yang kita ingin urutkan.
  5. [ASC|DESC]: Ini opsional. ASC berarti urutan naik (A ke Z, 1 ke 10), dan DESC berarti urutan turun (Z ke A, 10 ke 1). Jika kita tidak menentukan, nilai defaultnya adalah ASC.

Contoh ORDER BY Dalam Aksi

mari kita buat tabel sederhana untuk bermain. Bayangkan kita menjalankan sebuah toko buku kecil:

CREATE TABLE books (
id SERIAL PRIMARY KEY,
title VARCHAR(100),
author VARCHAR(100),
price DECIMAL(10, 2),
publication_date DATE
);

INSERT INTO books (title, author, price, publication_date) VALUES
('The Great Gatsby', 'F. Scott Fitzgerald', 12.99, '1925-04-10'),
('To Kill a Mockingbird', 'Harper Lee', 14.99, '1960-07-11'),
('1984', 'George Orwell', 11.99, '1949-06-08'),
('Pride and Prejudice', 'Jane Austen', 9.99, '1813-01-28'),
('The Catcher in the Rye', 'J.D. Salinger', 13.99, '1951-07-16');

Sekarang kita memiliki beberapa data, mari kita mulai mengurutkan!

Contoh 1: Pengurutan Dasar

mari kita urutkan buku-buku kita berdasarkan judul:

SELECT * FROM books ORDER BY title;

Ini akan memberikan kita:

id title author price publication_date
3 1984 George Orwell 11.99 1949-06-08
4 Pride and Prejudice Jane Austen 9.99 1813-01-28
5 The Catcher in the Rye J.D. Salinger 13.99 1951-07-16
1 The Great Gatsby F. Scott Fitzgerald 12.99 1925-04-10
2 To Kill a Mockingbird Harper Lee 14.99 1960-07-11

Seperti yang Anda lihat, buku-buku sekarang diurutkan dalam urutan abjad berdasarkan judul.

Contoh 2: Urutan Turun

Apa bila kita ingin melihat buku-buku paling mahal terlebih dahulu?

SELECT * FROM books ORDER BY price DESC;

Hasil:

id title author price publication_date
2 To Kill a Mockingbird Harper Lee 14.99 1960-07-11
5 The Catcher in the Rye J.D. Salinger 13.99 1951-07-16
1 The Great Gatsby F. Scott Fitzgerald 12.99 1925-04-10
3 1984 George Orwell 11.99 1949-06-08
4 Pride and Prejudice Jane Austen 9.99 1813-01-28

Sekarang kita melihat buku-buku diurutkan dari harga tertinggi ke terendah.

Contoh 3: Kolom Ganda

Kita dapat mengurutkan berdasarkan beberapa kolom. mari kita urutkan berdasarkan penulis, kemudian berdasarkan judul:

SELECT * FROM books ORDER BY author, title;

Hasil:

id title author price publication_date
1 The Great Gatsby F. Scott Fitzgerald 12.99 1925-04-10
3 1984 George Orwell 11.99 1949-06-08
2 To Kill a Mockingbird Harper Lee 14.99 1960-07-11
5 The Catcher in the Rye J.D. Salinger 13.99 1951-07-16
4 Pride and Prejudice Jane Austen 9.99 1813-01-28

Ini mengurutkan terlebih dahulu berdasarkan penulis (secara abjad), kemudian berdasarkan judul untuk penulis yang sama.

Contoh 4: Campur ASC dan DESC

Kita bahkan dapat mencampur urutan naik dan turun:

SELECT * FROM books ORDER BY author ASC, price DESC;

Ini akan mengurutkan penulis secara abjad, tetapi untuk setiap penulis, ia akan menampilkan buku termahal terlebih dahulu.

Tips dan Trik Praktis

  1. Kinerja: Saat berurusan dengan dataset besar, menambahkan indeks ke kolom yang sering diurutkan dapat meningkatkan kecepatan query secara signifikan.

  2. NULLS FIRST/LAST: Anda dapat menentukan di mana nilai NULL harus muncul dalam pengurutan:

    SELECT * FROM books ORDER BY price DESC NULLS LAST;
  3. Ekspresi: Anda dapat mengurutkan berdasarkan hasil ekspresi:

    SELECT * FROM books ORDER BY (price * 100);
  4. Nomor Ordinal: Sebagai ganti nama kolom, Anda dapat menggunakan nomor yang mewakili posisi kolom dalam daftar SELECT:

    SELECT title, price FROM books ORDER BY 2 DESC;

    Di sini, 2 merujuk ke kolom kedua (harga) dalam daftar SELECT.

Kesimpulan

Dan begitu! Anda baru saja mengambil langkah pertama ke dunia pengurutan data dengan klausa ORDER BY PostgreSQL. Ingat, latihan membuat sempurna. Cobalah membuat tabel favorit Anda sendiri dan eksperimen dengan berbagai macam pengurutan. Anda akan menjadi ahli pengurutan dalam waktu singkat!

Semoga Anda senang berquery, dan may your data always be well-ordered!

Credits: Image by storyset