SQL Part 2 Review Pertemuan Ke-IX Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih userfriendly. Oleh karena itu dikenal SQL sebagai bahasa query yang marketable. SQL menggunakan kombinasi aljabar relasional & kalkulus relasional. Struktur dasar dari ekspresi SQL terdiri dari tiga klausa yaitu : select, from dan where. 2 Klausa Where Contoh query : “Temukan semua loan number untuk pinjaman-pinjaman yang dibuat pada cabang Perryridge dengan jumlah lebih besar dari $1200”. Query-nya ditulis sebagai berikut : 3 Klausa Where Select loan-number From loan Where branch-name = “Perryridge” and amount >1200 4 Klausa Where SQL menggunakan konektivitas lojik and, or dan not dalam klausa where. SQL juga memasukkan perintah between untuk menentukan apakah suatu nilai lebih kecil daripada atau sama dengan suatu nilai lain dan lebih besar daripada atau sama dengan suatu nilai lain. 5 Klausa Where Contoh : jika diinginkan menemukan loannumber yang jumlah pinjamannya antara $90000 dan $100000, ditulis sebagai berikut : Select loan-number From loan Where amount between 90000 and 100000 6 Klausa From Contoh query : “Untuk semua customer yang mempunyai sebuah pinjaman dari bank, temukan nama dan loan number mereka”. 7 Klausa From Select distinct customer-name, borrower.loan-number From borrower, loan Where borrower.loan-number = loan.loan.number 8 Operasi Rename SQL menyediakan mekanisme operasi rename untuk relasi dan atribut. Operasi rename dalam SQL menggunakan klausa as dengan bentuk : Nama-lama as nama-baru 9 Operasi Rename Contoh : Jika atribut dengan nama loannumber akan diganti dengan nama loan-id, dapat ditulis sebagai berikut : 10 Operasi Rename Select distinct customer-name, borrower.loan-number as loan-id From borrower,loan Where borrower.loan-number = loan.loannumber and branch-name = “Perryridge” 11 OPERASI HIMPUNAN Operasi operasi himpunan pada SQL-92 meliputi : union, intersect, dan except. Union identik dengan U, intersect identik dengan ∩ dan except identik dengan – pada aljabar relasional. 12 Operasi Union Contoh : Untuk mendapatkan semua customer yang mempunyai pinjaman, rekening atau keduannya pada bank ditulis : (select customer-name from depositor) union (select customer-name from borrower) 13 Operasi Union Operasi union secara otomatis akan menghilangkan duplikasi, tidak seperti klausa select. Sehingga pada query di atas, jika Jones (seorang customer) mempunyai beberapa rekening atau pinjaman (atau keduannya) pada bank, maka Jones hanya akan muncul sekali. Jika duplikasi diinginkan ada maka harus ditulis union all. 14 Operasi Intersect Contoh : untuk mendapatkan semua customer yang memiliki pinjaman dan rekening pada bank, query-nya ditulis : (select distinct customer-name from depositor) intersect (select distinct customer-name from borrower) 15 Operasi Intersect Operasi intersect secara otomatis menghilangkan duplikasi. Jika diinginkan duplikasi tetap ada ditulis intersect all. 16 Operasi Except Contoh : untuk mendapatkan semua customer yang mempunyai sebuah rekening tetapi tidak memiliki pinjaman pada bank, ditulis : (select distinct customer-name from depositor) except (select customer-name from borrower) 17 Operasi Except Operasi except secara otomatis menghilangkan duplikasi. Jika diinginkan ada maka ditulis : except all. 18 Summary Operasi operasi himpunan pada SQL-92 meliputi : union, intersect, dan except. Union identik dengan U, intersect identik dengan ∩ dan except identik dengan – pada aljabar relasional. Operasi union secara otomatis akan menghilangkan duplikasi, tidak seperti klausa select. 19 SOAL LATIHAN 1.Diketahui relasi yang menyimpan penerbangan pesawat: Flights(flno: integer, from: string, to: string, distance: integer, departs: time, arrives: time, price: integer) Aircraft(aid: integer, aname: string, cruisingrange: integer) Certied(eid: integer, aid: integer) Employees(eid: integer, ename: string, salary: integer) Tuliskan query dalam SQL : 1. For all aircraft with cruisingrange over 1,000 miles, nd the name of the aircraft and the average salary of all pilots certied for this aircraft. 2. Find the names of pilots certied for some Boeing aircraft. 3. Find the aids of all aircraft that can be used on routes from Los Angeles to Chicago. 4. Identify the flights that can be piloted by every pilot who makes more than $100,000. (Hint: The pilot must be certied for at least one plane with a suciently large cruising 20 range.) REFERENSI Referensi Wajib: Raghu Ramakhrisnan, Johannes Gehrke , “Database Management System” 6th Edition, Mc Graw Hill,2006 (chapter : 5) Referensi Tambahan/dianjurkan: David M.Kroenke, Database Concepts 4th Edition, Prentice Hall 2004 21