0Pricing
Coding Interview Prep · Pelajaran

Urutan Eksekusi Kueri secara Logis

Mengapa FROM dijalankan sebelum SELECT dan bagaimana pemahaman tentang urutan eksekusi yang sebenarnya menjawab belasan pertanyaan jebakan.

Urutan Eksekusi Kueri secara Logis adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Pertanyaan yang Membuka Jalan bagi Belasan Pertanyaan Lain

Pewawancara menanyakan "Dalam urutan apa kueri sebenarnya dijalankan?" karena hal ini menjelaskan banyak hal: mengapa alias SELECT gagal digunakan dalam WHERE, mengapa WHERE tidak dapat memfilter agregat, dan masih banyak lagi.

Urutan Penulisan vs Urutan Logis

Anda menulis kueri dimulai dengan SELECT, tetapi mesin menjalankannya dimulai dengan FROM. Ketidaksesuaian ini, dengan SELECT dievaluasi hampir terakhir, menyebabkan sebagian besar kebingungan.

Urutan Logis Lengkap

Urutan logis lengkapnya adalah: FROM, lalu WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY, dan terakhir LIMIT. Setiap hal yang sering mengecoh di bawah ini dapat langsung dipahami dari daftar tersebut.

Mengapa FROM Berjalan Lebih Dahulu

FROM berjalan lebih dahulu karena mesin memerlukan baris untuk diolah sebelum melakukan hal lainnya. Mesin membentuk baris sumber, dan setelah itu WHERE dapat menentukan baris mana yang dipertahankan.

SELECT e.name, d.name AS dept
FROM employees e
JOIN departments d ON d.id = e.department_id
WHERE e.salary > 50000;

Jebakan: Alias Tidak Dapat Digunakan dalam WHERE

Konsekuensi yang paling sering ditanyakan: alias SELECT tidak dapat digunakan dalam WHERE, karena WHERE berjalan sebelum SELECT. Kode di bawah ini menunjukkan kesalahan tersebut dan perbaikannya: ulangi ekspresinya.

-- FAILS: alias 'annual' unknown in WHERE
SELECT salary * 12 AS annual
FROM employees
WHERE annual > 600000;

-- FIX: repeat the expression
SELECT salary * 12 AS annual
FROM employees
WHERE salary * 12 > 600000;

Jebakan: WHERE Tidak Dapat Melihat Agregat

WHERE berjalan sebelum pengelompokan, sehingga tidak dapat melihat agregat seperti COUNT(). Itulah fungsi HAVING: WHERE memfilter baris, sedangkan HAVING memfilter kelompok setelah agregasi.

-- WHERE cannot use COUNT(*)
SELECT department, COUNT(*) AS headcount
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;

Mengapa ORDER BY Dapat Menggunakan Alias

Kebalikannya juga berlaku: ORDER BY berjalan setelah SELECT, sehingga dapat menggunakan alias SELECT. Aliasnya sama, tetapi waktunya berbeda; itulah sebabnya alias dapat digunakan di sini, tetapi tidak dalam WHERE.

SELECT name, salary * 12 AS annual
FROM employees
ORDER BY annual DESC;

Posisi DISTINCT

DISTINCT berjalan setelah SELECT, tetapi sebelum ORDER BY. Karena DISTINCT menghapus duplikasi berdasarkan kolom keluaran, Anda hanya dapat mengurutkan berdasarkan sesuatu yang tetap ada dalam daftar SELECT.

-- ERROR in many engines:
-- ORDER BY column not in the DISTINCT select list
SELECT DISTINCT department
FROM employees
ORDER BY hire_date;

Contoh Pelacakan Kueri Lengkap

Mari lacak kueri nyata melalui setiap langkah: FROM membaca baris, WHERE memfilter, GROUP BY mengelompokkan, HAVING mempertahankan kelompok, SELECT menghitung, ORDER BY mengurutkan, dan LIMIT mengambil sebagian hasil.

SELECT customer_id, SUM(amount) AS total
FROM orders
WHERE status = 'paid'
GROUP BY customer_id
HAVING SUM(amount) > 1000
ORDER BY total DESC
LIMIT 10;

Eksekusi Logis vs Fisik

Satu nuansa yang mengesankan pewawancara: ini adalah urutan logis yang menentukan kebenaran hasil. Rencana fisik dari pengoptimal dapat berbeda, selama menghasilkan baris yang sama.

Cara Mengingat Urutannya

Cara mengingatnya: bayangkan baris mengalir melalui sebuah alur pemrosesan, dan setiap langkah menyerahkan himpunan yang lebih kecil kepada langkah berikutnya. Jika terjadi kesalahan, periksa apakah langkah sebelumnya menghasilkan hal yang dibutuhkan.

Uji Cepat

Terapkan urutan eksekusi untuk menemukan kesalahannya.

Ringkasan

Ringkasan: urutan logisnya adalah FROM, WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY, LIMIT. WHERE berjalan sebelum SELECT, sehingga alias tidak tersedia; ORDER BY berjalan setelahnya, sehingga alias dapat digunakan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Urutan Eksekusi Kueri secara Logis” gratis?

Ya — teks lengkap “Urutan Eksekusi Kueri secara Logis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Urutan Eksekusi Kueri secara Logis”?

Mengapa FROM dijalankan sebelum SELECT dan bagaimana pemahaman tentang urutan eksekusi yang sebenarnya menjawab belasan pertanyaan jebakan. Kamu berlatih Coding Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Coding Interview Prep?

Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Urutan Eksekusi Kueri secara Logis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Coding Interview Prep ini?

Ya. Setiap pelajaran Coding Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa Itu SQL dan Mengapa Pewawancara Menanyakannya
  2. Urutan Eksekusi Kueri secara Logis
  3. Kunci Utama, Kunci Asing, dan Batasan
  4. Membaca Skema di Bawah Tekanan
← Kembali ke Coding Interview Prep