Dalam SQL, jenis apa yang joins
telah Anda gunakan, dan jelaskan cara kerjanya?
Menjawab:
INNER JOIN
: Mengembalikan baris dengan data yang cocok dari kedua tabel.LEFT JOIN
: Mengembalikan semua baris dari tabel kiri dan mencocokkan baris dari tabel kanan.RIGHT JOIN
: Mengembalikan semua baris dari tabel kanan dan mencocokkan baris dari tabel kiri.FULL JOIN
: Mengembalikan semua baris dari kedua tabel, termasuk baris yang tidak cocok.
Jelaskan konsep ACID dalam SQL dan perannya dalam manajemen transaksi
Jawaban: ACID adalah singkatan dari Atomicity, Consistency, Isolation, Durability
. Ini adalah properti penting dalam manajemen transaksi di SQL:
Atomicity
memastikan bahwa transaksi diproses sepenuhnya atau tidak diproses sama sekali.Consistency
memastikan bahwa data harus mematuhi aturan, batasan, dan kondisi yang ditentukan.Isolation
memastikan bahwa transaksi bersamaan tidak mengganggu satu sama lain.Durability
memastikan bahwa setelah transaksi selesai, perubahan dalam database disimpan secara aman dan permanen.
Apa perbedaan antara ROW_NUMBER(), RANK(), DENSE_RANK()
fungsi dalam SQL?
Jawaban: ROW_NUMBER(), RANK(), DENSE_RANK()
semuanya digunakan untuk menomori baris dalam hasil kueri, tetapi memiliki perbedaan sebagai berikut:
ROW_NUMBER()
: Menetapkan angka kontinu ke baris dalam hasil kueri, tanpa mempertimbangkan duplikat.RANK()
: Menetapkan nomor ke baris dalam hasil kueri dan melewatkan nomor berikutnya jika ada kesamaan.DENSE_RANK()
: Menetapkan nomor ke baris dalam hasil kueri dan tidak melewatkan nomor berikutnya jika ada kesamaan.
Cara menggunakan window functions
dalam SQL, dan memberikan contoh.
Jawaban: Window functions
memungkinkan melakukan perhitungan pada satu set baris terkait tanpa mengubah hasil kueri utama. Misalnya, kita dapat menggunakan fungsi jendela untuk menghitung total berjalan atau mengambil N baris teratas dalam kumpulan hasil.
SELECT ProductID, UnitPrice,
SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal
FROM Products;
Cara menggunakan ekspresi reguler dalam SQL untuk pencocokan pola
Jawaban: Ekspresi reguler dalam SQL digunakan untuk pencarian pola teks yang kompleks. Mereka sering digunakan dengan LIKE
operator atau fungsi seperti REGEXP_LIKE
(di Oracle) atau REGEXP_MATCHES
(di PostgreSQL).
SELECT * FROM Employees WHERE LastName LIKE '%son%';
Cara menggunakan fungsi JSON di SQL untuk bekerja dengan data JSON
Jawaban: Fungsi JSON dalam SQL memungkinkan untuk membuat kueri, memasukkan, memperbarui, dan menghapus data dalam format JSON di database.
Misalnya, kita dapat menggunakan fungsi seperti JSON_VALUE, JSON_QUERY, JSON_MODIFY(di SQL Server), atau operator seperti ->, ->>, #>, #>>, dll.(di PostgreSQL) untuk memanipulasi properti JSON.
SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName
FROM Customers;
Teknik lanjutan untuk pengoptimalan kueri SQL dan penyetelan kinerja basis data
Jawaban: Untuk mengoptimalkan kueri SQL dan kinerja basis data, kita dapat menggunakan teknik seperti:
- Menggunakan indeks untuk kolom yang sering ditanyakan.
- Mengoptimalkan
JOIN
danWHERE
klausa untuk pengambilan data yang efisien. - Memanfaatkan fungsi jendela dan paginasi bila perlu.
- Menghindari
SELECT
* untuk mengambil hanya kolom yang diperlukan. - Menggunakan petunjuk kueri dalam beberapa kasus.
- Memastikan normalisasi data dan menghapus duplikat.
- Menggunakan alat pemantauan kinerja untuk melacak dan menyempurnakan database.
Jelaskan cara menggunakan SET
operasi (UNION, INTERSECT, EXCEPT)
di SQL
Jawaban: SET
operasi (UNION, INTERSECT, EXCEPT)
digunakan untuk menggabungkan dan memanipulasi kumpulan hasil dari kueri yang berbeda.
UNION
: Menggabungkan hasil dari dua kueri atau lebih ke dalam satu kumpulan data dan menghapus duplikat.INTERSECT
: Mengembalikan baris yang muncul di kedua kumpulan hasil kueri.EXCEPT
: Mengembalikan baris yang muncul di kumpulan hasil kueri pertama tetapi tidak muncul di kumpulan hasil kueri kedua.
Cara menggunakan fungsi kueri seperti LEAD, LAG, FIRST_VALUE, LAST_VALUE
di SQL
Jawaban: Fungsi kueri seperti LEAD, LAG, FIRST_VALUE, LAST_VALUE
digunakan untuk mengambil nilai dari baris terkait dalam hasil kueri yang sama.
LEAD
: Mendapatkan nilai kolom dari baris berikutnya dalam hasil kueri.LAG
: Mendapatkan nilai kolom dari baris sebelumnya dalam hasil kueri.FIRST_VALUE
: Mengambil nilai pertama kolom dalam hasil kueri.LAST_VALUE
: Mengambil nilai terakhir dari kolom dalam hasil kueri.