DML


Apa itu Data Manipulation Language?

Manipulasi data di dalam database adalah proses mengubah atau memodifikasi data yang tersimpan di dalam database, seperti menambahkan data baru, memperbarui data yang sudah ada, menyortir atau menyaring data, dan menghapus data.

Teknik-teknik umum yang digunakan meliputi penggunaan perintah seperti INSERT, UPDATE, ORDER BY, dan DELETE untuk melakukan tugas-tugas tersebut.


INSERT

Perintah INSERT digunakan untuk menambahkan data baru ke dalam tabel di sebuah database.

Syntax untuk perintah INSERT adalah sebagai berikut:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...);

Di sini, table_name adalah nama tabel yang ingin Anda tambahkan datanya, dan column1, column2, column3, dan seterusnya adalah nama kolom-kolom yang ingin Anda tambahkan datanya. Kata kunci VALUES diikuti oleh nilai-nilai aktual yang ingin Anda masukkan ke dalam setiap kolom.

Contoh

Misalkan kita memiliki tabel yang disebut students dengan kolom id, name, dan grade. Kita dapat memasukkan baris baru ke dalam tabel dengan perintah berikut:

INSERT INTO students (id, name, grade)
VALUES (1, 'John Smith', 'A');

Perintah ini menambahkan baris baru ke dalam tabel students dengan id 1, nama 'John Smith', dan nilai grade 'A'.


UPDATE

Perintah UPDATE digunakan untuk memodifikasi data yang sudah ada di dalam sebuah tabel di dalam sebuah database.

Syntax untuk perintah UPDATE adalah sebagai berikut:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Di sini, table_name adalah nama tabel yang ingin Anda ubah, dan column1, column2, dan seterusnya adalah nama kolom-kolom yang ingin Anda ubah. Kata kunci SET diikuti oleh nilai-nilai baru yang ingin Anda tetapkan untuk setiap kolom. Klausul WHERE bersifat opsional, tetapi jika dimasukkan, maka itu akan menentukan kondisi yang harus dipenuhi agar pembaruan dapat dilakukan.

Contoh

Misalkan kita ingin memperbarui nilai grade dari seorang siswa dengan id 1 di tabel students. Hal ini dapat dilakukan dengan perintah berikut:

UPDATE students
SET grade = 'B'
WHERE id = 1;

DELETE

Perintah ini digunakan ketika Anda ingin menghapus data yang spesifik dan sesuai dengan kondisi tertentu.

Syntax untuk perintah DELETE adalah sebagai berikut:

DELETE FROM table_name
WHERE condition;

Di sini, table_name adalah nama tabel dari mana Anda ingin menghapus datanya, dan klausa WHERE digunakan untuk menentukan kondisi-kondisi yang harus dipenuhi oleh data agar bisa dihapus. Jika klausa WHERE tidak dimasukkan, maka semua baris di dalam tabel akan dihapus.

Contoh

Misalkan kita ingin menghapus semua siswa di tabel students yang memiliki nilai grade 'F'. Hal ini dapat dilakukan dengan perintah berikut:

DELETE FROM students
WHERE grade = 'F';

ORDER BY

Perintah ini digunakan ketika Anda ingin mengambil data dari tabel dalam urutan tertentu.

Syntax untuk perintah ORDER BY adalah sebagai berikut:

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name ASC|DESC;

Di sini, column1, column2, dan seterusnya adalah nama kolom-kolom yang ingin Anda ambil datanya. Kata kunci FROM diikuti oleh nama tabel dari mana Anda ingin mengambil datanya. Klausul ORDER BY digunakan untuk menentukan kolom mana yang ingin Anda gunakan untuk mengurutkan data. Anda dapat mengurutkan data secara menaik dengan menggunakan kata kunci ASC, atau secara menurun dengan menggunakan kata kunci DESC.

Contoh

