Sekarang, Anda sudah mengetahui semua manfaat SQL dan merupakan analis data, insinyur data, atau ilmuwan data yang berpengalaman. Anda mengetahui berbagai dialek SQL, mahir mengimpor data SQL, dan fasih menulis kueri SQL dasar. Namun, apakah Anda ingin meningkatkan keterampilan ke level berikutnya? Begini caranya.
Konsep SQL tingkat menengah
Kenali subbahasa SQL
Ada empat subbahasa utama dalam SQL—merujuk pada tugas yang berbeda, tetapi semuanya bagian dari bahasa SQL:
1. DDL (Data Definition Language)
Pernyataan ini digunakan untuk membuat tabel dan basis data serta mendefinisikan properti field atau properti tabel. Contoh perintah dalam kategori ini mencakup CREATE, ALTER, dan DROP.
2. DML (Data Manipulation Language)
Pernyataan dalam kategori ini digunakan untuk memperbarui data atau menambah serta menghapus data dari tabel. Perintah dalam kategori ini mencakup UPDATE, DELETE, dan INSERT.
3. DCL (Data Control Language)
Pernyataan SQL ini digunakan untuk mengontrol siapa yang dapat mengakses data. Perintah dalam kategori ini adalah GRANT dan REVOKE.
4. TCL (Transaction Control Language)
Bahasa ini digunakan untuk melakukan commit dan memulihkan data. COMMIT dan ROLLBACK termasuk dalam kategori ini.
5. DQL (Data Query Language)
Ini digunakan untuk mengambil data dari server SQL. Pernyataan SELECT termasuk dalam kategori ini.
Semua ini mungkin terlihat menakutkan, tetapi jangan khawatir! SQL adalah bahasa yang sangat elegan dan mudah dipelajari, terutama karena Anda tidak dapat menggunakan SQL untuk membuat visualisasi data—fokusnya adalah membuat tabel, mengatur dan membersihkan data, serta belajar mengajukan pertanyaan yang tepat.
Union dan join
Sering kali, data yang Anda butuhkan tidak disimpan dalam satu tabel besar, melainkan tersebar di beberapa tabel. Dengan SQL, Anda dapat menggabungkan tabel-tabel ini untuk menghimpun semua data yang Anda perlukan di satu tempat. Karena UNION dan JOIN berurusan dengan tabel, keduanya berada dalam pernyataan FROM.
UNION pada dasarnya akan menumpuk dua tabel dengan kolom identik satu di atas yang lain. Ini berguna untuk data transaksi penjualan yang mungkin dipecah ke tabel berbeda menurut bulan, kuartal, atau tahun.
Ada beberapa jenis JOIN yang umum digunakan—Inner, Outer, Left, dan Exception. Sederhananya, ini akan mengembalikan kombinasi baris yang berbeda dari tabel-tabel yang digabungkan.
Sumber tambahan:
Sintaks SQL tingkat menengah
Sejauh ini, Anda sudah mengetahui dasar-dasar sintaks SQL, termasuk fungsi SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, dan LIMIT. Anda mahir dalam Perancangan Basis Data dan juga memahami urutan eksekusi SQL—bahwa kueri ditulis dengan cara yang berbeda dari cara kueri diproses.
Sekarang saatnya mempelajari sintaks yang lebih lanjut.
Agregasi: SELECT, GROUP BY, dan HAVING
Mirip dengan Excel, Anda dapat menggunakan SQL untuk mengagregasikan data berdasarkan jumlah, rata-rata, maksimum, minimum, dan hitung. Agregasi berguna saat awal mengeksplorasi data, menganalisis, atau saat menyajikannya kepada audiens. Anda dapat melakukannya di pernyataan SELECT untuk mengembalikan agregasi sederhana, atau menggunakan pernyataan GROUP BY untuk membuat “tabel pivot” ala Excel dari data Anda.
Menggunakan agregasi dalam pernyataan SELECT akan mengembalikan perhitungan sederhana saja; misalnya, jika Anda menggunakan SUM(column_name), kueri Anda akan mengembalikan satu nilai yang mewakili penjumlahan semua nilai dalam kolom tersebut.
Anda juga dapat menerapkan agregasi berdasarkan data kategorikal. Misalnya, jika Anda memiliki tabel data penjualan buah di seluruh negeri, Anda bisa mengelompokkan jumlah seluruh penjualan berdasarkan jenis produk, atau harga rata-rata per negara bagian. Ini memerlukan pernyataan GROUP BY, yang ditulis setelah pernyataan WHERE. Anda perlu menentukan kolom kategorikal yang menjadi dasar “pengelompokan” agregasi, lalu menyertakan kolom-kolom tersebut juga dalam pernyataan SELECT Anda.
Setelah data Anda dikelompokkan dengan rapi, dengan agregasi yang dipasangkan pada variabel kategorikal, Anda kemudian dapat memfilter agregasi tersebut dengan menggunakan pernyataan HAVING, yang ditulis setelah GROUP BY. Ini berguna jika Anda ingin mempersempit kueri lebih jauh, misalnya jika Anda ingin memilih hanya toko buah dengan total penjualan rata-rata lebih dari $100.000.
Sumber tambahan:
- SQL | String Functions | GeeksforGeeks
- SQL Aggregate Functions | Mode
- SQL GROUP BY | W3 Schools
- SQL HAVING | TutorialsPoint
Pernyataan CASE
Pernyataan SQL CASE mirip dengan fungsi IF() di Excel—jika data dalam sebuah kolom memenuhi kriteria tertentu, maka kembalikan “ini”. Ini berguna saat mengklasifikasikan ulang data kuantitatif menjadi kategorikal, seperti saat membagi sekumpulan nilai menjadi “Tinggi”, “Sedang”, atau “Rendah”. Pernyataan CASE ditulis dalam pernyataan SELECT.
Lihat juga:
Subquery
Subquery dapat digunakan dengan beberapa cara berbeda, tetapi biasanya ditemukan dalam pernyataan FROM atau WHERE. Subquery membuat tabel kecil sementara dari data Anda yang kemudian dapat Anda gunakan sebagai tabel baru untuk dikueri dengan cara yang berbeda.
Lihat juga:
Tanggal dan waktu
Seperti halnya banyak bahasa data lainnya, menangani tanggal dan waktu bisa jadi rumit. Kadang tanggal bertindak seperti “string” atau potongan informasi. Kadang tanggal dapat diperlakukan sebagai tanggal sebenarnya, dengan sintaks SQL yang dapat memecah data menjadi unit seperti bulan atau tahun. Karena ada banyak cara untuk melakukannya, fungsi-fungsi ini dianggap sebagai sintaks SQL tingkat lanjut.
Lihat juga:
Tingkatkan cara berpikir SQL Anda
Pedoman SQL yang perlu diikuti
Saat bekerja di dunia nyata, pertanyaan bisnis tidak selalu dapat diterjemahkan dengan rapi menjadi kueri SQL. Karena itu, Anda perlu menilai kebutuhan dengan cermat sebelum menulis satu baris kode pun. Berikut beberapa pedoman yang baik untuk diikuti saat berlatih SQL.
Tulis ulang pertanyaan bisnis Anda sebagai komentar terlebih dahulu
Gunakan komentar kode untuk “brainstorm” kueri Anda terlebih dahulu—apa pertanyaan yang ingin Anda jawab? Bagian dan elemen apa yang perlu Anda fokuskan? Ini akan memandu kueri SQL Anda.
Ada dua jenis komentar, inline dan multi-baris.
--Inline hanya dua tanda hubung dan berada pada satu baris kode—bagus untuk catatan singkat dan cepat
/*Komentar multi-baris terlihat seperti ini.
Bagus untuk membuat banner yang menjelaskan tujuan kueri, penulis, dll*/
Buat sketsa kueri Anda
Sebelum mulai mengetik, Anda harus menentukan bagian apa saja yang Anda perlukan untuk kueri. Anda akan selalu memerlukan pernyataan SELECT dan FROM—tetapi apalagi yang mungkin Anda perlukan? Apakah Anda perlu memfilter data menggunakan pernyataan WHERE? Apakah Anda perlu menggunakan fungsi agregat?
Pahami berbagai cara untuk mencapai tujuan Anda
Jika memungkinkan, cobalah memiliki beberapa cara untuk melakukan hal yang sama. Dengan begitu, Anda dapat melakukan pemeriksaan kualitas pada diri sendiri dan memvalidasi apakah Anda mendapatkan hasil yang sama. Misalnya, Anda dapat menemukan nilai tertinggi dalam sebuah kolom baik dengan menggunakan fungsi MAX() di pernyataan SELECT, atau dengan menggunakan ORDER BY untuk mengurutkan data lalu LIMIT untuk membatasi agar hanya satu baris yang dikembalikan.
Uji kueri Anda
Bangun kueri satu baris demi satu baris dan jalankan secara berkala untuk memeriksa apakah kueri tersebut berfungsi. Menambahkan bagian sedikit demi sedikit juga membantu mencegah Anda harus menelusuri ulang kode baris demi baris jika tidak berfungsi.
Profilkan tabel Anda
Untuk mulai menjalankan kueri, pertama-tama Anda harus memahami elemen data di dalamnya. Mulailah dengan melihat seluruh basis data; lalu, beberapa kolom sekaligus. Temukan rentang nilai, baik kategorikal maupun kuantitatif, untuk mendapatkan gambaran tentang informasi apa yang terkandung dalam tabel.
Buat daftar asumsi
Saat menulis kode data apa pun, Anda harus selalu membuat daftar asumsi untuk melacak keterbatasan dan ketergantungan dengan mudah.
Buat kamus data
Susun repositori terpusat untuk elemen data yang Anda gunakan, berisi deskripsi berbagai tabel dan field yang digunakan dalam analisis. Ini dapat mencakup berbagai tipe data dalam setiap kolom (karakter, bilangan bulat, uang, tanggal, dll), dan deskripsi singkat kolom itu sendiri.
Selalu alokasikan waktu untuk melakukan pemeriksaan kualitas data
Analisis tidak berakhir saat Anda selesai menulis kueri. Anda tetap harus memahami hasil dan melakukan pemeriksaan kualitas untuk memastikan analisis Anda benar. Cobalah berbagai cara untuk mencapai hasil yang sama untuk melihat apakah Anda mendapatkan sesuatu yang berbeda—ini juga saat komentar inline sangat berguna!
Berlatih di sandbox
Salah satu cara terbaik untuk mempelajari bahasa pemrograman apa pun adalah menemukan “sandbox” untuk bereksperimen. Anda akan dapat menguji kode, melihat apakah berjalan, memodifikasinya, menjalankannya lagi, berulang kali hingga Anda merasa nyaman dengan prinsip dan sintaks pemrograman. Untuk memulai, Anda mungkin menginginkan lebih banyak panduan—cobalah mencari proyek dengan instruksi yang jelas dan kode solusi untuk memeriksa pekerjaan Anda.
Berikut beberapa sumber latihan yang bagus:
Itu saja untuk saat ini. Semoga bermanfaat bagi Anda—teruslah berlatih dan belajar!
