Fundamental SQL Using “SELECT” Statement
Holaaa, people!
Balik lagi nih bareng aku. Nah, sekarang kita bakalan bahas tentang salah satu hal fundamental yang ada di dalam SQL, yaitu statement “SELECT”. Kebetulannya, materi ini termasuk ke bagian Career Track Module nya DQLab, dengan mentornya kak Trisna Julia Yunita (Data Scientist PT. BUMA).
Module DQLab yang ini jadi salah satu module yang ngebantu aku buat ngelewatin tahap wawancara. Btw aku udah sempat wawancara juga sebelumnya dengan perusahaan lain, dan yang ditanyain juga tentang SQL. Jadi buat kalian yang bercita-cita bekerja di bidang data, at least kalian harus ngerti fundamental dari SQL ini.
Nah, penasaran kan gimana caranya menggunakan statement SELECT? Check it out!
Apa itu SQL?
SQL (dilafalkan es kiu el atau sikuel) merupakan singkatan dari Structured Query Language, yaitu bahasa komputer standar yang digunakan untuk berinteraksi dengan suatu sistem database — atau lebih tepatnya sistem manajemen database relasional. Jadi, user dapat menambahkan, mengubah, mengupdate, mencari dan menghapus data dari suatu sistem database dengan menggunakan SQL.
Kategori interaksi SQL
Pada dasarnya, ada dua kategori dari interaksi SQL:
- Data Definition Language (DDL), yaitu berbagai perintah yang berfungsi lebih kepada memanipulasi struktur database, seperti Membuat (CREATE), meubah (ALTER), dan menghapus (DROP) struktur penyimpanan data, yaitu database, table, kolom dan tipe data.
- Data Manipulation Language (DML), yaitu berbagai perintah yang digunakan untuk Menyisipkan data (INSERT), Mengambil data atau query (SELECT), Meubah data (UPDATE) dan Menghapus data (DELETE).
Mengapa Perlu Belajar SQL?
Ada beberapa hal yang membuat SQL begitu penting, beberapa diantaranya adalah:
- Seorang Data Analyst harus mampu mengambil, memodifikasi dan mengakses sendiri data tersebut dari sumber datanya, yaitu dari database. Biasanya sistem database ini diakses dengan menggunakan SQL
- Manajemen memerlukan laporan dengan informasi yang semakin beragam, seperti: tren penjualan bulan ke bulan, pertumbuhan pelanggan, apakah perusahaan mencapai target, dan lain-lain. Dan ini membutuhkan keahlian SQL yang mumpuni.
- Programmer yang membangun sistem aplikasi hampir dipastikan selalu bergantung kepada sistem database SQL agar aplikasinya berjalan dengan baik. Dengan demikian, penguasaan SQL adalah hal mutlak.
- Bisa meningkatkan kinerja perusahaan karena informasi yang kaya dapat dihasilkan melalui SQL.
Dimana saja SQL Digunakan?
SQL akan digunakan disemua perusahaan di seluruh dunia yang telah menerapkan sistem IT. Dengan catatatan sistem database di perusahaan tersebut berbasis relational database management system (RDBMS)
Apa itu RDBMS?
Relational Database Management System yang biasa disingkat dengan RDMBS adalah suatu program yang memungkinkan untuk Membuat, Memperbarui, dan Mengelola suatu basis data relasional (Relational Database). Nah, Umumnya RDMBS ini menggunakan SQL untuk mengakses database.
Basis data relasional sangat popular dan banyak digunakan oleh perusahaan — perusahaan karena jenis database ini mudah dikelola terlebih jika memiliki banyak data atau informasi yang perlu disimpan, scalable dan flexibel.
- Basis data rasional cukup mudah dikelola. Setiap tabel/data dapat diupdate atau dimodifikasi tanpa mengganggu tabel/data yang lain.
- Flexible : jika perlu memperbarui data, hanya perlu melakukannya sekali saja — jadi tidak perlu lagi mengubah banyak file satu per satu. Selain itu, basis data rasional juga cukup mudah untuk di-extend. Misalnya saat data sudah semakin banyak, dapat dengan mudah memperbesar kapasitas dari database yang dimiliki.
Produk-produk RDBMS di Pasaran
Berikut adalah sebagian produk RDBMS baik yang berbayar (proprietary) maupun open source yang cukup populer di pasaran :
- MySQL
Open-source SQL database yang cukup populer. Umumnya digunakan untuk pengembangan aplikasi web. - PostgreSQL
Open-source RDBMS product, dan juga umumnya digunakan untuk pengembangan aplikasi web. Akan tetapi secara kinerja, postgreSQL lebih lambat dibandingkan MySQL. - Oracle DB
Produk RDBMS yang dimiliki oleh Oracle Corporation dan produk ini bersifat proprietary atau tidak open source. Oracle DB umumnya digunakan di industri perbankan. - Microsoft SQL Server
SQL Server adalah produk RDBMS yang dimiliki oleh Microsoft dan sama seperti Oracle DB, SQL Server bersifat proprietary atau tidak open source, SQL Server umumnya digunakan di perusahaan skala besar yang juga menggunakan produk keluaran Microsoft lainnya. - SQLite
Open source RDBMS, umumnya digunakan sebagai database di handphone, MP3 player, and perangkat lainnya.
Selain itu, juga ada MariaDB yang juga gratis atau open source, IBM DB2, Microsoft Access, dan masih banyak lainnya.
Umumnya RDBMS menggunakan SQL untuk mengakses database dan produk RDBMS tidak hanya satu macam saja tetapi ada berbagai macam produk, maka SQL syntax pun bisa jadi sedikit berbeda untuk setiap produk tersebut. Berikut contoh perbandingan MySQL, Oracle, dan SQLSERVER untuk menampilkan beberapa baris data dari suatu tabel :
Struktur Penyimpanan RDBMS
Sebagai penyimpan data, sistem database relasional memiliki struktur hirarki objek penyimpanan sebagai berikut:
- Database
- Tabel (table)
- Kolom (column) atau Field
Nah, setelah membahas tentang SQL dan RDBMS, sekarang kita akan masuk ke statement SELECT. Ikutin terus ya!
Mengambil Seluruh Kolom dalam suatu Tabel
Misalkan kita akan mengambil seluruh kolom dari tabel ms_product, maka dapat meggunakan script berikut,
SELECT * FROM ms_produk;
Konsep dari penggunaan SELECT untuk mengambil seluruh kolom sama seperti yang ada di gambar di bawah ini.
Maka hasilnya akan seperti berikut ini:
Semua data yang ada di tabel ms_produk akan diambil.
Mengambil Satu Kolom dari Tabel
Lalu bagimana caranya jika hanya ingin mengambil satu kolom? Gampang. Cukup ganti * dengan nama kolom. Konsepnya kira-kira seperti ini,
Misalkan kita akan mengambil kolom nama_produk, maka:
SELECT nama_produk FROM ms_produk;
Dan hasilnya, yang menjadi output hanyalah nama produk.
Mengambil Lebih dari Satu Kolom dari Tabel
Karena tabel ms_produk memiliki lebih dari satu kolom data, maka ketika kita ingin mengambil kolom lainnya, kita hanya perlu menuliskan tiap kolom yang ingin ditampilkan dipisahkan dengan tanda koma, seperti contoh berikut untuk dua kolom.
Misalkan kita akan mengambil kolom nama_produk dan harga,
SELECT nama_produk, harga FROM ms_produk;
Hasilnya akan menampilkan nama dan harga dari produk tersebut.
Membatasi Pengambilan Jumlah Row Data
Nah, jika tadi kita telah mempelajari bagaimana cara membatasi kolom, maka sekarang kita akan belajar bagaimana cara membatasi row data. Pernah kan kita berada di kondisi kita hanya ingin mengambil beberapa data teratas? Gini caranya,
Misalkan kita akan mengambil lima data teratas dari kolom nama_produk dan harga.
SELECT nama_produk, harga FROM ms_produk LIMIT 5;
Hasilnya taraaaaa…
Lima data teratas dari kolom nama_produk dan harga telah muncul.
Penggunaan SELECT DISTINCT Statement
Wah apa lagi ini? Bukannya tadi udah belajar tentang SELECT?
Ternyata SELECT dan SELECT DISTINCT berbeda. Statement SELECT DISTINCT digunakan untuk menghilangkan duplikasi dari rows data. Jadi ketika sistem menemukan ada data yang sama, akan otomatis dilewatkan.
Cara menggunakannya sama dengan cara menggunakan perintah SELECT loh.
Nah setelah belajar SELECT, sekarang kita belajar menggunakan Alias dan Prefix.
Menggunakan Prefix pada Nama Kolom
Prefix ini akan berguna ketika kita menggabungkan dua kolom dengan statement JOIN (yang akan kita pelajari di part selanjutnya). Karena tentunya akan ada dua kolom dari tabel yang berbeda dengan nama yang sama, dan agar kita tidak bingung serta menghindari eror karena ambigu maka digunakan lah prefix ini.
Konsep penggunaannya seperti ini,
Misalkan kita coba pada satu tabel,
SELECT ms_produk.kode_produk FROM ms_produk;
Hasilnya akan sama dengan tanpa menggunakan prefix.
Menggunakan Alias pada Kolom
Selain prefix, kita dapat merubah identitas nama kolom yang diambil dengan SELECT dengan menggunakan keyword AS. Ini dinamakan alias. Perubahan nama tabel bersifat temporary, artinya hanya berubah ketika mengambil/meng-query data, sedangkan nama kolom di tabel dalam database tidak akan berubah.
Misalkan kita akan mengubah kolom no_urut menjadi nomor dan nama_produk menjadi nama.
SELECT no_urut AS nomor, nama_produk AS nama FROM ms_produk;
Hasilnya tentu akan sama dengan perintah yang tidak menggunakan alias, hanya saja di bagian nama kolom nya akan berubah.
Tapi ngerasa ribet gak sih kalau harus nulis AS? Ternyata bisa dihilangin loh dan tetap ngubah nama kolom tersebut.
Caranya gini nih,
Misalkan kita coba dengan nomor dan nama yang tadi ya,
SELECT no_urut nomor, nama_produk nama FROM ms_produk;
Hasilnya akan sama seperti sebelumnya.
Menggabungkan Prefix dan Alias
Ternyata prefix dan alias juga dapat digunakan secara bersamaan loh.
SELECT ms_produk.harga AS harga_jual FROM ms_produk;
Atau menggunakan
SELECT ms_produk.harga harga_jual FROM ms_produk;
Hasilnya adalah
Menggunakan Alias pada Tabel
Selain kolom, alias juga bisa digunakan untuk tabel dengan menggunakan keyword AS ataupun tidak setelah nama tabel. Umumnya penggunaan alias pada tabel jika nama tabel tersebut cukup panjang dan muncul atau dirujuk beberapa kali dalam query. Sehingga dengan menggunakan alias pada tabel, dapat menghemat waktu dalam menuliskan query, khususnya untuk query yang cukup rumit, panjang dan melibatkan banyak tabel.
Misalkan kita akan mengubah nama dari tabel ms_produk,
SELECT*FROM ms_produk t2;
Hasilnya akan sama dengan perintah yang tidak memakai alias.
Prefix dengan Alias Tabel
Lalu bagaimana jika kita ingin menggunakan prefix setelah mengunakan alias tabel? Apakah akan menggunakan original tabel atau alias tabel?
Ternyata setelah menggunakan alias pada tabel, kita juga harus menggunakan nama alias tabel tersebut pada prefix nya.
Misalkan kita ingin menggunakan prefix pada kolom nama_produk yang ada di tabel ms_produk yang telah diganti alias menjadi t2,
SELECT t2.nama_produk, t2.harga FROM ms_produk t2;
Menggunakan WHERE
Klausul WHERE di sini berfungsi untuk menampilkan atau memfilter data berdasarkan kondisi tertentu. Misalkan kita ingin mencari produk dengan key tertentu, nah kita dapat menggunakan WHERE ini.
Misalkan kita akan memfilter data dengan nama produk ‘Tas Travel Organizer DQLab’,
SELECT * FROM ms_produk WHERE nama_produk='Tas Travel Organizer DQLab';
maka outputnya hanya data yang berisi nama produk tersebut.
Menggunakan Operand OR
Pada pembahasan sebelumnya, kita telah belajar menggunakan filter secara sederhana. Nah bagaimana jika kita ingin mengeluarkan lebih dari satu produk secara bersamaan. Ternyata kita bisa menggunakan Operand OR, loh!
Misalkan kita ingin mengeluarkan data masing-masing dengan nama_produk ‘Gantungan Kunci DQLab’, ‘Tas Travel Organizer DQLab’, dan ‘Flashdisk DQLab 64 GB’,
SELECT*FROM ms_produk WHERE nama_produk = 'Gantungan Kunci DQLab' OR nama_produk = 'Tas Travel Organizer DQLab' OR nama_produk = 'Flashdisk DQLab 64 GB';
Hasilnya akan seperti ini:
Filter untuk Angka
Sebelumnya, kita telah melakukan filtering untuk teks, namun WHERE tidak hanya terbatas untuk data teks saja bahkan malah pada umumnya WHERE ini digunakan untuk angka.
Misalkan kita ingin melihat produk yang harganya lebih dari 50000,
SELECT*FROM ms_produk WHERE harga > 50000;
Dan hasil nya adalah…
Semua data yang harganya di atas 50000 akan ditampilkan. Keren banget kan? Pantes saja SQL digunakan untuk mempermudah proses manajemen.
Menggunakan Operand AND
Jika sebelumnya kitamempelajari Operand OR untuk menampilkan beberapa kondisi yang berbeda, kita juga bisa menggunakan operand AND agar dua atau lebih kondisi terpenuhi semuanya. Jika salah satu kondisi tidak terpenuhi, data tidak akan diambil. Secara umum syntaxnya diilustrasikan berikut ini,
SELECT*FROM ms_produk WHERE nama_produk ='Gantungan Kunci DQLab' AND harga < 50000;
Misalkan kita akan mengambil data dengan nama produk Gantungan Kunci DQLab dan harganya harus kurang dari 50000, maka dapat menggunakan script di atas. Nah hasilnya akan seperti berikut ini,
Wah, keren!
Nah, setelah banyak membahas materi, selanjutnya kita akan mencoba mengerjakan studi kasusnya!
Proyek dari Cabang A
Kita diminta untuk menyiapkan data transaksi penjualan dengan total revenue >= (lebih dari atau sama dengan) IDR 100.000. Tabel yang digunakan adalah tabel tr_penjualan, sedangkan format yang akan kita tampilkan adalah kode_pelanggan, nama_produk, qty, harga, dan total (revenue). Data tersebut akan diurutkan mulai dari total revenue yang terbesar.
Untuk mempermudah pengerjaannya, kita dapat melakukan hal ini,
- Untuk memperoleh total revenue yang akan dinamakan total, kita perlu melakukan perkalian antara kolom qty dan harga.
- Untuk mengurutkan data, kita dapat menggunakan “ORDER BY total DESC” pada akhir query.
Kita coba aja yuk?
SELECT kode_pelanggan, nama_produk, qty, harga, qty*harga AS total
FROM tr_penjualan
WHERE qty*harga >= 100000
ORDER BY total DESC;
Dan hasilnya akan seperti ini,
Wah hebat! Kita udah berhasil mempelajari dan mengerjakan studi kasus dari Modul Fundamental SQL Using SELECT Statement.
Minggu depan kita akan belajar yang jauh lebih menarik, apa itu? Simak terus ya!
Reference:
Modul DQLab : Fundamental SQL Using SELECT Statement
Data Mentor : Trisna Yulia Junita (Data Scientist PT. BUMA)