Data Manipulation Language (DML) Pada MySQL

Daftar Isi

Merlindawibowo.com – Data Manipulation Language (DML) dapat digunakan apabila DDL telah terjadi,  sehingga fungsi dari Query DML ini untuk melakukan manipulasi data dalam basis  data, misalnya untuk pengambilan, penyisipan, pengubahan dan penghapusan data.

Perintah Dasar dalam DML

  1. INSERT : digunakan untuk menyisipkan data ke dalam tabel 
  2. DELETE : digunakan untuk menghapus data dari tabel 
  3. UPDATE : digunakan untuk mengubah data dalam tabel 
  4. SELECT : digunakan untuk memilih dan menampilkan data 

A. INSERT  

Perintah INSERT digunakan untuk menambahkan baris atau memasukkan data  pada suatu tabel. Syarat untuk memasukkan data adalah telah terciptanya tabel pada  sebuah database terlebih dahulu. Terdapat tiga cara untuk memasukkan data, yaitu: 

INSERT INTO namatabel VALUES (nilai1, nilai2, nilai-n); 

Perintah ini berfungsi untuk mengisikan data ke dalam tabel secara urut dari  kolom paling kiri hingga paling akhir. Values yang diberikan harus sama  jumlahnya dengan kolom yang tersedia di dalam tabel. 

INSERT INTO namatabel (kolom1, kolom2, kolom-n) VALUES (nilai1, nilai2, nilai-n); 

Perintah di atas tidak menghiraukan apakah kolom yang seharusnya NOT NULL  terisi atau tidak. Cara ini digunakan seperlunya, karena dapat menimbulkan error  seperti kolom Primary key yang tidak terisi.

INSERT INTO namatabel SET kolom1 = nilai1, kolom2 = nilai2,  kolom-n = nilai-n; 

Perintah di atas harus menuliskan nama kolom secara benar, jika tidak maka akan  menyebabkan error. 

Keterangan: 

Jika data bertipe string, date atau time (contoh: merlinda, pemodelan basis data, 1993-03- 20) maka pemberian nilainya diapit dengan tanda petik tunggal (‘merlinda’) atau tanda  petik ganda (“merlinda”). Jika data bertipe numerik (contoh: 11, 9) maka pemberian  nilainya tidak diapit tanda petik tunggal maupun ganda.

Baca juga : Data Definition Language (DDL) pada MySQL

B. DELETE  

Perintah DELETE digunakan untuk menghapus record suatu tabel. Sedangkan  untuk menghapus record pada kolom tertentu menggunakan perintah UPDATE. DELETE FROM namatabel [WHERE kondisi]; 

Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu  kondisi tertentu. 

C. UPDATE  

Perintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa  kolom pada suatu tabel. 

UPDATE namatabel SET kolom-n = nilai-n [WHERE kondisi]; Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu  kondisi tertentu. 

D. SELECT  

Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat  dihubungkan dengan tabel yang lainnya. Fungsi SELECT dalam bentuk sederhana  hanya mempunyai pasangan kata FROM, yang berarti memilih tabel yang akan di SELECT. Terdapat tiga cara untuk menampilkan isi dari suatu tabel, yaitu:

1. Menampilkan data untuk semua kolom menggunakan asterisk (*)

SELECT * FROM namatabel; 

2. Menampilkan data untuk kolom tertentu 

SELECT kolom1, kolom2, kolom-n FROM namatabel;

3. Menampilkan data dengan kondisi data tertentu dengan klausa

WHERE SELECT * FROM namatabel WHERE kondisi; 

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE adalah  “=” (sama dengan), > (lebih dari), < (kurang dari), < > (tidak sama dengan), >=  (lebih dari atau sama dengan), <= (kurang dari atau sama dengan). Adapun operator yang lain, yaitu AND, OR, NOT, BETWEEN-AND, IN dan LIKE. 

Baca Juga :   Cara Merawat Kendaraan Matik

Operasi SELECT  

