SQL Select
SQL Select
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).
Dengan perintah tersebut, sistem database akan mengerti bahwa ‘dia’ harus menampilkan data ‘nama_produk’ dari suatu tabel yang namanya
‘ms_produk’ seperti berikut.
nama_produk
------------------------------------
Kotak Pensil DQLab
Flashdisk DQLab 64 GB
Gift Voucher DQLab 100rb
Flashdisk DQLab 32 GB
Gift Voucher DQLab 250rb
Pulpen Multifunction + Laser DQLab
Tas Travel Organizer DQLab
Gantungan Kunci DQLab
Buku Planner Agenda DQLab
Sticky Notes DQLab 500 sheets
Terlihat ada sepuluh nama peralatan kantor dengan label DQLab yang ditampilkan. Ini menunjukkan bahwa interaksi antara SQL dan sistem
database telah berjalan dengan baik.
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.
Jika aku perhatikan, struktur tabel ms_produk terdiri dari empat kolom (column), masing-masing dengan nama berikut:
no_urut
kode_produk
nama_produk
harga
Dan dalam tabel tersebut terdapat 10 baris data (row) dengan isi data yang bervariasi, contoh isi data untuk kolom "nama_produk" pada baris
kelima adalah "Gift Voucher DQLab 250rb".
Kata awal, yaitu SELECT digunakan untuk menginformasikan kepada sistem bahwa kita ingin mengambil data.
Tanda * (bintang) artinya seluruh kolom perlu diambil dari tabel yang dirujuk. Tanda ini sering juga disebut sebagai wildcard.
FROM [NAMA_TABLE], artinya table yang akan diambil datanya.
Tanda ; (titik koma) adalah tanda yang menyatakan akhir dari perintah SELECT atau SQL lain.
Senja mengajak aku untuk langsung mempraktekkan perintah SQL SELECT untuk menampilkan data pada tabel yang bernama ms_produk.
Jika aku menjalankan tombol RUN, maka aku akan mendapatkan tabel seperti berikut:
“Kita coba ya dengan menampilkan data pelanggan yang ada di database. Kita sudah menggunakan perintah SELECT sebelumnya untuk
mengambil seluruh kolom. Nah, berikut adalah contoh query untuk mengambil satu kolom saja yaitu nama_produk,” tambah Senja.
Aku mencatat beberapa tampilan penting yang menjadi contoh dari Senja buatku.
Ketikkan perintah berikut pada code editor dan kemudian klik tombol Run,
Hasilnya, sistem database akan menampilkan data nama_produk saja dari tabel ms_produk seperti terlihat sebagai berikut.
Terlihat ada sepuluh nama peralatan kantor yang ditampilkan, dan jumlah ini sesuai dengan jumlah seluruh row yang terdapat pada
tabel ms_produk.
Penggunaan SELECT DISTINCT statement
Aku diminta mengambil data dari tabel ms_pelanggan oleh Senja. Menggunakan perintah yang telah dipelajari, aku menuliskan Syntax pada
Live Code Editor:
Ternyata, dari data pelanggan, aku menemukan duplikasi data, dalam nama_customer dan alamat untuk no_urut 3 & 11, serta 5 & 12 yang sama
persis dengan kode_pelanggan yang berbeda. Tentunya ini akan berdampak pada hasil analisaku nantinya.
Untuk menghilangkan data duplikasi, aku bisa menggunakan SELECT DISTINCT statement. Dengan SELECT DISTINCT, data yang sama
atau duplikat akan dieliminasi dan akan ditampilkan data yang unik saja.
Berikut syntax-nya:
Aku langsung mempraktikkan syntax SELECT DISTINCT untuk mengambil data pelanggan dan menghilangkan duplikasi data.
Tugas:
Tampilkan nama_customer dan alamat dari tabel ms_pelanggan dan hilangkan data duplikat. Jika benar, maka Live Code Editor akan
menampilkan tabel seperti berikut pada console.
Jika dihitung jumlah row data yang berbeda maka diperoleh ada 10 row data berbeda dari tabel ms_pelanggan.
Pendahuluan
Sejauh ini, aku sudah cukup paham cara menggunakan SQL dengan perintah SELECT, terutama untuk mengakses data dari database. Aku pun
berniat untuk mengambil dan menganalisis data produk dengan syntax yang ada:
SELECT t1.kode_produk AS product_code, t1.nama_produk AS product_name, t1.harga AS price FROM ms_produk AS t1;
Beberapa detik aku termenung melihat syntax ini. Mengapa ada ‘t1’, dan ‘AS’? Apa maksudnya? Aku terdorong untuk bertanya kembali pada
Senja.
“Nja, sorry gangguin kamu lagi. Aku lagi mau nyoba latihan nih. Tapi aku nemu syntax ini dan agak bingung terutama karena ada ‘t1’, dan
‘AS’. Maksudnya?”
“Oh, ini hanya variasi penggunaan nama table dan kolom pada bagian SELECT. Sini saya kasih tahu.”
Aku pun mencatat penjelasan Senja, walau sederhana tapi penting:
Prefix, dimana kita akan menambahkan nama tabel di depan nama kolom.
Alias, dimana kita memberikan alias atau nama lain untuk tabel maupun kolom.
Penggunaan nama lengkap prefix ini akan sangat berguna ketika ingin mengidentifikasi data dari beberapa tabel, yang akan dipelajari pada
course SQL untuk topik JOIN.
Tugas:
Gantilah seluruh code yang ada pada code editor dengan perintah SELECT untuk menampilkan kolom kode_produk dari
tabel ms_produk dengan penulisan menggunakan prefix nama tabel.
Jika berjalan dengan lancar maka hasilnya akan terlihat sebagai berikut.
Ketik dan jalankan tersebut pada code editor, yang jika berjalan dengan lancar akan muncul hasil sebagai berikut.
no_urut menjadi nomor.
nama_produk menjadi nama.
Berikut adalah contoh yang sama dari sub-chapter sebelumnya, dimana untuk merubah nama kolom
dari kode_produk menjadi product_code dari tabel ms_produk dapat dilakukan tanpa menggunakan alias.
Tugas:
Rubah nama kolom dari tabel ms_produk tanpa menggunakan Alias:
no_urut menjadi nomor.
nama_produk menjadi nama.
Jika berjalan lancar, maka Live Code Editor akan menampilkan hasil berikut:
“Penggunaan nama original tabel sebagai prefix akan menimbulkan error saat query dijalankan karena dengan penggunaan alias, nama tabel
secara temporary sudah di-gantikan oleh alias, Aksara,” jawab Senja lugas.
Aku mengangguk. Senja pun kembali melanjutkan penjelasannya.
Mari lihat contoh berikut ini dari tabel ms_produk yang telah digunakan sebelumnya
Jalankan dan jika berhasil dengan baik maka akan memunculkan hasil berikut.
Jika kolom dan tabel memiliki alias, dapat dilakukan dengan mengetikkan perintah berikut di code editor
“Oke, Nja. Sekarang aku sudah paham syntax query,” ujarku bersemangat.
Dari apa yang ditunjukkan Senja, aku bisa mengetahui kalau Senja menggunakan alias tabel yaitu t1, prefix untuk kolom adalah t1, dan alias
untuk nama kolom. Maka itu, hasil yang diperoleh dengan menjalankan query adalah seperti ini:
Tugas:
Gantilah perintah pada code editor dengan nama alias t2 - tanpa menggunakan keyword AS - untuk tabel ms_produk dan menampilkan kolom
nama_produk dan harga, lengkap dengan prefix alias.
Jika berjalan dengan lancar maka akan memunculkan hasil berikut.
Menggunakan WHERE
Klausul WHERE dari SELECT digunakan untuk memfilter data berdasarkan kondisi tertentu. Untuk syntax lengkapnya adalah sebagai berikut.
Biar lebih jelasnya, mari langsung contohkan dengan perintah berikut.
Jika dijalankan dengan baik, Live Code Editor akan menampilkan hasil berikut.
Terlihat hanya satu baris data saja yang dikeluarkan dari total sepuluh, yaitu data dimana kolom nama_produk berisi nilai 'Gantungan Kunci
DQLab'.
Tugas:
Cobalah ubah perintah SELECT pada code editor untuk mengeluarkan data dengan nama_produk bernilai 'Tas Travel Organizer DQLab'. Jika
semua berjalan dengan lancar, maka hasilnya akan terlihat sebagai berikut.
Menggunakan Operand OR
Pada subbab sebelumnya, aku telah menggunakan filter teks sederhana untuk mengeluarkan data masing-masing dengan nama_produk
'Gantungan Kunci DQLab' dan 'Tas Travel Organizer DQLab'.
Pertanyaannya, bagaimana jika ingin mengeluarkan keduanya sekaligus? Aku bisa menggunakan Operand OR.
Untuk memunculkan hasil query yang memuat data produk dengan nama_produk 'Gantungan Kunci DQLab' dan 'Tas Travel Organizer DQLab',
aku dapat menggunakan logika sederhana, yaitu: Aku perlu mengambil data dengan kondisi nama_produk itu bernilai 'Gantungan Kunci DQLab'
ATAU 'Tas Travel Organizer DQLab'. Logika ini bisa dinotasikan dengan menggunakan logika OR.
Sehingga, dengan menggunakan logika OR, aku dapat menggabungkan dua atau lebih kondisi untuk memfilter data. Jadi, untuk menyelesaikan
problem yaitu memunculkan data dengan kondisi kolom nama_produk bernilai 'Gantungan Kunci DQLab' ATAU 'Tas Travel Organizer
DQLab', dapat menggunakan syntax berikut:
Catatan: Perhatikan bahwa perintah SELECT ini cukup panjang, dan riil-nya bisa dibagi menjadi beberapa baris. Namun untuk sistem DQLab,
ini masih perlu dijadikan satu baris.
Jika dijalankan dengan baik maka hasilnya akan tampak sebagai berikut.
Terlihat bukan hanya satu baris data, tapi terdapat dua baris data yang diambil karena memenuhi kondisi yang diberikan pada perintah SELECT.
Tugas:
Tambahkan nama_produk 'Flashdisk DQLab 64 GB' ke dalam tabel. Jika berjalan dengan lancar, maka hasilnya terlihat sebagai berikut.
Hasil Belajarku
Wah seru sekali bagian pertama dari Module SQL ini! Dari materi yang telah aku pelajari dalam 'Fundemental SQL using SELECT Statement',
aku telah memahami dan mampu mempraktekkan:
Dengan kemampuan ini, aku telah siap untuk mengambil dan mengolah data secara sederhana. Keterampilan ini sendiri adalah 60% aktivitas
awal yang akan dilakukan seorang analis.