Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IKD312-06-agregat-dml

536 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

IKD312-06-agregat-dml

  1. 1. Kalkulus Relasional: Join beberapa Tabel, Fungsi Agregat 17 November 2011
  2. 2. Tabel MoviemID Title Year Director101 Gone with the Wind 1939 Victor Fleming102 Star Wars 1977 George Lucas103 The Sound of Music 1965 Robert Wise104 E.T. 1982 Steven Spielberg105 Titanic 1997 James Cameron106 Show White 1937107 Avatar 2009 James Cameron108 Raiders of the Lost Ark 1982 Steven Spielberg Kalkulus Relasional 2
  3. 3. Tabel ReviewerrID Name201 Sarah Martinez202 Daniel Lewis203 Brittany Harris204 Mike Anderson205 Chris Jackson206 Elizabeth Thomas207 James Cameron208 Ashley White Kalkulus Relasional 3
  4. 4. rID mID Stars RatingDate 201 101 2 2011-01-22Tabel Rating 201 101 4 2011-01-27 202 106 4 203 103 2 2011-01-20 203 108 4 2011-01-12 201 108 2 2011-01-30 204 101 3 2011-01-09 205 103 3 2011-01-27 205 104 2 2011-01-22 205 108 4 206 107 3 2011-01-15 206 106 5 2011-01-19 207 107 5 2011-01-20 208 104 3 2011-01-02 Kalkulus Relasional 4
  5. 5. Kueri 1 Semua judul film yang disutradarai oleh James Cameron  judul film: Movie  sutradara: Movie SELECT title FROM Movie WHERE director = James Cameron Kalkulus Relasional 5
  6. 6. Kueri 2 Tampilkan tahun publikasi film untuk semua film yang mendapat rating 4 atau 5. Urutkan hasilnya dari besar ke kecil.  Tahun publikasi: Movie  Nilai rating: Rating SELECT m.year FROM Movie m, Rating r WHERE m.mID = r.mID AND r.stars IN (4, 5) ORDER BY m.year DESC Kalkulus Relasional 6
  7. 7. Kueri 3 Ada reviewer yang tidak mencantumkan tanggal ketika mereka memberikan rating kepada sebuah film. Tampilkan nama semua reviewer yang tidak mencantumkan tanggal dalam rating mereka  tanggal rating: Rating  nama reviewer: Reviewer SELECT rv.name FROM Reviewer rv, Rating rt WHERE rv.rID = rt.rID AND rt.ratingDate IS NULL Kalkulus Relasional 7
  8. 8. Fungsi Agregat Fungsi agregatku ada lima, macam-macam ragamnya  MAX  MIN  SUM  AVG  COUNT Aggregate: Mengumpulkan beberapa data Kalkulus Relasional 8
  9. 9. Fungsi Agregat Dicantumkan dalam klausa SELECT Dikombinasikan dengan klausa GROUP BY SELECT MAX(stars) FROM Rating; SELECT MIN(stars) FROM Rating; SELECT COUNT(*) FROM Rating; SELECT AVG(stars) FROM Rating; Kalkulus Relasional 9
  10. 10. Klausa GROUP BY Menjelaskan atribut mana yang tidak diagregatkan SELECT rID, MAX(stars) FROM Rating GROUP BY rID; Tampilkan nama reviewer dan nilai rating terkecil yang pernah mereka berikan. Urutkan berdasarkan nama reviewer.  nama reviewer: Reviewer  nilai rating: Rating  nilai rating terkecil: MIN(stars)  (lanjutkan) Kalkulus Relasional 10
  11. 11. Bonus Time! Tampilkan nama reviewer dan nilai rating terkecil yang pernah mereka berikan. Urutkan berdasarkan nama reviewer. SELECT rv.name, MIN(rt.stars) FROM Reviewer rv, Rating rt WHERE rv.rID = rt.rID GROUP BY rv.name ORDER BY rv.name; Kalkulus Relasional 11
  12. 12. Latihan (Tugas Mandiri) Tampilkan gaji minimum, gaji maksimum, jumlah gaji, dan rata-rata gaji untuk setiap jenis pekerjaan. Tampilkan jumlah orang yang memiliki jenis pekerjaan yang sama. Buat kueri yang menampilkan selisih antara gaji maksimum dengan gaji minimum. Beri label “Perbedaan Gaji”.
  13. 13. Kombinasi dengan klausaWHERE Apa beda antara SELECT rID, AVG(stars) FROM Rating GROUP BY rID ORDER BY rID; dengan SELECT rID, AVG(stars) FROM Rating WHERE stars > 3 GROUP BY rID ORDER BY rID; Kalkulus Relasional 13
  14. 14. Klausa HAVING Tampilkan ID reviewer dan rata-rata rating yang pernah mereka berikan, yang nilai rata-ratanya lebih besar dari 3 SELECT rID, AVG(stars) FROM Rating GROUP BY rID ORDER BY rID HAVING AVG(stars) > 3; Kalkulus Relasional 14
  15. 15. Data Manipulation Language (DML)
  16. 16. Menambahkan Baris Baru  Sisipkan sebuah baris baru yang berisi nilai untuk setiap field.  Tuliskan nilai-nilai tiap field sesuai urutan field dalam spesifikasi tabel  Secara opsional, tuliskan hanya field-field yang diperlukan. INSERT INTO departments(department_id, department_name, manager_id, location_id) VALUES (70, Public Relations, 100, 1700); 1 row created.  Apit data karakter dan waktu dalam sepasang single quote.
  17. 17. Menyisipkan Baris Barudengan Nilai Null kolom dari daftar kolom  Secara implisit: Hilangkan nama pada pernyataan INSERT. INSERT INTO departments (department_id, department_name ) VALUES (30, Purchasing); 1 row created.  Secara eksplisit: Tuliskan keyword NULL pada klausa VALUES. INSERT INTO departments VALUES (100, Finance, NULL, NULL); 1 row created.
  18. 18. Menyisipkan Nilai Khusus Fungsi SYSDATE mencatat tanggal dan waktu saat ini. INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES (113, Louis, Popp, LPOPP, 515.124.4567, SYSDATE, AC_ACCOUNT, 6900, NULL, 205, 100); 1 row created.
  19. 19. Menyisipkan Nilai TanggalTertentu INSERT INTO employees VALUES (114, Den, Raphealy, DRAPHEAL, 515.127.4561, TO_DATE(FEB 3, 1999, MON DD, YYYY), AC_ACCOUNT, 11000, NULL, 100, 30); 1 row created.
  20. 20. Menyalin Baris dari Tabel lain  Tuliskan pernyataan INSERT dengan sebuah subkueri. INSERT INTO sales_reps(id, name, salary, commission_pct) SELECT employee_id, last_name, salary, commission_pct FROM employees WHERE job_id LIKE %REP%; 4 rows created.  Cocokkan jumlah kolom pada klausa INSERT dengan yang ada pada subkueri.  Jangan lupa mencocokkan tipe data.
  21. 21. Mengubah Baris dalam Tabel Baris tertentu diubah jika secara eksplisit klausa WHERE dituliskan. UPDATE employees SET department_id = 70 WHERE employee_id = 113; 1 row updated. Semua baris dalam tabel akan diubah jika klausa WHERE dihilangkan. UPDATE copy_emp SET department_id = 110; 22 rows updated.
  22. 22. Menghapus Baris dari Tabel  Baris tertentu dihapus menggunakan klausa WHERE. DELETE FROM departments WHERE department_name = Finance; 1 row deleted.  Semua baris akan terhapus apabila klausa WHERE tidak dinyatakan secara eksplisit. DELETE FROM copy_emp; 22 rows deleted.  Klausa WHERE dapat menggunakan klausa IN.
  23. 23. Pustaka http://www.sqlite.org/ http://www.w3schools.com/sql/default.asp http://www.sql.org/ http://www.sql-tutorial.net/ http://www.sqlzoo.net/ http://www.sqlcourse.com/ http://tjerdastangkas.blogspot.com/search/label/ikd312 Kalkulus Relasional 23
  24. 24. Kamis, 17 November 2011

×