Select digunakan sebagai operasi untuk mengambil sejumlah baris data yang  memenuhi predikat yang diberikan. Predikat mengacu pada kondisi yang ingin  dipenuhi dalam operasi seleksi. Beberapa perintah dalam operasi Select antara lain:

1. Memberikan nama lain pada kolom  

SELECT namakolomlama AS namakolombaru FROM namatabel; 

Contoh penggunaan: 

SELECT jenis AS judul_buku FROM master_buku; 

2. Menggunakan alias untuk nama tabel  

SELECT namaalias.namakolom1, namaalias.namakolom2  FROM namatabel namaalias; 

Contoh penggunaan: 

SELECT B.judul_buku, B.pengarang FROM master_buku B; 

3. Menampilkan data lebih dari dua tabel  

SELECT * FROM namatabel1, namatabel2, namatabel-n; 

Contoh penggunaan: 

SELECT * FROM master_buku; 

4. Query Menggunakan Beberapa Parameter Kondisional  

Kita dapat memilih data menggunakan beberapa kombinasi parameter  kondisional dihubungkan dengan statement AND atau OR. Statement AND dapat juga  ditulis sebagai ‘&&’, sedangkan statement OR juga dapat ditulis sebagai ‘||’. Statement  AND memiliki precedence yang lebih tinggi dibandingkan dengan statement OR.

Baca juga : Pengenalan MySQL

Contoh penggunaan: 

SELECT first_name, last_name, salary, city FROM employee  WHERE city=’New York’ AND salary > 4000; 

5. Query Data Bertipe Teks dengan Pattern Matching  

Pattern matching dapat digunakan untuk memilih data bertipe teks dengan  karakteristik tertentu. Command yang digunakan untuk melakukan pencocokan  adalah LIKE dan NOT LIKE. Berikut beberapa fasilitas pattern matching yang  disediakan oleh MySQL. 

SimbolFungsi
_Match any single character
%Match an arbitrary number of character (including non  character)

Contoh penggunaan 1: 

SELECT CONCAT(first_name,” “,last_name) 
FROM employee 
WHERE first_name LIKE ‘J_ _ _ _’; 

Contoh di atas menunjukkan bagaimana memilih employee yang bernama depan  diawali dengan huruf ‘J’ dan diikuti oleh tepat 4 buah karakter apapun.

Contoh penggunaan 2: 

SELECT CONCAT(first_name,” “,last_name) 
FROM employee 
WHERE first_name NOT LIKE ‘%n’; 

Contoh di atas menunjukkan bagaimana memilih employee yang bernama depan  tidak diakhiri dengan karakter ‘n’. 

6. Query Data Unik Menggunakan DISTINCT  

Digunakan untuk menghilangkan duplikasi dari data yang dicari sehingga  didapatkan data yang unik (hanya muncul satu kali). 

Contoh penggunaan: 

SELECT DISTINCT city FROM employee; 

Pada contoh di atas ketika statement DISTINCT tidak digunakan, akan ditampilkan  semua nama kota dari tabel employee. Akan ada deskripsi yang keluar lebih dari satu  kali, misalnya kota “New York”.

7. Membatasi Hasil Query dengan LIMIT  

Data yang dihasilkan dari query yang kita masukkan dapat kita batasi  menggunakan statement LIMIT. 

Contoh penggunaan 1: 

SELECT * FROM employee LIMIT 5; 

Pada contoh di atas, kita membatasi jumlah data yang ditampilkan yaitu sebanyak  5 record data saja. 

Contoh penggunaan 2: 

SELECT * FROM employee LIMIT 2,3; 

Pada contoh di atas, kita membatasi data yang ditampikan dimulai dari data ke-2  hingga data ke-4 (jumlahnya sebanyak 3 data). Hal yang perlu diperhatikan adalah  urutan data dimulai dari urutan ke-0. 

Baca Juga :   Tips KPR Disetujui Bank

8. Mengelompokkan Hasil Query Menggunakan GROUP BY 

