Data Manipulation Language
(SELECT, INSERT, UPDATE, DELETE)
DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah
yang umum dilakukan adalah:SELECT
untuk menampilkan dataINSERT
untuk menambahkan data baruUPDATE
untuk mengubah data yang sudah adaDELETE
untuk menghapus data
SELECT
SELECT
adalah perintah
yang paling sering digunakan pada SQL, sehingga kadang-kadang istilah query
dirujukkan pada perintah SELECT
.
SELECT
digunakan untuk
menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data
yang sama. Secara umum, perintah SELECT
memiliki bentuk lengkap: ( QUERY BUDIN ) Cilegon.SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]
FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON kondisi_penghubung]
[, nama_tabel3 [AS alias3], ...]
[WHERE kondisi]
[ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]]
[GROUP BY nama_field1[, nama_field2, ...]]
[HAVING kondisi_aggregat]dengan:
- kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan.
- kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.
AND
, OR
, dan sebagainya.Contoh:
Diasumsikan terdapat tabel
user
yang berisi data sebagai berikut.
username
|
passwd
|
tanggal_lahir
|
jml_transaksi
|
total_transaksi
|
Aris
|
6487AD5EF
|
09-09-1987
|
6
|
10.000
|
Budi
|
97AD4erD
|
01-01-1994
|
0
|
0
|
Charlie
|
548794654
|
06-12-1965
|
24
|
312.150
|
Daniel
|
FLKH947HF
|
24-04-1980
|
3
|
0
|
Erik
|
94RER54
|
17-08-1945
|
34
|
50.000
|
SELECT *
FROM userContoh 2: Tampilkan pengguna yang tidak pernah bertransaksi.
SELECT *
FROM user
WHERE total_transaksi = 0Contoh 3: Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih dari 1.000.
SELECT username
FROM user
WHERE jml_transakai < 10 AND total_transaksi > 1000Contoh 4: Tampilkan total nominal transaksi yang sudah terjadi.
SELECT SUM(total_transaksi) AS total_nominal_transaksi
FROM userContoh 5: Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil.
SELECT *
FROM user
ORDER BY jml_transaksi DESC
Fungsi aggregat
Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan sekelompok data (aggregat). Secara umum fungsi aggregat adalah:SUM
untuk menghitung total nominal dataCOUNT
untuk menghitung jumlah kemunculan dataAVG
untuk menghitung rata-rata sekelompok dataMAX
danMIN
untuk mendapatkan nilai maksimum/minimum dari sekelompok data.
SELECT
.
Syarat untuk fungsi aggregat diletakkan pada bagian HAVING
, bukan WHERE
.Subquery
Ada kalanya query dapat menjadi kompleks, terutama jika melibatkan lebih dari satu tabel dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan subquery. Contoh:Tampilkan username pengguna yang memiliki jumlah transaksi terbesar.
SELECT username
FROM user
WHERE jml_transaksi =
(
SELECT MAX(jml_transaksi)
FROM user
)
INSERT
Untuk menyimpan data dalam tabel digunakan sintaks:INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])Contoh:
INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass');
UPDATE
Untuk mengubah data menggunakan sintax:UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]Contoh:
UPDATE Msuser set password="123456" where username="abc"
DELETE
Untuk menghapus data dipergunakan sintaks:DELETE FROM [nama_table] Where [KONDISI]Contoh:
DELETE FROM TEST WHERE NAMA='test';