sistem database paling populer di dunia saat ini dan menggunakan bahasa SQL untuk
pengolahannya.
Beberapa produk RDBMS yang terkenal antara lain adalah Microsoft SQL Server, Oracle,
MySQL, PostgreSQL, IBM DB2, dan masih banyak lainnya.
Struktur penyimpanan data di RDBMS adalah dengan hirarki berikut:
Database
Table
Column
SQL
merupakan singkatan dari Structured Query Language, adalah sebuah bahasa komputer
yang sederhana dan menjadi standar untuk berkomunikasi dengan sistem database
relasional.
Dikatakan bahasa yang sederhana karena cukup mudah dipelajari oleh seorang
yang awam, karena cukup mengerti dengan baik pengolahan data dengan aplikasi
Microsoft Excel.
SQL dirancang agar terdapat bahasa komunikasi yang standar dan seragam untuk
berbagai produk sistem database - dari vendor-vendor yang berbeda.
Dengan kata lain, kita cukup belajar satu bahasa - walaupun nantinya ada
perbedaan sedikit (dialek) antara tiap produk.
SQL dilafalkan dengan membaca tiap karakternya S Q L (es kiu el) atau sikuel.
Perintah SELECT
SELECT adalah bagian perintah SQL yang digunakan untuk mengambil data dari RDBMS.
Konstruksi perintahnya bisa sangat kompleks tapi juga sangat bermanfaat. Perintah ini
juga disebut sebagai query SQL.
Query dasar dan sederhana SELECT mengikuti syntax berikut.
Pada bagian berikutnya kita akan menggunakan perintah SELECT yang dituliskan
menurut syntax berikut ini
SELECT * FROM ms_produk;
Berdasarkan perintah ini berarti kita akan mengambil seluruh data dari seluruh kolom
table bernama ms_produk.
Setelah banyak teori penjelasan, mari sekarang kita praktekkan penggunaan perintah
SQL SELECT untuk menampilkan data pada contoh tabel kita yang
bernama ms_produk yang terlihat sebagai berikut.
Ketikkan perintah SELECT berikut ke dalam code editor.
Jalankan tombol RUN untuk melihat hasil eksekusi perintah ini. Jika berjalan dengan
lancar, maka Anda akan dapatkan table berbentuk teks seperti berikut.
Perintah SELECT ini akan dijelaskan lebih lanjut pada subbab berikut.
DDL (Data Definition Language), yaitu berbagai perintah yang digunakan untuk
membuat, merubah, dan menghapus struktur database. Struktur database ini
terdiri dari database, table, kolom dan tipe data.
DML (Data Manipulation Language), yaitu berbagai perintah yang digunakan
untuk
o Memasukkan data dengan perintah INSERT
o Mengambil data atau query dengan perintah SELECT
o Merubah data dengan perintah UPDATE
o Menghapus data dengan perintah DELETE
Dari contoh pada praktek sebelumnya, maka dapat disimpulkan perintah yang kita
gunakan adalah melakukan query dengan SELECT.
Kesimpulan
Database
Table
Kolom
Dan tiap data yang disimpan pada table disebut sebagai baris data (data row).
Salah satu perintah DML yang paling berguna adalah SELECT, yang digunakan untuk
pengambilan data dari table.
Pendahuluan
Seperti
sudah dibicarakan di bab sebelumnya, SELECT adalah cara mengambil data dan Anda
telah mendapatkan contoh pengambilan seluruh data dari suatu table dengan perintah
tersebut.
Pada bab ini kita akan membahas perintah SELECT lebih lanjut, yaitu:
Anda telah melihat contoh SELECT sebelumnya dimana seluruh kolom diambil. Berikut
adalah contoh query untuk mengambil satu kolom saja yaitu nama_produk.
Ketik perintah tersebut pada code editor dan klik tombol Run, Hasilnya, sistem database
akan menampilkan data nama_produk saja dari tabel ms_produk seperti terlihat
sebagai 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 yang ditampilkan, dan jumlah ini sesuai
dengan jumlah seluruh row yang terdapat pada table ms_produk.
Sebagai contoh, berikut adalah perintah SELECT adalah untuk menampilkan dua kolom
pada table ms_produk, yaitu kode_produk dan nama_produk.
Ketik perintah tersebut pada code editor dan klik tombol Run. Hasilnya, sistem database
akan menampilkan data kode_produk, nama_produk dari tabel ms_produk seperti
terlihat sebagai berikut.
+-------------+------------------------------------+
| kode_produk | nama_produk |
+-------------+------------------------------------+
| prod-01 | Kotak Pensil DQLab |
| prod-02 | Flashdisk DQLab 64 GB |
| prod-03 | Gift Voucher DQLab 100rb |
| prod-04 | Flashdisk DQLab 32 GB |
| prod-05 | Gift Voucher DQLab 250rb |
| prod-06 | Pulpen Multifunction + Laser DQLab |
| prod-07 | Tas Travel Organizer DQLab |
| prod-08 | Gantungan Kunci DQLab |
| prod-09 | Buku Planner Agenda DQLab |
| prod-10 | Sticky Notes DQLab 500 sheets |
+-------------+------------------------------------+
Terlihat data dengan dua kolom ditampilkan yaitu kode_produk dan nama_produk.
Jumlah data yang dikeluarkan masih sepuluh, sesuai dengan jumlah seluruh row yang
terdapat pada table ms_produk.
Sekarang gantilah perintah SELECT di code editor untuk menampilkan nama_produk dan
harga dari table yang sama.
Jika berjalan dengan lancar, maka hasilnya akan terlihat sebagai berikut.
+------------------------------------+--------+
| nama_produk | harga |
+------------------------------------+--------+
| Kotak Pensil DQLab | 62500 |
| Flashdisk DQLab 64 GB | 55000 |
| Gift Voucher DQLab 100rb | 100000 |
| Flashdisk DQLab 32 GB | 40000 |
| Gift Voucher DQLab 250rb | 250000 |
| Pulpen Multifunction + Laser DQLab | 92500 |
| Tas Travel Organizer DQLab | 48000 |
| Gantungan Kunci DQLab | 15800 |
| Buku Planner Agenda DQLab | 92000 |
| Sticky Notes DQLab 500 sheets | 55000 |
+------------------------------------+--------+
Klik tombol Run, dan jika berjalan dengan lancar akan terlihat hasil tiga data pertama
yang ditampilkan seperti berikut.
+--------------------------+
| nama_produk |
+--------------------------+
| Kotak Pensil DQLab |
| Flashdisk DQLab 64 GB |
| Gift Voucher DQLab 100rb |
+--------------------------+
Terlihat hanya tiga baris data pertama yang ditampilkan dari keseluruhan sepuluh baris
data yang ada.
Kesimpulan
Pada bab ini kita telah mempelajari:
Perintah SELECT dapat digunakan menentukan apa saja kolom yang akan diambil
dengan menuliskan nama-nama kolom yang diinginkan dengan menggunakan
pemisah tanda koma.
Perintah SELECT juga dapat digunakan untuk membatasi jumlah data yang
dikeluarkan. Namun untuk berbagai produk bisa berbeda penulisannya. MySQL
menggunakan LIMIT untuk tujuan tersebut.
Pendahuluan
Pada bab ini akan diperkenalkan variasi penggunaan nama table dan kolom pada bagian
SELECT, yaitu.
Prefix, dimana kita akan menambahkan nama table di depan nama kolom.
Alias, dimana kita memberikan alias atau nama lain untuk table maupun kolom.
Contoh untuk pengambilan nama kolom nama_produk data dari table ms_produk
dengan penulisan prefix nama table adalah sebagai berikut.
Penggunaan nama lengkap prefix ini akan sangat berguna ketika kita ingin
mengidentifikasi data dari beberapa table - yang akan kita pelajari pada course SQL untuk
topik JOIN.
Tugas dan Praktek
Gantilah seluruh code yang ada pada code editor dengan perintah SELECT untuk
menampilkan kolom kode_produk dari table ms_produk dengan penulisan menggunakan
prefix nama table.
Jika berjalan dengan lancar maka hasilnya akan terlihat sebagai berikut.
+-------------+
| kode_produk |
+-------------+
| prod-01 |
| prod-02 |
| prod-03 |
| prod-04 |
| prod-05 |
| prod-06 |
| prod-07 |
| prod-08 |
| prod-09 |
| prod-10 |
+-------------+
Ketik dan jalankan tersebut pada code editor, yang jika berjalan dengan lancar akan
muncul hasil sebagai berikut.
+--------------+
| product_code |
+--------------+
| prod-01 |
| prod-02 |
| prod-03 |
| prod-04 |
| prod-05 |
| prod-06 |
| prod-07 |
| prod-08 |
| prod-09 |
| prod-10 |
+--------------+
no_urut menjadi nomor.
nama_produk menjadi nama.
+-------+------------------------------------+
| nomor | nama |
+-------+------------------------------------+
| 1 | Kotak Pensil DQLab |
| 2 | Flashdisk DQLab 64 GB |
| 3 | Gift Voucher DQLab 100rb |
| 4 | Flashdisk DQLab 32 GB |
| 5 | Gift Voucher DQLab 250rb |
| 6 | Pulpen Multifunction + Laser DQLab |
| 7 | Tas Travel Organizer DQLab |
| 8 | Gantungan Kunci DQLab |
| 9 | Buku Planner Agenda DQLab |
| 10 | Sticky Notes DQLab 500 sheets |
+-------+------------------------------------+
Berikut adalah contoh yang sama dari subbab sebelumnya, dimana untuk merubah nama
kolom dari kode_produk menjadi product_code dari table ms_produk - namun tanpa
mengunakan AS.
+--------------+
| product_code |
+--------------+
| prod-01 |
| prod-02 |
| prod-03 |
| prod-04 |
| prod-05 |
| prod-06 |
| prod-07 |
| prod-08 |
| prod-09 |
| prod-10 |
+--------------+
Cobalah rubah perintah SELECT tersebut di atas untuk memberikan alias pada dua kolom
berikut tanpa menggunakan keyword AS:
no_urut menjadi nomor.
nama_produk menjadi nama.
+-------+------------------------------------+
| nomor | nama |
+-------+------------------------------------+
| 1 | Kotak Pensil DQLab |
| 2 | Flashdisk DQLab 64 GB |
| 3 | Gift Voucher DQLab 100rb |
| 4 | Flashdisk DQLab 32 GB |
| 5 | Gift Voucher DQLab 250rb |
| 6 | Pulpen Multifunction + Laser DQLab |
| 7 | Tas Travel Organizer DQLab |
| 8 | Gantungan Kunci DQLab |
| 9 | Buku Planner Agenda DQLab |
| 10 | Sticky Notes DQLab 500 sheets |
+-------+------------------------------------+
Berikut adalah contoh penggunaan prefix nama table dan alias untuk kolom
nama_produk.
+------------------------------------+
| nama |
+------------------------------------+
| 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 |
+------------------------------------+
Tugas dan Praktek
Cobalah ganti perintah pada code editor dengan perintah SELECT untuk menampilkan
kolom harga dari ms_produk dengan nama alias harga_jual lengkap dengan prefix.
Jika berjalan dengan lancar maka akan mengeluarkan hasil sebagai berikut.
+------------+
| harga_jual |
+------------+
| 62500 |
| 55000 |
| 100000 |
| 40000 |
| 250000 |
| 92500 |
| 48000 |
| 15800 |
| 92000 |
| 55000 |
+------------+
Berikut adalah contoh untuk menggunakan alias pada table ms_produk menjadi t1.
+---------+-------------+------------------------------------+--------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+------------------------------------+--------+
| 1 | prod-01 | Kotak Pensil DQLab | 62500 |
| 2 | prod-02 | Flashdisk DQLab 64 GB | 55000 |
| 3 | prod-03 | Gift Voucher DQLab 100rb | 100000 |
| 4 | prod-04 | Flashdisk DQLab 32 GB | 40000 |
| 5 | prod-05 | Gift Voucher DQLab 250rb | 250000 |
| 6 | prod-06 | Pulpen Multifunction + Laser DQLab | 92500 |
| 7 | prod-07 | Tas Travel Organizer DQLab | 48000 |
| 8 | prod-08 | Gantungan Kunci DQLab | 15800 |
| 9 | prod-09 | Buku Planner Agenda DQLab | 92000 |
| 10 | prod-10 | Sticky Notes DQLab 500 sheets | 55000 |
+---------+-------------+------------------------------------+--------+
Terlihat hasil yang dikeluarkan adalah seluruh isi table ms_produk.
Mari kita lihat contoh berikut ini dari tabel ms_produk yang telah digunakan sebelumnya
Jalankan dan jika berhasil dengan baik maka akan memunculkan hasil berikut.
+-------------+------------------------------------+
| kode_produk | nama_produk |
+-------------+------------------------------------+
| prod-01 | Kotak Pensil DQLab |
| prod-02 | Flashdisk DQLab 64 GB |
| prod-03 | Gift Voucher DQLab 100rb |
| prod-04 | Flashdisk DQLab 32 GB |
| prod-05 | Gift Voucher DQLab 250rb |
| prod-06 | Pulpen Multifunction + Laser DQLab |
| prod-07 | Tas Travel Organizer DQLab |
| prod-08 | Gantungan Kunci DQLab |
| prod-09 | Buku Planner Agenda DQLab |
| prod-10 | Sticky Notes DQLab 500 sheets |
+-------------+------------------------------------+
+------------------------------------+--------+
| nama_produk | harga |
+------------------------------------+--------+
| Kotak Pensil DQLab | 62500 |
| Flashdisk DQLab 64 GB | 55000 |
| Gift Voucher DQLab 100rb | 100000 |
| Flashdisk DQLab 32 GB | 40000 |
| Gift Voucher DQLab 250rb | 250000 |
| Pulpen Multifunction + Laser DQLab | 92500 |
| Tas Travel Organizer DQLab | 48000 |
| Gantungan Kunci DQLab | 15800 |
| Buku Planner Agenda DQLab | 92000 |
| Sticky Notes DQLab 500 sheets | 55000 |
Kesimpulan
Perintah SELECT dapat ditulis dengan variasi identitas kolom dan table berupa prefix dan
alias.
Penulisan lengkap untuk nama kolom adalah prefix berupa nama table disertai tanda titik
sebelum nama kolom itu sendiri.
Alias adalah nama lain yang diberikan untuk kolom maupun table.
Alias dapat digunakan dengan keyword AS atau tanpa keyword AS setelah nama kolom
dan table.
Prefix nama table bisa menggunakan alias.
Dengan mengerti prefix dan alias ini, Anda telah dibekali kemampuan identifikasi table
maupun kolom yang terlibat untuk perintah SELECT yang lebih kompleks.
Pendahuluan
Filter merupakan salah satu fitur penting terutama ketika data yang perlu diambil untuk
diolah harus memenuhi kriteria tertentu. Contohnya, bagaimana cara kita mengambil
data dengan constraint berupa nama produk adalah pensil? Filter adalah jawabnya,
karena tanpa fitur ini data yang akan diolah nantinya tidak memiliki manfaat yang
berarti.
SQL memiliki fungsi filter dengan menggunakan klausul WHERE. Bab ini akan membahas
penggunaan klausul WHERE yang terdiri dari:
Menggunakan WHERE
Klausul WHERE dari SELECT digunakan untuk filter data berdasarkan kondisi tertentu.
Untuk syntax lengkapnya adalah sebagai berikut.
Kondisi paling sederhana memiliki format sebagai berikut
[nama_kolom] = 'nilai_untuk_filter'
Biar lebih jelasnya, mari kita langsung contohkan dengan perintah berikut.
+---------+-------------+-----------------------+-------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+-----------------------+-------+
| 8 | prod-08 | Gantungan Kunci DQLab | 15800 |
+---------+-------------+-----------------------+-------+
Terlihat hanya satu baris data saja yang dikeluarkan dari total sepuluh, yaitu data dimana
kolom nama_produk berisi nilai 'Gantungan Kunci DQLab'.
Tugas dan Praktek
Cobalah rubah 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.
+---------+-------------+----------------------------+-------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+----------------------------+-------+
| 7 | prod-07 | Tas Travel Organizer DQLab | 48000 |
+---------+-------------+----------------------------+-------+
Menggunakan Operand OR
Pada subbab sebelumnya, kita menggunakan filter teks sederhana untuk mengeluarkan
data masing-masing dengan nama_produk 'Gantungan Kunci DQLab' dan 'Tas Travel
Organizer DQLab'.
Pertanyaannya, bagaimana mengeluarkan keduanya sekaligus? Mari perhatikan skema
sintaks berikut
dan kita akan coba praktekkan pada tabel ms_produk nantinya
Untuk itu diperlukan logika sederhana, jadi kita perlu mengambil data dengan kondisi
nama_produk itu bernilai 'Gantungan Kunci DQLab' ATAU 'Tas Travel Organizer DQLab'.
Dengan menggunakan penghubung dua atau lebih kondisi dengan operand OR seperti
yang diilustrasikan sebelumnya dapat kita gunakan perintah sebagai berikut.
Jika dijalankan dengan baik maka hasilnya akan tampak sebagai berikut.
+---------+-------------+----------------------------+-------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+----------------------------+-------+
| 7 | prod-07 | Tas Travel Organizer DQLab | 48000 |
| 8 | prod-08 | Gantungan Kunci DQLab | 15800 |
+---------+-------------+----------------------------+-------+
Terlihat bukan hanya satu baris data, tapi terdapat dua baris data yang diambil karena
memenuhi kondisi yang kita berikan pada perintah SELECT.
Tugas dan Praktek
Tambahkan lagi satu kondisi untuk mengambil nama_produk dengan teks 'Flashdisk
DQLab 64 GB'. Jika berjalan dengan lancar, maka hasilnya terlihat sebagai berikut.
+---------+-------------+----------------------------+-------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+----------------------------+-------+
| 2 | prod-02 | Flashdisk DQLab 64 GB | 55000 |
| 7 | prod-07 | Tas Travel Organizer DQLab | 48000 |
| 8 | prod-08 | Gantungan Kunci DQLab | 15800 |
+---------+-------------+----------------------------+-------+
Jika dijalankan, kita akan mendapatkan tiga baris data sebagai berikut.
+---------+-------------+----------------------------+-------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+----------------------------+-------+
| 4 | prod-04 | Flashdisk DQLab 32 GB | 40000 |
| 7 | prod-07 | Tas Travel Organizer DQLab | 48000 |
| 8 | prod-08 | Gantungan Kunci DQLab | 15800 |
+---------+-------------+----------------------------+-------+
Terlihat seluruh data yang diambil memiliki kondisi harga di bawah 50000.
Tugas dan Praktek
Ubah perintah select yang ada dengan kondisi harga di atas 50000. Jika berjalan dengan
lancar maka Anda akan mendapatkan hasil berikut.
+---------+-------------+------------------------------------+--------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+------------------------------------+--------+
| 1 | prod-01 | Kotak Pensil DQLab | 62500 |
| 2 | prod-02 | Flashdisk DQLab 64 GB | 55000 |
| 3 | prod-03 | Gift Voucher DQLab 100rb | 100000 |
| 5 | prod-05 | Gift Voucher DQLab 250rb | 250000 |
| 6 | prod-06 | Pulpen Multifunction + Laser DQLab | 92500 |
| 9 | prod-09 | Buku Planner Agenda DQLab | 92000 |
| 10 | prod-10 | Sticky Notes DQLab 500 sheets | 55000 |
+---------+-------------+------------------------------------+--------+
SELECT * FROM ms_produk WHERE nama_produk = 'Gantungan Kunci DQLab' AND harga >
50000;
Jika dijalankan dengan baik, maka tidak ada hasil yang akan keluar. Loh? Anda bingung?
Iya, karena tidak ada yang memenuhi kedua kondisi tersebut.
Cobalah ganti kondisi dimana harga menjadi lebih kecil dari 50000, sebagai berikut.
SELECT * FROM ms_produk WHERE nama_produk = 'Gantungan Kunci DQLab' AND harga <
50000;
Kali ini jika dijalankan maka akan memunculkan satu data sebagai berikut.
+---------+-------------+-----------------------+-------+
| no_urut | kode_produk | nama_produk | harga |
+---------+-------------+-----------------------+-------+
| 8 | prod-08 | Gantungan Kunci DQLab | 15800 |
+---------+-------------+-----------------------+-------+
Kesimpulan
Filter di SQL diimplementasikan dengan menggunakan WHERE diikuti dengan satu atau
lebih kondisi logis.
Kondisi logis ini memiliki format nama kolom diikuti dengan nilai yang akan difilter. Untuk
teks sederhana bisa menggunakan tanda sama dengan, sedangkan untuk nilai angka bisa
menggunakan operator perbandingan matematika.
Selain itu kita bisa menggunakan operand OR dan AND untuk menggabungkan beberapa
kondisi menjadi satu kondisi baru yang harus terpenuhi untuk pengambilan data.
Kesimpulan
Selamat, Anda telah menyelesaikan course "Basic SQL with Select Statement" ini dengan
baik!
Pada course ini Anda telah mempelajari hal-hal dasar untuk memulai SQL yaitu:
Untuk SELECT sendiri, detil yang telah dipelajari adalah sebagai berikut:
Dengan kemampuan ini, Anda telah siap untuk mengambil dan mengolah data secara
sederhana. Keterampilan ini sendiri adalah 60% aktivitas awal yang akan dilakuan
seorang analis.
What Next?
Course "Basic SQL with Select Statement" telah memberikan Anda fundamental yang
cukup, namun masih banyak yang perlu Anda pelajari.
Beberapa yang perlu Anda lengkapi adalah:
Stay tuned untuk course-course SQL yang membahas tentang topik ini di DQLab!
s