Hasil query dapat dikelompokkan berdasarkan field/kolom menggunakan  statement GROUP BY. 

Contoh penggunaan: 

SELECT * FROM employee GROUP BY city; 

Contoh di atas menunjukkan pengelompokan berdasarkan ‘city’. Hasil query akan  menunjukkan data yang ditampilkan adalah data yang pertama untuk setiap kelompok  ‘city’. Hal yang perlu diperhatikan adalah data yang ditampilkan terurut berdasarkan  data pada kolom ‘city’. 

Baca juga : Karakteristik Big Data 10 v

9. Mendapatkan Jumlah Anggota Tiap Kelompok Menggunakan COUNT() 

Query menggunakan GROUP BY hanya menunjukkan data pertama yang muncul.  Jika kita ingin mendapatkan jumlah anggota setiap kelompok, kita dapat menggunakan  fungsi COUNT(). 

Contoh penggunaan 1: 

SELECT city, COUNT(*) FROM employee GROUP BY city; 

Hasil query di atas menunjukkan jumlah employee yang ada di setiap kota. Kita  juga dapat melakukan kombinasi GROUP BY dengan parameter kondisi sebagai  berikut: 

SELECT city, COUNT(*) FROM employee WHERE  description=’Programmer’ GROUP BY city; 

Hasil query di atas menunjukkan jumlah “Programmer” yang ada pada setiap kota.

10. Parameter Kondisional dengan HAVING  

Statement HAVING merupakan parameter kondisional seperti WHERE yang  bertindak sebagai pembatas sekunder dari hasil query. Statement HAVING biasanya  digunakan untuk pembatas sekunder setelah statement GROUP BY, walaupun bisa saja  digunakan tanpa menggunakan GROUP BY. 

Contoh penggunaan 1: 

SELECT first_name, last_name, salary FROM employee HAVING  salary > 3000; 

Hasil query di atas menunjukkan parameter HAVING dapat digunakan seperti  parameter WHERE. 

Contoh penggunaan lainnya: 

SELECT city, COUNT(*), salary FROM employee WHERE salary  > 3000 GROUP BY city; 
SELECT city, COUNT(*), salary FROM employee GROUP BY city  HAVING salary > 3000; 

Hasil query di atas menunjukkan perbedaan urutan dijalankannya filtering,  sehingga didapatkan hasil yang berbeda. Query (a) melakukan pemilihan salary>3000 terlebih dahulu sebelum kemudian dikelompokkan berdasarkan city. Query (b)  melakukan pengelompokan terhadap city terlebih dahulu. Pengelompokan tersebut  menyebabkan data pertama untuk setiap kelompok saja yang terpilih. Ketika  parameter HAVING dijalankan, query hanya akan menampilkan data pertama untuk  setiap kelompok city yang memiliki salary>3000. 

11. Mengurutkan Hasil Query Menggunakan ORDER BY  

Hasil query dapat kita urutkan berdasarkan field/kolom tertentu menggunakan  ORDER BY. Statement ASC dan DESC dapat kita tambahkan untuk mendapatkan  pengurutan naik atau turun. 

Contoh penggunaan: 

SELECT CONCAT(first_name,” “,last_name) AS name FROM  employee ORDER BY name; 
SELECT CONCAT(first_name,” “,last_name) AS name FROM  employee ORDER BY name DESC;

Query (a) mengurutkan employee berdasarkan nama. Secara default, ORDER BY  menggunakan urutan naik. Kita dapat menggunakan DESC untuk mendapatkan urutan  turun seperti yang ditunjukkan oleh query (b). 

12. Mengurutkan Hasil Query Berdasarkan Lebih Dari Satu Kolom  

Pengurutan hasil query dapat dilakukan berdasarkan lebih dari satu kolom.  Statement urutan (ASC dan DESC) melekat pada kolom yang mendahuluinya. Contoh penggunaan: 

SELECT first_name, last_name, city FROM employee ORDER  BY first_name, city; 

