ARSIP BULANAN : October 2012

MySQL DQL, DDL, DML, dan DCL

03 October 2012 20:07:04 Dibaca : 376

 

 

Apa itu SQL?
SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering disebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL dikenalkan pertama kali dalam IBM pada tahun 1970 dan sebuah standar ISO dan ANSII ditetapkan untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan (IBM, Microsoft atau Oracle). Hampir semua software database mengenal atau mengerti SQL. Jadi, perintah SQL pada semua software database hampir sama.

Terdapat 3 (tiga) jenis perintah SQL, yaitu DDL, DML dan DCL.
   Apa itu DDL?
DDL atau Data Definition Language merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini database dan table. Beberapa perintah dasar yang termasuk DDL ini antara lain :  

+ CREATE  

-contoh :

create database [if not exists] kampus;

create table mahasiswa(nim char(9) not null primary key,

nama_mahasiswa char(40), alamat char(50));

Bentuk perintah di atas akan membuat sebuah database baru dengan nama sekolah dan table siswa. Aturan penamaan sebuah database atau table sama seperti aturan penamaan sebuah variabel, dimana secara umum nama database boleh terdiri dari huruf, angka dan under-score (_). Jika database yang akan dibuat sudah ada, maka akan muncul pesan error. Namun jika ingin otomatis menghapus database yang lama jika sudah ada, aktifkan option IF NOT EXISTS.Setiap kita membuat database baru, maka sebenarnya MySQL akan membuat suatu folder (direktori) sesuai dengan nama databasenya yang ditempatkan secara default di \mysql\data. Di dalam folder tersebut nantinya akan terdapat file-file yang berhubungan dengan tabel dalam database.

+ ALTER

 - contoh :  

alter table mahasiswa add jenkel char (1); 

alter table koleksi add author varchar (20);


Bentuk perintah di atas akan mengubah suatu table dengan menambahkan variabel jenkel pada table siswa dan variabel author pada table koleksi.

+ RENAME
rename table mahasiswa to pelajar ;

rename table koleksi to barang ;

 

 Bentuk perintah di atas akan mengubah nama suatu table. Huruf yang berwarna merah menandakan nama table yang baru sedangkan huruf yang bergaris bawah menandakan table yang akan diganti namanya.  

+ DROP  

- contoh :
drop database [if exists] nama_database;  

drop database [if exists] kampus; 

 

Bentuk perintah di atas akan menghapus kolom dan indeks dengan nama nama_database dan sekolah. Jika databasenya ada maka database dan juga seluruh tabel di dalamnya akan dihapus. Jadi berhati-hatilah dengan perintah ini! Jika nama database yang akan dihapus tidak ditemukan, maka akan ditampilkan pesan error. Aktifkan option IF EXISTS untuk memastikan bahwa suatu database benar-benar ada.

 

Apa itu DML?

DML atau Data Manipulation Language merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain :


+ SELECT  

- contoh:

select * from mahasiswa;

select * from koleksi;

 

+ INSERT 

- contoh:  

insert into mahasiswa(nim,nama_mahasiswa,alamat)

values('921411155','Firman','Jl.palma Blok B No 36');

 insert into koleksi(id_koleksi, title, author, publisher, thn_terbit, stok)

 values('103','Sistem Basis Data','Robert,'Yudistira','2012','7') 

 

Bentuk perintah di atas akan menambahkan suatu data pada table yang sudah ditentukan. Contohnya seperti diatas. Huruf yang berwarna merah menandakan data yang akan ditambahkan. Huruf yang bergaris bawah menandakan tablenya (mahasiswa, koleksi)dan variable-variabelnya.

+ UPDATE  

- contoh:  

update mahasiswa set jenkel='L' where nim='921411155';  

update koleksi set author='Oneway' where id_koleksi='103';  

 

Bentuk perintah di atas digunakan untuk mengubah suatu data pada table yang sudah ditentukan. Huruf yang berwarna merah menandakan data yang akan ditambahkan. Huruf yang bergaris bawah menandakan tablenya (mahasiswa, koleksi) dan variable-variabelnya (nim, id_koleksi).

+ DELETE


-contoh:

delete from mahasiswa where nim : '921411155';  

delete from koleksi where id_koleksi='103';

 

Bentuk perintah di atas digunakan untuk mengubah suatu data pada table yang sudah ditentukan.  Huruf yang berwarna merah menandakan kondisi data yang akan diinginkan. Huruf yang bergaris bawah menandakan nama tablenya

Apa itu DCL?  

DCL atau Data Control Language merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :

 
+ GRANT

Grant digunakan untuk mengatur izin akses pada kolom yang ditentukan saja. Konfigurasi izin akses columns_priv ini lebih sedikit dibandingkan dengan tabel tables_priv. Hak akses yang diizinkan meliputi select, insert, update dan references.

 
Contoh penggunaan izin akses kolom :
grant update(nama) on nm_db.nm_tbl to nm_user@localhost identified by ‘nm_passwd’;

Dari perintah diatas user tersebut akan bisa melakukan perintah update pada kolom nama saja. Seperti contoh dibawah :


update nm_tbl set nama=’nm_baru’ where id=23;


Selain penggunaan diatas kita bisa juga melakukan penampilan untuk kolom tertentu dan ada juga kolom yang bisa di update juga. Maka kita bisa menggunakan kombinasi seperti ini.


grant select(id,nama,alamat,usia), update(alamat,usia) on nm_db.nm_tbl to nm_user@localhost identified by ‘nm_passwd’;

 

+ REVOKE

 
Revoke merupakan kebalikan dari perintah grant yaitu menghapus atau mencabut kembali izin akses user MySQL yang sebelumnya telah diberikan. Tingkat pilihan yang dapat digunakan juga sama dengan perintah grant sehingga semua izin akses dengan grant dapat dicabut kembali.

 
Menghapus Akses Penuh

revoke all on *.* from nm_user@localhost identified by ‘nm_passwd’;


Perintah diatas membuat salah satu user tidak mempunyai izin akses lagi. Meski sudah dicabut aksesnya user tersebut masih dapat login ke database MySQL tapi tidak perlu khawatir karena user tersebut tidak bisa berbuat apa-apa lagi.


Menghapus Akses Database


revoke all on nm_db.nm_tbl from nm_user@localhost identified by ‘nm_passwd’;

 Perintah diatas izin akses user pada tabel tertentu telah dicabut sehingga tidak bisa mengakses kembali.


Menghapus Akses Kolom


revoke update(nama) on nm_db.nm_tbl from nm_user@localhost identified by ‘nm_passwd’;
 
Peintah diatas akan mencabut akses untuk kolom yang telah ditentukan sebelumnya.