Panduan Langkah demi Langkah untuk Membaca dan Memahami Kueri SQL - KDnuggets

Panduan Langkah demi Langkah untuk Membaca dan Memahami Kueri SQL – KDnuggets

Node Sumber: 3091384

Panduan Langkah demi Langkah untuk Membaca dan Memahami Kueri SQL
Image by Freepik
 

SQL, atau Standard Query Language, adalah bahasa pemrograman untuk mengelola dan memanipulasi data dalam sistem manajemen basis data relasional (RDBMS). Ini adalah bahasa standar yang digunakan di banyak perusahaan untuk membantu bisnis mengakses data dengan lancar. Karena penggunaannya secara luas, pekerjaan biasanya menyebut SQL sebagai salah satu keterampilan yang diperlukan. Itulah mengapa penting untuk mempelajari tentang SQL.

Salah satu masalah umum yang dihadapi orang-orang saat mempelajari SQL adalah memahami kueri, terutama saat orang lain menulisnya. Kami akan bekerja sebagai tim di perusahaan dan sering kali perlu membaca dan memahami kueri SQL mereka. Jadi, kita perlu berlatih mendekonstruksi query SQL dan memahaminya.

Artikel ini akan memandu proses langkah demi langkah untuk membaca dan memahami kueri SQL. Bagaimana kita melakukan itu? Mari kita bahas.

The first thing we need to do when encountering an SQL query is to understand the general intention of the SQL queries. The general intention doesn’t mean we know entirely about the query’s structure; it’s more about the overall flows.

Kita harus memahami kueri SQL standar untuk memahami kueri SQL umum. Sebagian besar kueri SQL dimulai dengan MEMILIH klausa dan ikuti dengan DARI ayat. Melanjutkan dari sana, pertanyaan paling sering diikuti oleh BERGABUNG, MANA, KELOMPOK OLEH, DIPESAN OLEH, dan MEMILIKI klausa.

Klausul di atas adalah standar dalam query SQL yang perlu kita pahami. Untuk setiap klausa, fungsinya adalah:

  1. MEMILIH: Kolom apa yang akan diambil dari tabel
  2. DARI: Dari tabel mana data tersebut berasal
  3. BERGABUNG: Gabungkan tabel dengan pengidentifikasi yang ditentukan
  4. MANA: Filter data berdasarkan kondisi
  5. KELOMPOK OLEH: Organize the data based on the column’s value and allow aggregation function to be performed.
  6. DIPESAN OLEH: Menyusun urutan hasil data berdasarkan kolom tertentu
  7. MEMILIKI: Kondisi filter untuk fungsi agregasi yang tidak dapat ditentukan MANA

Ini adalah klausa standar dan apa yang harus Anda temukan di awal ketika memahami struktur kueri SQL umum. Mari gunakan kode contoh untuk mempelajari lebih lanjut.

SELECT 
  customers.name, 
  purchases.product, 
  SUM(price) as total_price 
FROM 
  purchases 
  JOIN customers ON purchases.cust_id = customers.id 
WHERE 
  purchases.category = 'kitchen' 
GROUP BY 
  customers.name, 
  purchases.product 
HAVING 
  total_price > 10000 
ORDER BY 
  total_price DESC;

 

Saat Anda melihat kueri di atas, cobalah untuk mengidentifikasi klausa standar. Klausa tersebut akan memberi Anda pemahaman tentang data apa yang dipilih (MEMILIH), dari mana asalnya (DARI dan BERGABUNG), dan kondisi (MANA, KELOMPOK OLEH, DIPESAN OLEH, dan MEMILIKI). 

Misalnya, membaca kueri di atas akan memberi Anda pemahaman tentang hal berikut:

  1. kami mencoba mendapatkan tiga jenis data yang berbeda: Nama dari tabel yang disebut pelanggan, Produk dari tabel yang disebut pembelian, dan agregasi kolom harga yang tidak mengidentifikasi dari mana tabel tersebut berasal dan dengan alias total_price (Informasi dari klausa MEMILIH). 
  1. The overall data would come from purchases and customers tables that join together using the cust_id column from purchases and the id column from the customer’s table (Information from clause DARI) dan BERGABUNG). 
  1. Kami hanya akan memilih data dengan nilai kolom kategori di tabel pembelian sebagai 'dapur' (Informasi dari klausa MANA), 
  1. grup untuk fungsi agregasi dengan kolom nama dan produk yang berasal dari tabel masing-masing (Informasi dari klausa KELOMPOK OLEH), 
  1. difilter juga dari jumlah hasil fungsi agregasi dimana total_price lebih dari 10000 (informasi dari klausa MEMILIKI), Dan 
  1. mengurutkan data secara menurun sesuai dengan total_price (informasi dari klausa DIPESAN OLEH).

Itulah struktur kueri SQL umum yang perlu Anda ketahui dan identifikasi. Dari sana, kita dapat mengeksplorasi lebih jauh dari kueri lanjutan. Mari kita lanjutkan ke langkah berikutnya.

Akan ada saatnya Anda akan menemukan kueri kompleks yang jumlahnya sangat banyak MEMILIH klausa ada dalam kueri yang sama. Dalam hal ini, kita harus memahami hasil akhir dari query atau hasil akhir (pertama) MEMILIH Anda lihat di kueri. Kuncinya adalah mengetahui keluaran kueri yang diinginkan.

