SQL : Apa Itu Data Manipulation Language

Bagaimana? sudah membuat tabel-tabel yang kamu butuhkan? Dalam SQL data definition language kalian akan belajar membuat tabel. Tetapi untuk membuat tabel ada beberapa prinsip yang harus kamu ingat seperti penggunaan data dan tipe data(Text dan Angka, angka desimal). Data Manipulation Language adalah kode dalam sql atau statement yang memapukan kita untuk memanipulasi data di tabel dalam database.


Ada 4 peritah umum dalam Data Manipulation Language

  • Select = Untuk memilih data dalam database
  • Insert = Untuk memasukan data dalam database
  • Update = Untuk mengubah data dalam database
  • Delete = Untuk menghapus data dalam database

Mempelajari Perintah DML ( Select * from tabel )

DML digunakan untuk mengambil data. Sebelum ada yang mengatakan "Itukan gampang, tinggal dilihat di MySQL" Coba pikirkan kamu mencari data dan dalam MySQL ada 2 juta data. Kamu akan menemukan kesulitan dalam mencari data yang kamu butuhkan. Apalagi bila kamu membutuhkan data tertentu saja. Karena itu penting mempelajari DML apabila kamu ingin mengambil sebagian data saja atau dengan syarat tertentu. Sehingga di dalam perintah select tersebut ditambahkan where.Struktur akhir sebagai berikut
Select * from table where field="Input";

Anggaplah kita memiliki tabel Pegawai dengan beberapa field seperti nama, alamat, Telpon, umur. (Untuk pembuatan tabel dapat melihat pada Data Definition language.) Kemudian kita ingin menampilkan hanya data dengan umur di atas 30 saja, maka kode sqlnya berubah menjadi

Select * from pegawai where umur>30;

Kemudian bila kita hanya ingin menampilkan sebagan field saja maka kita juga dapat mengatur field yang muncul. Minusnya, kita harus menulis nama fieldnya satu per satu. Misal : hanya dimunculkan nama dan umur dari semua orang yang berusia di atas 30 tahun.


Select Nama,Umur from pegawai where umur>30;

Sehingga kita akan mendapatkan data yang spesifik sesuai dengan pilihan kita.

Untuk data yang kita tidak ketahui secara spesifik maka kita bisa gunakan like contohnya di dalam tabel person kita hanya ingat sebagian namanya saja maka kita akan gunakan like pada nama.

SELECT FirstName, MiddleName, LastName FROM Person where FirstName like '%th%'

hasilnya akan muncul semua nama yang mengandung kata "th" di kolom FirstName



Memasukan Data ke Dalam Tabel

Data Manipulation Language berikutnya adalah cara memasukan data ke dalam tabel di MySQL. Kerangka utama dalam memasukan data adalah :

Insert Into ... Values .... ;

Insert Into tables Values (value to 1st field, value to 2nd field);

Misalkan dengan tabel pegawai yang memiliki field : nama, alamat, umur maka perintah akan menjadi seperti berikut

Insert Into pegawai Values ('Eric', 'Sun Street no 51', 26) ;
Urutan data yang dimasukan sesuai dengan urutan field yang ada dalam tabel. Kita juga bisa membatasi data yang dimasukan, misalkan alamat bukanlah sebuah kewajiban untuk dimasukan(allow null) atau dimasukan di lain waktu maka kode sql harus kita ubah.

Insert Into table(field1, field2) Values (val1,val2) ;

Insert Into pegawai(nama,umur) Values ('Eric', 26) ;
Dengan kode seperti ini maka kamu bisa memasukan ke field tertentu, dan saya harap kamu berhati-hati dalam menggunakan kode ini. Karena kesalaha bisa terjadi bila kamu tidak teliti. Berikut contoh yang akan menyebabkan error:

Insert Into pegawai(nama,umur) Values ('Eric', 'Sun Street no 51' , 26) ;

Kode di atas error, karena field yang diisi hanya dua tetapi diberi 3 value

Insert Into pegawai(nama,umur) Values ('Eric', 'Sun Street no 51') ;
Kode di atas error, karena field umur diisi alamat. umur meminta integer sedangkan alamat adalah varchar. Bahaya berikutnya adalah bila umur diberi varchar dan alamat dapat masuk ke umur.

Mengkombinasikan Perintah Insert

Perintah insert ini pun bisa digabungkan dengan select, misalkan saja kita memiliki field pegawai : idpegawai ,nama, alamat, umur. Kita mengetahui data nama, alamat dan umur, namun id pegawai tidak kita ketahui, maka kita bisa gunakan. 