Misalkan kita ingin mendapatkan daftar semua siswa di tabel students, diurutkan berdasarkan nilai grade mereka secara menurun. Hal ini dapat dilakukan dengan perintah berikut:

SELECT id, name, grade
FROM students
ORDER BY grade DESC;

Operators


Less Than

Operator < digunakan dalam query database untuk memeriksa apakah nilai di sebelah kiri lebih kecil dari nilai di sebelah kanan. Sebagai contoh:

SELECT * FROM employees WHERE salary < 50000

akan mengembalikan semua baris dari tabel employees di mana nilai dalam kolom gaji kurang dari 50.000.

More Than

Operator > digunakan dalam query database untuk memeriksa apakah nilai di sebelah kiri lebih besar dari nilai di sebelah kanan.

Sebagai contoh:

SELECT * FROM employees WHERE salary > 50000

akan mengembalikan semua baris dari tabel employees di mana nilai dalam kolom gaji lebih besar dari 50.000.

Equal

Operator = digunakan dalam query database untuk memeriksa apakah nilai di sebelah kiri sama dengan nilai di sebelah kanan.

Sebagai contoh:

SELECT * FROM employees WHERE department = 'Sales'

akan mengembalikan semua baris dari tabel employees di mana departemen employee tersebut adalah 'Sales'.


Date Functions

Dalam sebuah database, date function digunakan untuk memanipulasi dan memformat tanggal dan waktu yang disimpan di dalam database. Fungsi-fungsi ini dapat digunakan untuk mengekstrak komponen tanggal atau waktu tertentu, melakukan operasi aritmatika, dan mengonversi antara berbagai format tanggal.

DATEADD

Fungsi DATEADD() digunakan untuk menambahkan interval waktu tertentu ke sebuah tanggal.

Sebagai contoh:

SELECT DATEADD(day, 7, '2022-05-01')

akan menambahkan 7 hari ke tanggal '2022-05-01' dan mengembalikan tanggal baru '2022-05-08'.

DATEDIFF

Fungsi DATEDIFF() digunakan untuk menghitung selisih antara dua tanggal dalam satuan waktu tertentu.

Sebagai contoh:

SELECT DATEDIFF(day, '2022-05-01', '2022-05-08')

akan mengembalikan nilai 7, yang mewakili jumlah hari antara kedua tanggal tersebut.

DATEPART

Fungsi DATEPART() digunakan untuk mengekstrak komponen tertentu dari sebuah tanggal, seperti tahun, bulan, atau hari.

Sebagai contoh:

SELECT DATEPART(year, '2022-05-08')

akan mengembalikan nilai 2022, yang mewakili komponen tahun dari tanggal tersebut.

GETDATE

Fungsi GETDATE() digunakan untuk mengembalikan tanggal dan waktu sistem saat ini.

Sebagai contoh:

SELECT GETDATE()

akan mengembalikan tanggal dan waktu saat ini dalam format default sistem.

CONVERT

Fungsi CONVERT() digunakan untuk mengonversi sebuah tanggal dari satu format ke format lain.

Sebagai contoh:

SELECT CONVERT(varchar, '2022-05-08', 106)

akan mengonversi tanggal '2022-05-08' ke format 'dd mon yyyy', yang umum digunakan di negara-negara Eropa.

Kode 106 merupakan kode khusus di SQL, anda bisa melihat tabel di link berikut untuk lengkapnya: link


String Functions

Fungsi string dalam database digunakan untuk memanipulasi dan memformat data teks atau karakter yang tersimpan dalam database.

Fungsi ini dapat digunakan untuk mengekstrak bagian tertentu dari sebuah string, menggabungkan string, mengubah huruf besar atau kecil, dan melakukan pencocokan pola.

SUBSTRING

Fungsi SUBSTRING() digunakan untuk mengekstrak bagian tertentu dari sebuah string.

Syntax:

SUBSTRING(<string>, <start index>, <length>)

Sebagai contoh:

SELECT SUBSTRING('Hello World', 1, 5)

