Basisdata 2 T.Informatika UTM Ganjil 2012/2013 1Fika Hastarita Rachman
Union Penggabungan dua atau lebih ekspresi tabel hasil SQL ke dalam satu ekspresi Sintaks: ::= { | ( ) | } [ ] ::= ::= UNION | UNION DISTINCT | UNION ALL Fika Hastarita Rachman2
Aturan klausa SELECT dari seluruh blok SELECT harus memiliki jumlah ekspresi yang sama, hasil ekspresi yang akan ditempatkan dalam kolom yang sama dengan hasil ekspresi yang lainnya harus memiliki tipe data yang sama atau masih dapat ditransformasi menjadi tipe data yang sama Order By diletakkan setelah blok select terakhir Tidak boleh menggunakan DISTINCT Fika Hastarita Rachman3
Contoh UNION dan OR Cari nomor dan tempat tinggal masing-masing pemain yang berasal dari Inglewood atau Plymouth Perintah SQL dengan menggunakan operator UNION: SELECT PLAYERNO, TOWN FROM PLAYERS WHERE TOWN = 'Inglewood' UNION SELECT PLAYERNO, TOWN FROM PLAYERS WHERE TOWN = 'Plymouth' ORDER BY PLAYERNO; Fika Hastarita Rachman4 PLAYERNOTOWN Inglewood Plymouth
Secara otomtis UNION bekerja = kerja DISTINCT Buatlah daftar dari nomor pemain yang telah melakukan penalti setidaknya sebanyak 1 kali, atau pemain yang menjadi kapten tim atau pemain yang memenuhi kedua kondisi tersebut. Perintah SQL dengan menggunakan operator UNION: SELECT PLAYERNO FROM PENALTIES UNION SELECT PLAYERNO FROM TEAMS; Fika Hastarita Rachman5
Operator UNION ALL Duplikasi baris hasil yang nilainya sama tidak dihapuskan Kerja DISTINCT tidak digunakan Contoh: SELECT PLAYERNO FROM PENALTIES UNION ALL SELECT PLAYERNO FROM TEAMS; Fika Hastarita Rachman6 PLAYERNO
JOIN Digunakan untuk menggabungkan dua atau lebih tabel yang didefinisikan di dalam klausa WHERE Beda JOIN implisit(Equi-JOIN) dan eksplisit (tertulis) Untuk masing-masing tim, carilah nomor tim dan nama kaptennya Fika Hastarita Rachman7
SELECTTEAMNO, NAME FROM PLAYERS P, TEAMS T WHEREP.PLAYERNO = T.PLAYERNO; Pemrosesan dari klausa FROM, berupa Cartesian product dari dua buah tabel Fika Hastarita Rachman8
SELECTTEAMNO, NAME FROM PLAYERS P INNER JOIN TEAMS T ON (P.PLAYERNO = T.PLAYERNO); Pemrosesan dari klausa FROM, berupa gabungan nilai dua buah tabel yang memenuhi kondisi JOIN Fika Hastarita Rachman9
INNER JOIN Hasil akhir menampilkan data dari kedua tabel Yang ditampilkan merupakan interseksi dari populasi dua kolom JOIN T.PLAYERNO subset P.PLAYERNO SELECT menampilkan nomor tim dan nama kapten dari tim tersebut Fika Hastarita Rachman10
Untuk masing-masing pemain, buatlah daftar nama dan nomor teleponnya (jika memang terdaftar)! Khusus untuk pemain yang menjadi kapten suatu tim, cantumkan juga nomor timnya dan dan divisinya. Buatlah perintah SQL dengan menggunakan INNER JOIN secara implisit atau eksplisit? SELECT NAME, PHONENO, TEAMNO, DIVISION FROM PLAYERS, TEAMS WHERE PLAYERS.PLAYERNO = TEAMS.PLAYERNO Fika Hastarita Rachman11
OUTER JOIN Menghasilkan hasil yang lebih memihak pada satu tabel tertentu Terdiri: LEFT JOIN lebih memihak pada tabel sebelah kiri perintah LEFT JOIN RIGHT JOIN lebih memihak pada tabel sebelah kanan perintah RIGHT JOIN Fika Hastarita Rachman12
Perintah SQL dengan menggunakan LEFT JOIN: SELECT NAME, PHONENO, TEAMNO, DIVISION FROM PLAYERS AS P LEFT JOIN TEAMS AS T ON P.PLAYERNO = T.PLAYERNO; Perintah SQL dengan menggunakan RIGHT JOIN: SELECT NAME, PHONENO, TEAMNO, DIVISION FROM TEAMS AS T RIGHT JOIN PLAYERS AS P ON T.PLAYERNO = P.PLAYERNO; Fika Hastarita Rachman13
Evaluasi (individu) Cari model inner join dan outer join untuk analisa kasus pada dua atau lebih tabel yang ada dalam satu basisdata, Inner join – 1 Outer join – 2 Yang dikumpulkan ada 3 kasus: kasus, rancangan tabel, perintah SQL, hasil running Fika Hastarita Rachman14
Untuk masing-masing pemain, buatlah daftar nama dan nomor teleponnya (jika memang terdaftar)! Khusus untuk pemain yang menjadi kapten suatu tim, cantumkan juga nomor timnya dan dan divisinya. Fika Hastarita Rachman15 TEAMS (no tim,player no kapten) PLAYERS (name,no_telp)
Fika Hastarita Rachman16 TEAMS (no tim,player no kapten) PLAYERS (name,no_telp) Tabel B