Insert Into pegawai(idpegawai, nama, Alamat,umur) Values ((Select max(idpegawai)+1 from pegawai) ,'Eric', 'Sun Street no 51',26) ;

Perhatikan tanda kurung dan koma yang ada ya. 

(Select max(idpegawai)+1 from pegawai);

 artinya ambil nilai data idpegawai paling tinggi ditambah 1.

Jadi bila data id pegawai terakhir 30, maka perintah ini akan mengambalikan angka 31. Namun bagaimana bila belum ada datanya sama sekali? Perintah select max ini akan mengembalikan error.

Solusinya cukup mudah, kita tambahkan perintah coalesce.  

Select coalesce((Select max(idpegawai)+1 from pegawai),0);

Angka 0 dibelakan adalah defaultnya, jadi bila tidak ada data maka akan otomatis diisi oleh angka 0. Maka kesimpulan terakhir dari perintah insert kita agar mengisi ID pegawai secara otomatis adalah

Insert Into pegawai(idpegawai, nama, Alamat,umur) Values (Select coalesce((Select max(idpegawai)+1 from pegawai),0) ,'Eric', 'Sun Street no 51',26) ;

Mohon perhatikan tanda kurungnya. 

Hal ini tidak bisa dilakukan apabila anda memiliki format tertentu dalam idpegawai, karena perintah select max(idpegawai)+1 akan memberikan sebuah integer. Bila Idpegawai yang anda inginkan memiliki format seperti "Pegawa001" maka select max tidak bisa dilakukan.

Cara lain yang lebih mudah adalah memberikan nilai autoincrement pada idpegawai sehingga id tersebut akan selalu diberikan nilai oleh sistem.

Mengubah isi data di dalam tabel.


Berikutnya melakukan data manipulation language untuk mengubah isi data, digunakan untuk memasukan data tambahan atau membenarkan data yang salah. Berikut struktur kode untuk mengubah isi data dalam tabel.

UPDATE tabel SET field1=value1 WHERE field=value;

Update pegawai set Umur=35 where nama='Eric';
Untuk update ini disarankan untuk membiasakan diri menulis dari where terlebih dahulu. Alasannya sederhana, bila kita menggunakan kode berikut.

Update pegawai set Umur=35;
maka semua data pegawai akan terganti menjadi umur 35, kalau belum di commit bisa kamu rollback. Belum lagi bila kesalahan terjadi di front end, maka melakukan rollback akan lebih susah. Sehingga tolong dengan amat sangat biasakan menulis wherenya terlebih dahulu.

untuk mengubah beberapa field sekaligus dapat menggunakan tanda koma  ketika di set.

Update pegawai set Umur=35, alamat='Dusk Street 001' where nama='Eric';


Menghapus data dalam tabel.

Ada beberapa cara dalam menghapus data dalam tabel. Pertama, menggunakan delete statement. Kedua menggunakan truncate. Bedanya adalah dengan menggunakan delete kamu bisa menghapus data tertentu secara spesifik sedangkan truncate mengapus semua data yang ada dalam tabel. Struktur kodenya adalah sebagai berikut

DELETE FROM table WHERE field=value;

TRUNCATE TABLE tablename;
Tentu saja bentuk kode seperti di bawah ini akan menghasilkan hasil yang sama yakni menghapus semua data di dalam tabel pegawai

Delete from pegawai;

Truncate table pegawai;
Sehingga perlu dibiasakan juga pada kode untuk menghapus menaruh where terlebih dahulu. Jadi jika saya ingin menghapus data di tabel pegawai dengan nama eric maka kode nya adalah berikut

Delete from pegawai where nama='Eric';
Jadi itulah semua data manipulation language yang ada dalam SQL. Kalau kita simpulkan ada 4 yang akan sering kita gunakan dalam menggunakan SQL.

Select ... from ...

Insert into  ... values ....

Update ... set ... where ....

Delete ... from ... where ....
Itulah data manipulation language, semoga dapat membantu. Bila ada pertanyaan silahkan taruh di kolom komentar. Untuk pembuatan tabel ada dalam Data Definition Language dan ada tipe data yang bisa dipelajari terlebih dahulu. Berikutnya kita akan belajar mengkontrol hak akses user dalam SQL.

Komentar

  1. […] Untuk berikutnya kita akan mencoba belajar cara melakukan manipulasi data atau Data Manipulation Language. […]

    BalasHapus
  2. […] di Data Definition Language. Kemudian juga sudah belajar select, insert, update, delete di Data Manipulation Language. Berikutnya kita akan belajar Data Transaction […]

    BalasHapus

Posting Komentar