Contoh query di atas menunjukkan pengurutan berdasarkan first_name terlebih  dahulu sebelum pengurutan berdasarkan city. Jika ada data dengan first_name yang  sama, baru data tersebut diurutkan berdasarkan city. 

Baca Juga :   Materi Basis Data

13. Operator BETWEEN  

Operator BETWEEN digunakan untuk memfilter data yang bernilai diantara dua  buah nilai yang dispesifikasikan. Sedangkan operator NOT BETWEEN adalah negasi  dari BETWEEN, dimana digunakan untuk memfilter data yang tidak bernilai diantara  dua buah nilai yang dispesifikasikan 

Contoh penggunaan: 

SELECT first_name, last_name, salary FROM employee WHERE  salary BETWEEN 1000 AND 3000; 

Hasil query di atas menunjukkan daftar employee dengan pendapatan antara  1000 dan 3000. Operator BETWEEN value1 AND value2 memiliki nilai yang ekivalen  dengan value1 ≤ data < value2. Operator BETWEEN juga dapat digunakan untuk  memfilter nilai alfanumerik (karakter huruf). 

Sub-Query  

Sub-query adalah statement SELECT di dalam statement SELECT. Sebuah sub query dinyatakan di dalam tanda kurung (). Statement di luar statement sub-query adalah salah satu dari statement SELECT, INSERT, UPDATE, DELETE, SET atau DO. Contoh penggunaan: 

SELECT first_name, last_name, salary FROM employee WHERE  salary = (SELECT MAX(salary) FROM employee);

Operator penghubung ‘=’ hanya dapat digunakan untuk menerima satu buah nilai,  sehingga ketika hasil dari sub-query berisi lebih dari satu data maka akan terjadi  pesan error. 

1. Sub-query dengan ALL  

Command ALL diikuti dengan operator perbandingan dan memiliki arti  menampilkan nilai jika perbandingan bernilai benar untuk semua data. Contoh penggunaan: 

SELECT first_name, last_name, salary FROM employee WHERE  salary > ALL(SELECT salary FROM employee WHERE  salary<2000); 

Query di atas menghasilkan daftar employee yang memiliki salary lebih besar  dari semua employee yang memiliki salary<2000. 

2. Sub-query dengan ANY  

Command ANY diikuti dengan operator perbandingan, memiliki arti  menampilkan nilai yang sesuai dengan apapun yang dihasilkan oleh sub-query. Alias  dari ANY adalah SOME. 

Contoh penggunaan: 

SELECT first_name, last_name, salary FROM employee WHERE  salary > ANY(SELECT salary FROM employee WHERE  salary<2000); 

Hasil sub-query contoh di atas adalah semua employee yang memiliki salary  kurang dari 2000. Hasil keseluruhan menampilkan semua employee yang memiliki  salary yang lebih besar dari hasil sub-query. Misalkan, pada keseluruhan data employee terdapat employee A dengan salary terendah yaitu 100, maka employee A  tersebut tidak akan ikut ditampilkan karena tidak ada salary lain yang lebih kecil dari  A. 

3. Sub-query dengan EXISTS  

Sebuah sub-query dengan EXISTS memberikan nilai TRUE jika sub-query  tersebut memiliki hasil. Jika sub-query bernilai TRUE, maka query utama akan  dijalankan. Negari dari sub-query EXISTS adalah NOT-EXISTS. 

Contoh penggunaan: 

SELECT first_name, last_name, city FROM employee WHERE  EXISTS(SELECT * FROM employee WHERE city=’Toronto’);

4. Sub-query dengan IN  

Seperti yang telah disebutkan sebelumnya, operator ‘=’ hanya dapat digunakan  ketika hasil sub-query memiliki hasil tepat satu. Jika hasil sub-query berjumlah lebih dari satu data, maka kita dapat menggunakan command IN. 

Contoh penggunaan: 

SELECT first_name, last_name, description FROM employee  WHERE description IN(SELECT title FROM job);

Semoga bermanfaat!!