Memahami Perintah DCL

Kumpulan tutorial belajar MySQL untuk pemula, dari dasar hingga mahir.

Data Control Language (DCL) adalah perintah SQL untuk kontrol dan permission database

Perintah DCL antara lain

GRANT -> Memberikan hak akses / hak istemewa pengguna

REVOKE -> Menarik hak akses pengguna yang diberikan lewat perintah GRANT

1 Perintah GRANT

Perintah GRANT memungkinkan pemberikan hak akses kepada pengguna

Tidak harus setiap pengguna database dapat mengakses seluruh data di database. Ada pengguna yang hanya dapat melakukan operasi di satu table saja. Bisa juga pengguna hanya dapat melakukan operasi SELECT saja tanpa bisa melakukan manipulasi data

Maka itulah diperlukan manajemen hak akses dengan GRANT

Sebelum kita menggunakan perintah GRANT terlebih dulu kita akan buat user di database dengan perintah

CREATE USER 'nama_user'@'localhost' IDENTIFIED BY 'password';

Note : untuk membuat user baru anda harus masuk sebagai root. Pahami cara masuk MySQL/MariaDB melalui terminal / command prompt menggunakan user root di Tutorial MySQL untuk pemula

Misal kita akan bikin user mhscupu dengan password 12345

> CREATE USER 'mhscupu'@'localhost' IDENTIFIED BY '12345';

Query OK, 0 rows affected (0.00 sec)

Login ke MySQL dengan username mhscupu

$ ./mysql -u ngodingdata -p

 Enter password:

 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 209 Server version: 10.1.38-MariaDB Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 MariaDB [(none)]>

Saat akan melihat list database, user mhscupu tidak dapat melihat keseluruhan data (berbeda jika melihat database dengan akses root)

Cara penulisan perintah SELECT

SELECT field1, field2, field3, ...

FROM nama_table;

Jika ingin membaca semua field table gunakan tanda *

SELECT *

FROM nama_table;

Misal kita telah membuat database universitas dengan table mahasiswa seperti materi DDL dan mengisi nilai dengan materi DML

INSERT INTO mahasiswa

VALUES

(21400200,"faqih","bandung"),

(21400201,"ina","jakarta"),

(21400202,"anto","semarang"),

(21400203,"dani","padang");

Kita gunakan perintah SELECT untuk mengambil data mahasiswa dan menampilkannya di layar

XAMPP img

Jika hanya ingin menampilkan beberapa atribut dari mahasiswa maka harus ditentukan field yang ingin di-SELECT

XAMPP img

Ada beberapa klausa dan operator penting untuk melakukan filter dan aggregasi dari perintah SELECT antara lain

Klausa / Operator Makna
WHERE Filter pencarian data
AND, OR, NOT Operator pelengkap WHERE
LIKE Operator pelengkap WHERE
ORDER BY Mengurutkan data secara A-Z / Z-A
LIMIT Membatasi hasil pencarian
AGGREGATION Fungsi agregasi
GROUP BY Mengelompokkan nilai berdasarkan field

WHERE

WHERE digunakan sebagai pelengkap SELECT untuk filter pencarian data.

SELECT field1, field2, field3, ...

FROM nama_table

WHERE kondisi

Misal mencari data mahasiswa yang bernama anto

XAMPP img

AND, OR, NOT

Klausa WHERE dapat dikombinasikan dengan operator AND, OR dan NOT

Operator AND akan menghasilkan nilai TRUE jika kedua pernyataan bernilai benar

SELECT field1, field2, field3, ...

FROM nama_table

WHERE kondisi1 AND kondisi2

WHERE kondisi1 AND kondisi2

XAMPP img

Sekarang kita coba cari data mahasiswa yang bernama anto dan beralamat jakarta

XAMPP img

Tidak mendapatkan nilai apapun karena saat pencarian terdapat 2 pernyataan yang bernilai TRUE dan FALSE (mahasiswa anto di database hanya berasal dari semarang)

Operator OR akan menghasilkan nilai TRUE jika salah satu pernyataan bernilai benar

SELECT field1, field2, field3, ...

FROM nama_table

WHERE kondisi1 OR kondisi2

Jika kita mencari data mahasiswa yang bernama anto atau mahasiswa yang beralamat jakarta

XAMPP img

Maka dengan operator OR akan dicari data mahasiswa yang bernama anto dan mahasiswa yang berasal dari jakarta

Operator NOT akan menghasilkan nilai TRUE jika pernyataan bernilai salah

SELECT field1, field2, field3, ...

FROM nama_table

WHERE NOT kondisi

Contoh, mencari data mahasiswa yang tidak bernama anto

XAMPP img

LIKE

Klausa WHERE dapat dikombinasikan dengan operator LIKE untuk mencari data yang lebih spesifik berdasarkan pola

SELECT field1, field2, field3, ...

FROM nama_table

WHERE kondisi LIKE '%pola%';

Mencari data mahasiswa yang mempunyai nama dengan pola ‘an’

XAMPP img

Data yang dihasilkan adalah nama anto dan dani yang mempunyai komposisi huruf ‘an’