MODUL V DATA MANIPULATION LANGUAGE (DML) 1
Tujuan : Praktikan dapat memahami dan mengisi tabel dalam database Praktikan dapat memahami dan memanipulasi data dalam database
Tugas Pendahuluan Apa yang anda ketahui tentang DML? Apa yang anda ketahui tentang perintah INSERT, UPDATE dan DELETE? Sebutkan dan jelaskan macam-macam klausa maupun operator yang terdapat dalam perintah SELECT! Dasar Teori
DML (Data Manipulation Language) adalah bahasa yang memungkinkan pengguna mengakses atau memanipulasi data seperti yang diatur oleh model data. Manipulasi data adalah : Pengambilan informasi yang disimpan dalam basisdata Penempatan informasi baru dalam basisdata Penghapusan informasi dari basisdata Modifikasi informasi yang disimpan dalam basisdata DML (Data Manipulation Language) merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 jenis DML, yaitu : Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya. Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya. Query adalah pernyataan yang meminta pengguna mengambil informasi. Bagian DML yang terlibat dalam pengambilan informasi disebut bahasa query. Istilah bahasa query sering disamakan dengan istilah bahasa manipulasi data. Sedangkan SQL adalah sebuah sintaks untuk mengeksekusi query.
30
Praktikum Coba semua contoh operasi DML di bawah ini : 1. Pernyataan INSERT INTO Pernyataan INSERT INTO digunakan untuk memasukkan data baru pada tabel. Sintaks : INSERT INTO nama_tabel VALUES (nilai1, nilai2, ...) Urutan nilai yang diletakkan dalam tanda kurung disesuaikan dengan urutan kolom dalam tabel. Akan tetapi kita bisa menentukan kolom-kolom yang akan diisi dengan data baru, yaitu : INSERT INTO nama_tabel (kolom1, kolom2, ...) VALUES (nilai1, nilai2, ...) Kolom-kolom yang tidak disebutkan pada Insert secara otomatis akan diisi dengan Null dan kolom yang tidak disebutkan dalam Insert haruslah yang tidak Not Null. Contoh : Insert Into Mahasiswa Values ('01012','Irwan','Jl.Beo 23','Bogor') 2.
Pernyataan UPDATE Pernyataan UPDATE digunakan untuk modifikasi data dalam tabel. Sintaks : UPDATE nama_tabel SET nama_kolom = nilai_baru WHERE nama_kolom = nilai Pada pernyataan diatas : SET untuk menentukan kolom yang akan diubah dan nilai penggantinya. WHERE menentukan kondisi dari baris-baris yang akan diganti. Contoh : Update Mahasiswa Set Nama ='Riri' Where NPM='01010' 3.
Pernyataan DELETE Pernyataan DELETE digunakan untuk menghapus baris pada tabel. Sintaks : DELETE FROM nama_tabel WHERE nama_kolom = nilai Contoh : Untuk menghapus baris pada tabel Mahasiswa yang nilai NPMnya adalah 01013, anda bisa memberikan pernyataan seperti berikut : Delete From Mahasiswa
31
Where NPM =’01013’ Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel tanpa menghapus tabel maka Where tidak perlu disebutkan. DELETE FROM nama_tabel Atau DELETE * FROM nama_tabel 4.
Pernyataan SELECT Secara umum perintah SELECT hanya difungsikan untuk menampilkan data yang ada di dalam suatu tabel. Tetapi dalam pengembangannya, perintah ini akan menjadi sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman di stored procedures dan triggers. Sementara ini dalam basis data 1 yang kita bahas hanya pernyataan SELECT yang digunakan untuk memilih data dari tabel, yang mana hasilnya disimpan dalam tabel hasil yang disebut Result Set. Sintaks : SELECT nama_kolom FROM nama_tabel Untuk memilih beberapa kolom gunakan pernyataan SELECT sebagai berikut : SELECT nama_kolom1, nama_kolom2, ... FROM nama_tabel Contoh : Select NPM, Nama From Mahasiswa Merupakan pernyataan untuk menampilkan kolom NPM dan Nama yang terdapat pada tabel Mahasiswa. NPM Nama ----- -----------------------------01001 Rudi 01002 Iwan 01005 Wati 01006 Jihan 01007 Nova 01009 Budi Untuk memilih semua kolom dari tabel, dapat menuliskan tanda asterisk ( * ) sesudah kata Select. Simbol * berarti semua kolom, seperti berikut : SELECT * FROM nama_tabel Contoh :
32
Select * From Mahasiswa 4.1 Distinct Untuk memilih hanya nilai yang berbeda, gunakan pernyataan SELECT DISTINCT. Sintaks : SELECT DISTINCT nama_kolom FROM nama_tabel 4.2 Klausa WHERE Klausa WHERE digunakan untuk menentukan kriteria seleksi. Untuk memilih data suatu tabel dengan kriteria tertentu, klausa WHERE dapat ditambahkan pada pernyataan SELECT. Sintaks : SELECT nama_kolom FROM nama_tabel WHERE kolom operator nilai Dengan klausa WHERE, operator berikut dapat digunakan : Operator Keterangan = Sama dengan <> Tidak sama dengan > Lebih besar dari < Lebih kecil dari >= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan BETWEEN Antara dua nilai LIKE Mencari suatu pola Contoh : Select NPM, Nama From Mahasiswa Where NPM = ’01001’ Perlu diperhatikan bahwa kita menggunakan tanda petik tunggal (‘ ‘) pada contoh diatas. SQL menggunakan tanda petik tunggal pada nilai teks, sedangkan nilai numerik tidak diberi tanda petik. 4.3 Kondisi LIKE Kondisi LIKE digunakan untuk menentukan pencarian berdasarkan pola tertentu pada suatu kolom.
33
Sintaks : SELECT nama_kolom FROM nama_tabel WHERE nama_kolom LIKE pola Tanda ” % ” dapat digunakan untuk menentukan Wildcard (sembarang huruf), baik sebelum maupun sesudah pola. Pernyataan SQL berikut akan menghasilkan nama mahasiswa yang dimulai dengan huruf A : Select * From Mahasiswa Where NamaDepan LIKE ‘A%’ Pernyataan SQL berikut menghasilkan nama mahasiswa yang diakhiri huruf a : Select * From Mahasiswa Where NamaDepan LIKE ‘%a’ Pernyataan SQL berikut menghasilkan nama mahasiswa yang mengandung pola “di”: Select * From Mahasiswa Where NamaDepan LIKE ‘%di%’ 4.4 Klausa Order By Klausa ORDER BY digunakan untuk mengurutkan data. Jika kita ingin menampilkan nama mahasiswa berdasarkan urutan abjad, pernyataan SQL-nya adalah : SELECT * FROM Mahasiswa ORDER BY NamaDepan Jika kita ingin menampilkan nama mahasiswa dan kotanya berdasarkan urutan abjad, maka pernyataan SQL-nya adalah : SELECT * FROM Mahasiswa ORDER BY NamaDepan, Kota Jika kita ingin menampilkan nama mahasiswa dengan urutan abjad terbalik, maka pernyataan SQL-nya adalah : SELECT * FROM Mahasiswa ORDER BY NamaDepan DESC
34
Jika kita ingin menampilkan nama mahasiswa berdasarkan urutan abjad terbalik dan nama kota berdasarkan urutan abjad, maka pernyataan SQL-nya adalah : SELECT * FROM Mahasiswa ORDER BY NamaDepan DESC, Kota ASC 4.5 Operator AND dan OR AND dan OR menggabungkan dua atau lebih kondisi pada klausa WHERE. Operator AND menampilkan data jika semua kondisi yang diminta bernilai benar. Operator OR menampilkan data jika ada kondisi yang benar. Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita dan nama kota Yogyakarta adalah: SELECT * FROM Mahasiswa WHERE NamaDepan = ’Ita’ AND Kota = ’Yogyakarta’ Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita atau kota Yogyakarta adalah : SELECT * FROM Mahasiswa WHERE NamaDepan = ’Ita’ OR Kota = ’Yogyakarta’ Operator AND dan OR dapat digunakan secara bersamaan, yaitu : SELECT * FROM Mahasiswa WHERE (NamaDepan = ‘Ita’ OR Kota = ‘Yogyakarta’) AND (Alamat = ‘Jl. Jend. Sudirman 3’) 5 Klausa GROUP BY dan HAVING 5.1 GROUP BY Hasil dari Select juga dapat dikelompokkan. Hal ini dapat dilakukan dengan menambahkan klausa GROUP BY. Sintaks : SELECT nama_kolom, COUNT (nama_kolom) FROM nama_tabel GROUP BY nama_kolom Jika kita ingin menampilkan nama mahasiswa yang lahir di satu kota, gunakan pernyataan berikut : SELECT Tempat_Lahir, COUNT (Tempat_Lahir) as Jumlah FROM Mahasiswa GROUP BY Tempat_Lahir
35
5.2 HAVING Klausa HAVING disediakan untuk mendukung klausa GROUP BY. Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi kondisi HAVING saja yang akan dihasilkan. Sintaks : SELECT nama_kolom, COUNT (nama_kolom) FROM nama_tabel GROUP BY nama_kolom HAVING COUNT (nama_kolom) kondisi nilai Misalnya, pernyataan untuk mencari kota yang menjadi tempat lahir oleh lebih dari satu mahasiswa adalah: SELECT Tempat_Lahir, COUNT (Tempat_Lahir) AS Jumlah FROM MAHASISWA GROUP BY Tempat_Lahir HAVING COUNT (Tempat_Lahir) > 1 6
Fungsi Aggregate (COUNT, SUM, AVG, MIN dan MAX) Fungsi aggregate merupakan fungsi-fungsi yang digunakan untuk melakukan perhitungan statistikal dalam tabel. Secara umum, hanya field yang bertipe numerik (int, money dan sejenisnya) yang bisa dikenakan fungsi ini. SQL menyediakan sejumlah fungsi yang dapat digunakan pada SELECT. Fungsi Keterangan AVG Menghitung rata-rata COUNT Menghitung cacah data MAX Memperoleh nilai terbesar MIN Memperoleh nilai terkecil SUM Memperoleh jumlahan data 6.1 COUNT Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel. Pernyataan SQL untuk menghitung jumlah baris kolom NamaDepan pada tabel Mahasiswa adalah : SELECT COUNT (NamaDepan) AS JumlahMahasiswa FROM Mahasiswa 6.2 SUM Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel. Pernyataan SQL untuk menghitung jumlah nilai kolom SKS pada tabel Matakuliah : SELECT SUM(SKS) AS TotalSKS
36
FROM Matakuliah 6.3 AVG Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom SKS pada tabel Matakuliah : SELECT AVG(SKS) AS RataSKS FROM Matakuliah 6.4 MIN Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom SKS pada tabel Matakuliah : SELECT MIN(SKS) AS JumlahMinimum FROM Matakuliah 6.5 MAX
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom SKS pada tabel Matakuliah : SELECT MAX(SKS) AS JumlahMaksimum FROM Matakuliah 7
Operator IN Operator IN bisa digunakan jika kita mengetahui nilai pasti yang akan diambil untuk setidaknya satu kolom. Sintaks : SELECT nama_kolom FROM nama_tabel WHERE nama_kolom IN (nilai1, nilai2, ...) Untuk menampilkan mahasiswa dengan nama depan Hasan atau Adi, gunakan pernyataan SQL berikut : SELECT * FROM Mahasiswa WHERE NamaDepan IN (’Hasan’, ’Adi’) 8
Operator BETWEEN … AND Operator BETWEEN … AND memilih data antara dua nilai. Nilai dapat berupa angka, teks, atau tanggal. Sintaks :
37
SELECT nama_kolom FROM nama_tabel WHERE nama_kolom BETWEEN nilai1 AND nilai2 Untuk menampilkan Mahasiswa yang namanya diantara (dan termasuk) Adi dan Ita, gunakan perintah SQL berikut : SELECT * FROM Mahasiswa WHERE NamaDepan BETWEEN ’Adi’ AND ’Ita’ Operator BETWEEN … AND diperlakukan secara berbeda pada DBMS berbeda. Pada satu DBMS, data Mahasiswa yang dimunculkan adalah yang berada diantara Adi dan Ita, tetapi Adi dan Ita tidak dimunculkan. Pada DBMS lain, Mahasiswa yang dimunculkan termasuk Adi dan Ita. Kemudian, pada DBMS lainnya, Adi dimunculkan, tetapi Ita tidak. Untuk menampilkan Mahasiswa di luar jangkauan contoh, gunakan operator NOT seperti berikut : SELECT * FROM Mahasiswa WHERE NamaDepan NOT BETWEEN ‘Adi’ AND ‘Ita’ Tugas : Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masingmasing perintah DML berikut : 1. Buatlah perintah SQL untuk menampilkan data yang berasal dari dua tabel dan tiga tabel. 2. Buatlah perintah SQL yang menggunakan klausa Order By, Group By, dan Having. 3. Buatlah perintah SQL yang menggunakan operator AND, OR, IN dan BETWEEN ... AND. 4. Buatlah perintah SQL yang menggunakan fungsi Agregate (masingmasing 1). 5. Sisipkan min 10 baris data dalam masing-masing tabel 6. Tambahkan min 2 operasi update, delete, dan select
38