Modul-5.ppt 208KB Feb 13 2010 07:39:46 PM
Praktikum Database
Subquery Lanjutan dan
View
Abdul Kadir
Operator EXISTS
EXISTS merupakan jenis operator
boolean, yang menghasilkan nilai benar
atau salah
Bentuk penggunaan:
SELECT nama_kolom
FROM nama_tabel
WHERE EXISTS (subquery);
Operator EXISTS
(lanjiutan…)
Contoh:
SELECT nip, kode_bag FROM pekerjaan
WHERE EXISTS
(SELECT * FROM bagian
WHERE kode_bag = pekerjaan.kode_bag);
Operator ALL
Operator ALL digunakan untuk melakukan
pembandingan dengan subquery. Kondisi dengan ALL
menghasilkan nilai benar jika jika pembandingan
menghasilkan benar untuk setiap nilai dalam subquery
Contoh untuk memperoleh semua pegawai yang gajinya
lebih rendah daripada semua pegawai di departemen
Akuntansi (kode_bag = ‘3’):
SELECT nip, gaji
FROM pekerjaan
WHERE gaji < ALL
( SELECT gaji
FROM pekerjaan
WHERE kode_bag = '3' );
Subquery dengan Ekspresi CASE
Contoh:
SELECT nip, kode_bag,
CASE
WHEN kode_bag = (SELECT kode_bag
FROM bagian
WHERE nama_bag = 'Produksi')
THEN 'Produksi'
ELSE 'Non-Produksi'
END AS 'produksi?'
FROM pekerjaan;
Subquery pada Klausa SELECT
Contoh:
SELECT nip, (SELECT nama_bag
FROM bagian
WHERE kode_bag =
pekerjaan.kode_bag)
AS 'nama bagian'
FROM pekerjaan;
Subquery pada ORDER BY
Contoh:
SELECT nip, nama FROM infoprib
ORDER BY (SELECT kode_bag
FROM pekerjaan
WHERE nip = infoprib.nip);
Subquery Berkorelasi
Subquery
berkorelasi (correlated
subquery) adalah subquery yang
melibatkan suatu pengacuan ke tabel
yang terdapat pada query induk
Contoh:
SELECT nip, kode_bag FROM pekerjaan
WHERE NOT EXISTS
(SELECT * FROM bagian
WHERE kode_bag = pekerjaan.kode_bag);
Subquery pada HAVING
Subquery
juga bisa diletakkan dalam
klausa HAVING
Contoh:
SELECT kode_bag, SUM(gaji)
FROM pekerjaan p1
GROUP BY kode_bag
HAVING 1 < (SELECT COUNT(*)
FROM pekerjaan p2
WHERE p1.kode_bag = p2.kode_bag);
View
View
merupakan suatu bentuk
representasi data yang dapat dibuat
dengan melibatkan data yang ada pada
satu atau beberapa tabel
Dengan menggunakan view,
dimungkinkan untuk membuat hanya
bagian tertentu dalam suatu tabel yang
akan muncul
View
Sebagai contoh,
suatu view bisa
berupa data NIP
dan kode bagian
tempat pegawai
bekerja, tanpa
melibatkan data
gaji
Membuat View
Menggunakan CREATE VIEW
Contoh:
CREATE VIEW info_umum AS
SELECT nip, nama
FROM infoprib;
Memperoleh Informasi dari View
Contoh:
SELECT * FROM info_umum;
Mengubah View
Menggunakan ALTER VIEW
Contoh:
ALTER VIEW info_umum AS
SELECT nip, nama, sex FROM infoprib;
Membuat View dari Sejumlah Tabel
Contoh:
CREATE VIEW info_peg AS
SELECT infoprib.nip, infoprib.nama,
bagian.nama_bag
FROM infoprib, pekerjaan, bagian
WHERE infoprib.nip = pekerjaan. nip AND
pekerjaan.kode_bag = bagian.kode_bag;
Melihat Daftar View
Gunakan SHOW TABLES
Untuk melihat definisi view gunakan
SHOW CREATE VIEW
Contoh:
SHOW CREATE VIEW info_peg;
Membuat View Pengelompokan
Contoh:
CREATE VIEW jum_kelamin AS
SELECT sex, COUNT(sex)
FROM infoprib
GROUP BY sex;
Memberi Nama Lain Kolom
Contoh:
ALTER VIEW jum_kelamin (kelamin, jumlah) AS
SELECT sex, COUNT(sex)
FROM infoprib
GROUP BY sex;
Pemanggilan:
SELECT * FROM jum_kelamin;
Menghapus View
Perintah: DROP VIEW
Contoh:
DROP VIEW jum_kelamin;
Latihan
Buatlah view yang bisa menghasilkan
informasi seperti berikut:
Subquery Lanjutan dan
View
Abdul Kadir
Operator EXISTS
EXISTS merupakan jenis operator
boolean, yang menghasilkan nilai benar
atau salah
Bentuk penggunaan:
SELECT nama_kolom
FROM nama_tabel
WHERE EXISTS (subquery);
Operator EXISTS
(lanjiutan…)
Contoh:
SELECT nip, kode_bag FROM pekerjaan
WHERE EXISTS
(SELECT * FROM bagian
WHERE kode_bag = pekerjaan.kode_bag);
Operator ALL
Operator ALL digunakan untuk melakukan
pembandingan dengan subquery. Kondisi dengan ALL
menghasilkan nilai benar jika jika pembandingan
menghasilkan benar untuk setiap nilai dalam subquery
Contoh untuk memperoleh semua pegawai yang gajinya
lebih rendah daripada semua pegawai di departemen
Akuntansi (kode_bag = ‘3’):
SELECT nip, gaji
FROM pekerjaan
WHERE gaji < ALL
( SELECT gaji
FROM pekerjaan
WHERE kode_bag = '3' );
Subquery dengan Ekspresi CASE
Contoh:
SELECT nip, kode_bag,
CASE
WHEN kode_bag = (SELECT kode_bag
FROM bagian
WHERE nama_bag = 'Produksi')
THEN 'Produksi'
ELSE 'Non-Produksi'
END AS 'produksi?'
FROM pekerjaan;
Subquery pada Klausa SELECT
Contoh:
SELECT nip, (SELECT nama_bag
FROM bagian
WHERE kode_bag =
pekerjaan.kode_bag)
AS 'nama bagian'
FROM pekerjaan;
Subquery pada ORDER BY
Contoh:
SELECT nip, nama FROM infoprib
ORDER BY (SELECT kode_bag
FROM pekerjaan
WHERE nip = infoprib.nip);
Subquery Berkorelasi
Subquery
berkorelasi (correlated
subquery) adalah subquery yang
melibatkan suatu pengacuan ke tabel
yang terdapat pada query induk
Contoh:
SELECT nip, kode_bag FROM pekerjaan
WHERE NOT EXISTS
(SELECT * FROM bagian
WHERE kode_bag = pekerjaan.kode_bag);
Subquery pada HAVING
Subquery
juga bisa diletakkan dalam
klausa HAVING
Contoh:
SELECT kode_bag, SUM(gaji)
FROM pekerjaan p1
GROUP BY kode_bag
HAVING 1 < (SELECT COUNT(*)
FROM pekerjaan p2
WHERE p1.kode_bag = p2.kode_bag);
View
View
merupakan suatu bentuk
representasi data yang dapat dibuat
dengan melibatkan data yang ada pada
satu atau beberapa tabel
Dengan menggunakan view,
dimungkinkan untuk membuat hanya
bagian tertentu dalam suatu tabel yang
akan muncul
View
Sebagai contoh,
suatu view bisa
berupa data NIP
dan kode bagian
tempat pegawai
bekerja, tanpa
melibatkan data
gaji
Membuat View
Menggunakan CREATE VIEW
Contoh:
CREATE VIEW info_umum AS
SELECT nip, nama
FROM infoprib;
Memperoleh Informasi dari View
Contoh:
SELECT * FROM info_umum;
Mengubah View
Menggunakan ALTER VIEW
Contoh:
ALTER VIEW info_umum AS
SELECT nip, nama, sex FROM infoprib;
Membuat View dari Sejumlah Tabel
Contoh:
CREATE VIEW info_peg AS
SELECT infoprib.nip, infoprib.nama,
bagian.nama_bag
FROM infoprib, pekerjaan, bagian
WHERE infoprib.nip = pekerjaan. nip AND
pekerjaan.kode_bag = bagian.kode_bag;
Melihat Daftar View
Gunakan SHOW TABLES
Untuk melihat definisi view gunakan
SHOW CREATE VIEW
Contoh:
SHOW CREATE VIEW info_peg;
Membuat View Pengelompokan
Contoh:
CREATE VIEW jum_kelamin AS
SELECT sex, COUNT(sex)
FROM infoprib
GROUP BY sex;
Memberi Nama Lain Kolom
Contoh:
ALTER VIEW jum_kelamin (kelamin, jumlah) AS
SELECT sex, COUNT(sex)
FROM infoprib
GROUP BY sex;
Pemanggilan:
SELECT * FROM jum_kelamin;
Menghapus View
Perintah: DROP VIEW
Contoh:
DROP VIEW jum_kelamin;
Latihan
Buatlah view yang bisa menghasilkan
informasi seperti berikut: