Overview
Dengan SQL command, data analyst dapat membuat tabel dan mengelola keseluruhan database, termasuk memberikan hak akses ke tiap user berbeda.
SQL (Structured Query Language) merupakan bahasa pemrograman yang sering digunakan untuk mengelola sebuah database.
Ada bermacam-macam jenis database yang memiliki fitur komputasi ataupun fitur lainnya (dijelaskan lebih lanjut pada artikel SQL - Database). Namun, seluruh database tersebut menggunakan bahasa pemrograman yang sama untuk pengolahan data di dalamnya, yaitu SQL.
Karena fungsinya untuk mengelola, maka ada banyak perintah atau command yang digunakan untuk mengatur database tersebut. Mulai dari membuat sebuah tabel di dalam database, sampai bagaimana cara seorang data analyst menarik data yang berada pada tabel yang ada di dalam database tersebut.
Apa Saja Command di SQL?
Dalam bahasa pemrograman SQL, kita dapat membagi jenis perintah yang ada ke dalam 4 kategori besar, yang biasa dikenal sebagai:
- Data Definition Language (DDL)
- Data Manipulation Language (DML)
- Data Control Language (DCL)
- Transaction Control Language (TCL)
Tiap kategori tersebut memiliki beberapa perintah SQL yang digunakan dalam database, kita akan membahas beberapa di antaranya :
Data Definition Language (DDL)
Sesuai nama dari kategori ini, keseluruhan perintah SQL yang ada dalam kategori ini berisikan beberapa perintah SQL yang digunakan untuk mendefinisikan sebuah data. Data Definition Language (DDL) merupakan sebuah kumpulan perintah SQL yang berfungsi untuk mendefinisikan tabel atau melakukan modifikasi tabel yang menampung data pada database, dimana perintah yang ada didalamnya adalah CREATE, ALTER, DROP dan lainnya. Beberapa perintah yang ada di dalamnya antara lain:
CREATE
Perintah CREATE ini biasa digunakan untuk membuat sebuah tabel baru, atau sebuah constraint, stored procedure, index, views, dan yang lainnya. Pada dasarnya, perintah ini digunakan untuk membuat sebuah objek baru dalam SQL.
ALTER
Perintah ALTER ini digunakan untuk memodifikasi objek yang sudah ada, bisa digunakan untuk menambahkan kolom baru, menambah atau menghapus constraint ataupun index, mengubah tipe data, dan lainnya.
DROP
Perintah DROP ini digunakan untuk menghapus sebuah tabel ataupun objek tertentu dari database ataupun tabel.
TRUNCATE
Perintah TRUNCATE ini digunakan untuk mengosongkan isi tabel dalam sebuah database, sehingga seluruh data dalam tiap row akan terhapus, dan menjadi sebuah tabel kosong yang tidak berisikan data. Perintah ini tidak membuang tabelnya, hanya mengosongkan isinya saja.
COMMENT
Perintah COMMENT digunakan untuk memberikan komentar pada data.
RENAME
Perintah RENAME ini mengganti nama dari sebuah objek.
Data Manipulation Language (DML)
Sesuai dari nama kategori ini, DML berisikan perintah SQL yang fungsinya untuk memanipulasi data di dalam database. Istilah ‘memanipulasi’ disini merujuk pada pengambilan data dari database sesuai dengan format dan ketentuan yang dibuat oleh data analyst, sehingga kita dapat melihat data yang sesuai dengan kebutuhan kita.
Biasanya, DML ini yang paling banyak digunakan oleh data analyst ataupun pengguna lainnya, karena tujuannya untuk mendapatkan data yang ingin dicari. Beberapa perintah yang ada di dalamnya antara lain:
SELECT
SELECT ini mungkin merupakan perintah SQL yang paling banyak digunakan dan paling sering dijumpai, karena fungsinya untuk mendapatkan data. Karena fungsinya untuk mendapatkan data ini, ada beberapa jenis modifikasi dari fungsi SELECT ini juga yang sering dipakai, antara lain:
- SELECT *
- SELECT * ini paling umum digunakan, biasanya digunakan untuk mengambil seluruh data dalam table. Simbol ‘*’ di sini berperan sebagai wildcard, yang artinya ‘semua’. Simbol ‘*’ ini juga dapat ditemui di beberapa perintah SQL lainnya selain SELECT. Bentuk penulisan dari perintah ini adalah:
- SELECT DISTINCT
- SELECT DISTINCT biasa digunakan untuk mengembalikan data yang unik. Apabila ada beberapa data yang sama di dalam tabel, maka apabila menggunakan perintah ini, seluruh data yang duplikat tersebut hanya akan dikembalikan satu saja tiap datanya. Bentuk penulisan dari perintah ini adalah:
- SELECT INTO
- SELECT INTO digunakan untuk memasukan data dari satu tabel ke tabel lainnya. Penggunaan INTO ini juga banyak dijumpai pada perintah INSERT yang nantinya akan dibahas lebih lanjut. Bentuk penulisan dari perintah ini adalah:
- SELECT TOP
- SELECT TOP ini jarang digunakan, namun fungsinya digunakan untuk memilih sejumlah x data ataupun x persen data yang kita inginkan. Bentuk penulisan ini dapat menggunakan kata PERCENT ataupun tidak. Bentuk penulisan dari perintah ini adalah:
INSERT
INSERT adalah sebuah perintah dalam SQL yang berfungsi untuk memasukan data ke dalam sebuah tabel di dalam database. Dalam penulisannya, INSERT ini biasa dituliskan bersamaan dengan INTO. Berikut contoh penulisan perintah ini:
Pada contoh di atas, kita memasukkan data ke dalam tabel ‘revoupedia’, diikuti dengan nama kolom yang ingin kita tambahkan datanya. Setelah itu, kita menuliskan VALUES dan mengisikan data yang ingin kita masukan ke dalam tabel, dengan urutan sesuai dengan urutan kolom yang kita tentukan sebelumnya.
UPDATE
UPDATE merupakan sebuah perintah SQL yang digunakan untuk mengubah data dalam tabel. Biasanya perintah ini diikuti dengan perintah WHERE untuk mengubah data sesuai dengan kriteria yang kita inginkan. Apabila kita tidak menggunakan WHERE, maka seluruh data pada tabel yang berisikan kriteria yang kita inginkan akan diubah. Berikut ini contoh penulisan perintah ini:
DELETE
Perintah DELETE ini berfungsi untuk menghapus data dalam tabel. Sama seperti UPDATE, apabila kita tidak menyertakan perintah WHERE, maka perintah ini akan menghapus seluruh data yang sesuai dengan kriteria yang kita berikan. Berikut ini contoh penulisan perintah ini:
MERGE
Perintah MERGE ini merupakan salah satu perintah dalam SQL yang menggabungkan INSERT, DELETE, dan UPDATE menjadi satu perintah. Perintah MERGE digunakan untuk menggabungkan data dari dua atau lebih tabel. Penulisan perintah ini memerlukan suatu kolom referensi yang digunakan sebagai referensi dalam menggabungkan kedua tabel. Berikut ini contoh penulisan perintah ini:
Contoh perintah di atas merupakan perintah untuk meng-update tabel revoupedia dengan tabel writing_status, dengan referensi kolom writer di kedua tabel.
Disini, query akan mengecek apabila referensi tidak ditemukan (NOT MATCHED) maka data baru di tabel writing_status (yang referensinya tidak ditemukan pada tabel revoupedia) akan dimasukkan ke dalam tabel revoupedia sebagai data baru, menggunakan query INSERT dan VALUES.
Namun, apabila data referensi ditemukan (MATCHED), maka kita akan meng-update dengan menggunakan UPDATE SET dikarenakan kita akan meng-update banyak kolom sekaligus, dengan menyamakan semua kolom yang ada di tabel revoupedia dengan semua kolom yang ada di tabel writing_status.
Dengan demikian, pada perintah di atas, kita melakukan perintah INSERT, UPDATE, dan DELETE (perintah DELETE dilakukan dengan meng-update data lama menjadi data baru) sekaligus, hanya dengan menggunakan perintah MERGE.
Data Control Language (DCL)
Tujuan dari DCL ini adalah untuk memanipulasi hak akses user pada sebuah database. Dengan perintah ini, kita bisa menentukan siapa saja orang yang dapat mengakses database, dan akses apa saja yang diberikan kepada orang tersebut.
Semisal apakah orang tersebut hanya diperbolehkan untuk melakukan DML saja atau bisa melakukan DDL sekaligus. Berikut ini beberapa perintah yang ada di DCL:
GRANT
Perintah GRANT ini digunakan untuk memberikan seorang user akses terhadap database. Untuk contoh penulisannya adalah sebagai berikut:
Pada perintah di atas, kita memberikan akses SELECT, UPDATE, INSERT, dan DELETE kepada bobby@example.com untuk melakukan perintah DML di atas ke tabel revoupedia. Jenis perintah akses yang dapat diberikan adalah SELECT, DELETE, INSERT, CREATE, ALTER, INDEX, DROP, UPDATE, GRANT, ALL (Memberi seluruh akses).
REVOKE
Perintah ini berkebalikan dengan perintah GRANT, di mana REVOKE mencabut akses atas seorang user terhadap database. Untuk contoh penulisannya sama seperti GRANT yaitu sebagai berikut:
Pada perintah di atas, kita mencabut akses UPDATE, INSERT, dan DELETE dari bobby@example.com pada tabel revoupedia, sehingga user ini hanya dapat melakukan perintah SELECT saja dan tidak dapat melakukan perintah lainnya pada tabel revoupedia.
Transaction Control Language (TCL)
TCL merupakan sebuah set transaksi yang digunakan oleh SQL untuk membuat sebuah urutan prosedur yang digunakan untuk melakukan perintah DML di dalamnya. Pada TCL ini diawali dengan perintah BEGIN TRANSACTION untuk memulai sebuah transaksi baru.
Keluaran dari transaksi ini hanya ada dua, yaitu berhasil atau gagal. Apabila SQL gagal untuk menjalankan sebuah perintah yang ada di dalam transaksi, maka output keluaran dari transaksi ini adalah gagal.
Bentuk TCL ini bisa diidentikkan dengan menjalankan sebuah fungsi (function) pada Python. Pada TCL ini kita memiliki beberapa perintah SQL yang digunakan, seperti:
BEGIN TRANSACTION
Setiap transaksi yang ingin dibuat dalam SQL dimulai dengan perintah BEGIN TRANSACTION, ini menandakan bahwa transaksi dimulai. Bentuk penulisannya antara lain:
SET TRANSACTION
Setelah memulai sebuah transaksi baru dengan BEGIN TRANSACTION, maka kita akan menuliskan SET TRANSACTION untuk menentukan karakteristik dari transaksi tersebut. Contoh penulisan untuk perintah ini adalah:
Jenis transaksi yang bisa dituliskan pada perintah ini adalah: READ WRITE dan READ ONLY, di mana READ WRITE dapat memodifikasi isi tabel dengan menggunakan DML, sedangkan READ ONLY hanya dapat membaca dengan menggunakan DML SELECT.
COMMIT
Perintah COMMIT ini menandakan bahwa seluruh perubahan yang dilakukan oleh perintah SQL lainnya adalah benar. Perintah COMMIT ini bisa diidentikkan dengan perintah save apabila kita ingin menyimpan sebuah file. Setelah modifikasi selesai dilakukan, maka kita akan melakukan save untuk menyimpan perubahan kita. Contoh penulisan dari perintah ini adalah:
Dengan menuliskan perintah di atas, apabila kita sudah melakukan DELETE terhadap tabel revoupedia dan menuliskan COMMIT, maka kita tidak bisa mengembalikan data yang telah kita hapuskan, karena perintah COMMIT ini sudah menyimpan hasilnya pada tabel revoupedia.
Mungkin ada yang berpikir, apakah kita bisa mengembalikan nilai yang kita hapus apabila kita tidak menuliskan COMMIT? Sangat bisa, kita menggunakan perintah ROLLBACK yang akan dibahas setelah ini.
ROLLBACK
Perintah ROLLBACK ini membatalkan seluruh statement yang diperintahkan sebelumnya. Bentuk penulisan perintah ini adalah:
Walaupun pada perintah pertama kita menuliskan perintah DELETE untuk menghapus data pada tabel revoupedia. Namun apabila kita tuliskan ROLLBACK, maka apabila kita melakukan perintah SELECT pada revoupedia, writer yang bernama ‘Bobby’ akan masih ada dan tidak terhapus dari tabel.
SAVEPOINT
Perintah SAVEPOINT ini merupakan sebuah penanda pada sebuah transaksi, biasa SAVEPOINT ini digunakan bersamaan dengan ROLLBACK. Kita mengetahui apabila kita menuliskan ROLLBACK, maka seluruh perubahan pada tabel yang diakibatkan statement sebelum penulisan ROLLBACK akan dibatalkan.
Namun, apabila menggunakan SAVEPOINT, kita bisa memasang sebuah penanda, sehingga kita tidak perlu melakukan ROLLBACK sampai ke awal, namun ke titik kita memasang SAVEPOINT. Perhatikan contoh penulisan perintah berikut:
Pada contoh di atas, kita membuat dua SAVEPOINT bernama SP1 dan SP2. Pada SP1, penghapusan data belum terjadi, sedangkan pada SP2 penghapusan data telah terjadi. Apabila kita menjalankan perintah berikut ini:
Maka kita akan kembali pada statement sebelum data dihapus, namun apabila kita menuliskan perintah berikut ini:
Maka kita akan mendapatkan bahwa data pada tabel revoupedia di mana kolom writer bernama ‘Bobby’ telah dihapus.
Jenis-jenis SQL Command Lainnya
Selain bentuk perintah di atas, ada beberapa jenis klausa lagi yang sering digunakan, seperti contohnya aggregate function (COUNT, MIN, MAX, SUM, AVG). Lalu ada juga fungsi kondisi seperti CASE-WHEN dan WHERE, juga beberapa klausa pendukung dan operator yang sering muncul pada klausa WHERE seperti LIKE, AND, OR, NOT, IS NULL, dan IS NOT NULL.
Selain itu ada juga fungsi GROUP BY dan HAVING yang sering digunakan bersamaan dengan aggregate function. Ada juga perintah SQL yang menyertakan constraint atau batasan pada tabel yang akan lebih lanjut dibahas di artikel SQL Constraint, juga bagaimana caranya mempercepat kinerja proses database dengan menggunakan INDEX.
Bentuk lainnya yang sering digunakan adalah JOIN untuk menggabungkan tabel sesuai dengan kriteria yang ditentukan, dan juga UNION yang digunakan untuk menggabungkan dua atau lebih tabel dengan struktur yang mirip. Ada juga perintah IN dan EXISTS untuk menguji keberadaan data dalam suatu tabel.
Selain itu, SQL juga memiliki beberapa fitur untuk membuat tabel baru seperti Common Table Expression (CTE) yang biasa digunakan untuk membuat sebuah temporary table, dan juga Views yang merupakan virtual table yang keduanya digunakan untuk mempermudah seorang data analyst dalam membuat sebuah logika SQL.
Ada pula window function yang sering digunakan bersamaan dengan aggregate function yang fungsinya mirip dengan GROUP BY, lalu ada pula ORDER BY yang biasa digunakan bersamaan juga dengan aggregate function.
Penutup
Banyak perintah SQL yang dapat diterapkan dalam membuat sebuah logika untuk mendapatkan ataupun memanipulasi sebuah data di dalam database. Seorang data analyst perlu memahami betul beberapa perintah SQL yang umum digunakan untuk mendapatkan data, terutama DML karena lebih sering digunakan untuk mendapatkan data.
Selain itu, untuk dapat melatih kemampuan seorang data analyst dalam menggunakan beberapa perintah SQL, perlu sering latihan agar terbiasa menggunakan query SQL dan juga terbiasa untuk memilih perintah apa yang sebaiknya digunakan untuk menghadapi permasalahan logika tertentu.
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)