Database Sakila, Soal Latihan dan Jawaban

Struktur Tabel Database Sakila

Buat latihan nge-mantepin query MySQL, sangat dianjurkan untuk banyak latihan. Salah satunya latihan memakai database sakila.

Berikut adalah contoh soal database sakila.

  1. Tampilkan nama lengkap aktor dan judul-judul film yang pernah dilakoninya dan urutkan nama secara ascending.
  2. Tampilkan nama customer yang pernah meminjam DVD lebih dari tiga hari, urutkan nama secara ascending.
  3. Tampilkan judul film yang ada di store 2, tetapi tidak terdapat pada store 1.
  4. Tampilkan film yang termasuk kategori comedy, dimana dalam film tersebut mengandung kata “dentist”.
  5. Berapa US Dollar total pendapatan bulan Mei tahun 2005 yang dihasilkan setiap anggota (penyewa rental) dan tampilkan berapa kali si penyewa melakukan penyewaan pada wakti tersebut.

Berikut adalah jawabannya:

Struktur Tabel Database Sakila

Struktur Tabel Database Sakila

Download Database Sakila.

1. Tampilkan nama lengkap aktor dan judul-judul film yang pernah dilakoninya dan urutkan nama secara ascending.

Nah, lo bisa aja nampilinnya kayak gini, tapi hasilnya di tabel nama bakalan ada nama yang sama berulang-ulang. Maka dari itu gue nambahin GROUP_CONCAT.

alternatif lainnya, lo bisa nulis kayak gini

2. Tampilkan nama customer yang pernah meminjam DVD lebih dari tiga hari, urutkan nama secara ascending.

Di sini juga sebenernya ada masalah, msalahnya gue pake DAYOFYEAR. DAYOFYEAR dipake buat ngekonversi tipe data tanggal ke integer urutan urutan hari. masalahnya, gimana jika si pelanggan minjemmnya di tahun yang beda? Hasilnya bakal salah.

Untuk mengatasi masalah DAYOFYEAR, kita bisa pake fungsi selisih tanggal DATEDIFF

3. Tampilkan judul film yang ada di store 2, tetapi tidak terdapat pada store 1.

Masalahnya di sini cuman gimana caranya lo nampilin yang ada hanya di store_id 2. Caranya cuman nge-exclude store_id 1 di tabel inventory.

Kayaknya bener, tapi query di atas salah. Salahnya adalah ketika kita menggabungkan dengan AND, kita tidak tahu bahwa ada berapa film_id yang akan digabungkan. Cara paling mudah memeriksanya adalah dengan cara manual.

4. Tampilkan film yang termasuk kategori comedy, dimana dalam film tersebut mengandung kata “dentist”.

Gue coba dan hasilnya gak ada, gue udah cek manual dan emang gak ada kategori komedi yang judul film nya ada kata “dentist”. Soal ini yang paling mudah dari ke lima soal.

5. Berapa US Dollar total pendapatan bulan Mei tahun 2005 yang dihasilkan setiap anggota (penyewa rental) dan tampilkan berapa kali si penyewa melakukan penyewaan pada wakti tersebut.

Soal Tambahan

  1. Tampilkan film-film apa saja yang dipinjam oleh customer yang mempunyai nama lengkap mary smith selama bulan agustus 2005
  2. Tampilkan jumlah uang yang dibelanjakan dan jumlah yang disewa oleh customer, di setiap bulannya, selama tahun 2005. Hanya untuk yang jumlah uangnya di atas USD 1000. Data diurutkan berdasarkan bulan secara ascending dan jumlah uang yang dibelanjakan secara descending.

1. Tampilkan film-film apa saja yang dipinjam oleh customer yang mempunyai nama lengkap mary smith selama bulan agustus 2005

2. Tampilkan jumlah uang yang dibelanjakan dan jumlah yang disewa oleh customer, di setiap bulannya, selama tahun 2005. Hanya untuk yang jumlah uangnya di atas USD 1000. Data diurutkan berdasarkan bulan secara ascending dan jumlah uang yang dibelanjakan secara descending

Query di atas masih kasar, gue yakin ada cara lain yang lebih sederhana dan manusiawi.

0 comments… add one

Leave a Comment