akan mengembalikan nilai 'Hello', yang merupakan lima karakter pertama dari string 'Hello World'.

CONCAT

Fungsi CONCAT() digunakan untuk menggabungkan dua atau lebih string.

Sebagai contoh:

SELECT CONCAT('Hello', ' World')

akan mengembalikan nilai 'Hello World', yang merupakan hasil penggabungan dua string tersebut.

UPPER dan LOWER

Fungsi UPPER() dan LOWER() digunakan untuk mengubah sebuah string menjadi huruf kapital atau huruf kecil, masing-masing.

Sebagai contoh:

SELECT UPPER('hello')

akan mengembalikan nilai 'HELLO', yang merupakan versi huruf kapital dari string 'hello'.

TRIM

Fungsi TRIM() digunakan untuk menghapus spasi di awal dan di akhir sebuah string.

Sebagai contoh:

SELECT TRIM(' Hello World ')

akan mengembalikan nilai 'Hello World', yang merupakan versi string tersebut setelah spasi di awal dan di akhir dihapus.

LIKE

Operator LIKE digunakan untuk pencocokan pola dalam sebuah string.

'%' merupakan wild card, yaitu dia akan menyamakan satu atau lebih karakter sisa di string tersebut.

Sebagai contoh:

SELECT * FROM employees WHERE name LIKE 'J%'

akan mengembalikan semua karyawan yang namanya diawali dengan huruf 'J'.


GROUP BY

Dalam database relasional, klausa GROUP BY digunakan untuk mengelompokkan baris berdasarkan satu atau lebih kolom. Ini adalah fitur SQL yang kuat yang memungkinkan Anda meng-agregat data dengan cara yang fleksibel dan efisien.

Syntax:

SELECT kolom1, kolom2, fungsi_agregat(kolom3)
FROM nama_tabel
GROUP BY kolom1, kolom2

kolom1 dan kolom2 adalah kolom yang digunakan untuk mengelompokkan data, dan fungsi_agregat(kolom3) adalah fungsi agregat yang diterapkan pada kolom3.

Hasilnya adalah kumpulan baris yang dikelompokkan, di mana setiap baris mewakili kombinasi nilai unik untuk kolom1 dan kolom2.

Aggregation

  • Ketika menggunakan klausa GROUP BY, biasanya Anda menggunakan satu atau lebih fungsi agregat untuk melakukan perhitungan pada data yang dikelompokkan.
  • Fungsi agregat umum meliputi COUNT(), SUM(), AVG(), MAX(), dan MIN()
  • Contoh:
SELECT department, COUNT(*) FROM employees
GROUP BY department

akan mengelompokkan karyawan berdasarkan departemen mereka dan mengembalikan jumlah karyawan di setiap departemen.

Having

HAVING digunakan bersamaan dengan klausul GROUP BY untuk menyaring grup berdasarkan kondisi. Klausul HAVING mirip dengan klausul WHERE, tetapi ia beroperasi pada data yang sudah digabungkan (grouped data) bukan pada setiap baris.

Berikut adalah beberapa hal penting tentang klausul HAVING:

Syntax:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2
HAVING condition;

Dalam sintaks ini, column1 dan column2 adalah kolom yang digunakan untuk mengelompokkan data, aggregate_function(column3) adalah fungsi agregat yang diterapkan pada column3, dan condition adalah kondisi yang digunakan untuk menyaring grup. Klausul HAVING digunakan untuk menyaring grup berdasarkan kondisi ini.

Klausul HAVING memungkinkan Anda untuk menyaring grup berdasarkan nilai agregat, seperti jumlah, rata-rata, atau jumlah baris pada sebuah kolom.

Sebagai contoh:

SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 50000

akan mengelompokkan karyawan berdasarkan departemen mereka dan mengembalikan rata-rata gaji untuk setiap departemen, tetapi hanya untuk departemen yang memiliki rata-rata gaji lebih besar dari 50000.