Mari kita gunakan kode yang lebih kompleks seperti di bawah ini.

WITH customerspending AS (
  SELECT 
    customers.id, 
    SUM(purchases.price) as total_spending 
  FROM 
    purchases 
    JOIN customers ON purchases.cust_id = customers.id 
  GROUP BY 
    customers.id
) 
SELECT 
  c.name, 
  pd.product, 
  pd.total_product_price, 
  cs.total_spending 
FROM 
  (
    SELECT 
      purchases.cust_id, 
      purchases.product, 
      SUM(purchases.price) as total_product_price 
    FROM 
      purchases 
    WHERE 
      purchases.category = 'kitchen' 
    GROUP BY 
      purchases.cust_id, 
      purchases.product 
    HAVING 
      SUM(purchases.price) > 10000
  ) AS pd 
  JOIN customers c ON pd.cust_id = c.id 
  JOIN customerspending cs ON c.id = cs.id 
ORDER BY 
  pd.total_product_price DESC;

 

Kuerinya kini tampak lebih rumit dan panjang, namun fokus awalnya harus tertuju pada hasil akhir PILIH, yang sepertinya mencoba menghasilkan total pengeluaran dan riwayat pembelian pelanggan. Cobalah untuk menilai seperti apa hasil akhirnya dan uraikan dari sana.

Kami memiliki wawasan tentang hasil yang seharusnya berasal dari pertanyaan. Bagian selanjutnya adalah melihat seperti apa kondisi finalnya MEMILIH adalah. Klausa ketentuan, termasuk MANA, KELOMPOK OLEH, DIPESAN OLEH, dan MEMILIKI adalah orang-orang yang mengontrol hasil data secara keseluruhan. 

Try to read and understand our query’s conditions, and we will better understand our query’s final result. For example, in our previous SQL query, the final condition is only the DIPESAN OLEH. Artinya, hasil akhir akan diurutkan berdasarkan total harga produk dalam urutan menurun. 

Mengetahui kondisi akhir akan membantu Anda memahami bagian penting dari kueri dan maksud kueri secara keseluruhan.

Terakhir, kita perlu memahami dari mana data tersebut berasal. Setelah kita mengetahui data yang akan dipilih dan syarat mendapatkannya, kita perlu memahami sumbernya. Akhir BERGABUNG klausa ini akan memberi kita pemahaman tentang bagaimana tabel berinteraksi dan aliran data.

Misalnya, kueri kompleks sebelumnya menunjukkan bahwa kita melakukan Gabung dua kali. Artinya kami menggunakan setidaknya tiga sumber data untuk hasil akhir. Informasi ini akan diperlukan pada langkah selanjutnya untuk memahami lebih jauh bagaimana setiap sumber data berasal, terutama bila sumber data berasal dari subkueri.

Setelah memahami seperti apa hasil akhirnya dan dari mana asalnya, kita perlu melihat lebih dekat detailnya. Dari sini, kita akan menelusuri kembali setiap subkueri dan memahami mengapa subkueri tersebut terstruktur seperti itu.

Namun, kami tidak mencoba melihatnya dalam struktur top-down. Sebaliknya, kita harus mencoba melihat subkueri yang mendekati hasil akhir, dan kita naik ke subkueri yang paling jauh dari hasil akhir. Dari contoh kode di atas, sebaiknya kita coba memahami kode ini terlebih dahulu:

SELECT 
  purchases.cust_id, 
  purchases.product, 
  SUM(purchases.price) as total_product_price 
FROM 
  purchases 
WHERE 
  purchases.category = 'kitchen' 
GROUP BY 
  purchases.cust_id, 
  purchases.product 
HAVING 
  SUM(purchases.price) > 10000

 

Kemudian, kita beralih ke kode terjauh yaitu ini:

WITH customerspending AS (
  SELECT 
    customers.id, 
    SUM(purchases.price) as total_spending 
  FROM 
    purchases 
    JOIN customers ON purchases.cust_id = customers.id 
  GROUP BY 
    customers.id
)

 

We can track down the author’s thought process clearly when we break down each subquery from the one closer to the result to the furthest. 

Coba ulangi proses di atas jika Anda memerlukan bantuan untuk memahami setiap subquery. Dengan beberapa latihan, Anda akan memiliki pengalaman yang lebih baik dalam membaca dan memahami kueri.

Membaca dan memahami kueri SQL adalah keterampilan yang harus dimiliki setiap orang di era modern, karena setiap perusahaan menanganinya. Dengan menggunakan panduan langkah demi langkah berikut, Anda akan memiliki waktu lebih baik untuk memahami kueri SQL yang kompleks. Langkah-langkahnya meliputi:

  1. Memahami Struktur Kueri SQL Umum
  2. Pahami Pilihan Akhir
  3. Pahami Klausul Kondisi Akhir
  4. Pahami Gabungan Terakhir
  5. Membaca Urutan Terbalik dan Mengulangi

 
 

Cornellius Yudha Wijaya adalah asisten manajer ilmu data dan penulis data. Selama bekerja full-time di Allianz Indonesia, ia suka berbagi tips Python dan Data melalui media sosial dan media tulis.

Stempel Waktu:

Lebih dari KDnugget