Oleh Siti Nuraini Triastuti 11120047 Santi Dewi Putri .S. 11120037 Dewi Rahayuningsih 11120031
Fakultas Teknik Program Studi Teknik Informatika Universitas Wijaya Kusuma Surabaya 2014 Tujuan 1. Mahasiswa dapat mengentahui tentang teori Subquery. 2. Mahasiswa dapat mengerti penggunaan subquery. 3. Mahasiwa dapat memahami fungsi dari quey where,like,Desc/Asc. 4. Mampu menerapkan pengguna subquery dan query tingkat lanjut. Pendahuluan 1. Subquery
Pengertian singkat tentang subquery adalah perintah SELECT yang berada di dalam perintah SQL lain. Subquery adalah salah satu metode untuk mendapatkan informasi dari beberapa tabel dalam database.Arti subquery sendiri adalah query didalam query. jadi untuk mendapatkan informasi pada tabel ataupun relasional tabel yang sangat kompleks kita dapat menggunakan kondisi dengan sub permintaan tertentu.Secara umum syntax subquery adalah :
SELECT * FROM tabel_a WHERE kolom_a = (SELECT kolom_b FROM tabel_b); Kegunaan subquery dalam memanipulasi data: Meng-copy data dari satu tabel ke tabel lain Menerima data dari inline view Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
Subquery dapat diklasifikasikan ke dalam tiga jenis: a. Scalar Subquery Subquery baris tunggal ( scalar) hanya mengembalikan hasil satu baris data. Subquery baris tunggal dapat menggunakan operator baris tunggal =,>,>=,<,<=, atau <> b. Multi-row subquery Menghasilkan lebih dari satu row. Tanda pembanding yang digunakan dalam multi row subquery adalah tanda pembanding jamak yaitu IN, ANY dan ALL. c. Multi-column Subquery Multi Column Subquery adalah subquery yang menghasilkan lebih dari satu kolom. Biasa disebut juga pairwise subquery. Jumlah dan posisi kolom dari outer query yang akan dibandingkan harus sama dengan jumlah dan posisi kolom pada subquery. Setiap row pada outer query dibandingkan dengan nilai dari multiple-row dan multiple- column pada subquery. Penghubung yang digunakan biasanya IN 2. Fungsi Where WHERE digunakan untuk mengekstrak hanya catatan-catatan yang memenuhi kriteria tertentu. SQL WHERE Syntax SELECT nama_kolom, nama_kolom FROM nama_tabel WHERE nama_kolom operator hasil; 3. Fungsi Like Operator LIKE digunakan untuk mencari pola yang telah ditentukan dalam kolom SQL LIKE Syntak SELECT nama_kolom (s) FROM nama_tabel WHERE nama_kolom LIKE pattern;
Percobaan Pembuatan table database pada SQL dan Oracle SQL o Membuat table Mahasiswa dengan nim sebagai primarykey Setelah itu masukan data Mahasiswa Kemudian panggil data Mahasiswa dengan perintah select * from mahasiswa, maka akan muncul seperti pada gambar dibawah ini :
o Membuat table Dosen dengan kode_dos sebagai primarykey Setelah itu masukan data Dosen Kemudian panggil data Dosen dengan perintah select * from dosen, maka akan muncul seperti pada gambar dibawah ini :
o Membuat table matakuliah dengan kode_mk sebagai primarykey Setelah itu masukan data matakuliah Kemudian panggil data matakuliah dengan perintah select * from matakuliah, maka akan muncul seperti pada gambar dibawah ini:
o Membuat table ambil_mk dengan nim sebagai primarykey Setelah itu masukan data ambil_mk Kemudian panggil data ambil_mk dengan perintah select * from ambil_mk, maka akan muncul seperti pada gambar dibawah ini :
o Membuat table jurusan dengan kode_jur sebagai primarykey Setelah itu masukan data jurusan Kemudian panggil data jurusan dengan perintah select * from jurusan, maka akan muncul seperti pada gambar dibawah ini
Tugas SQL 1. Gunakan Subquery untuk menghasilkan data sebagai berikut: a. Gunakan Scalar Subquery
Hasil :
Scalar query fungsinya dengan select jenis_kelamin from mahasiswa where nim=103);.
b. Gunakan Multiple Row Subquery dengan operator IN Hasil :
Multiple row subquery dengan operator IN untuk memanggil data kode_dos yang kodenya kurang dari 13 yang ingin di tampilkan misalnya dosen dan mata kuliah yang di ajarnya dengan select kode_dos, nama_dos from dosen where kode_dos IN (select kode_dos from matakuliah where kode_dos <13);
c. Gunakan Multiple Row Subquery dengan operator Any
Hasil :
Multiple row subquery dengan operator Any. Dengan tampilakan dosen dan matakuliah yang di ambil, dengan select*from matakuliah where kode_mk = any (selectkode_mk from matakuliah where kode_dos !=11) order by semester DESC; d. Untuk mendapatkan data sebagai berikut :
Hasil :
Memanggil dengan menggunakan multiple row subquery dengan operator Any Dengan select*from matakuliah where kode_mk = any (select kode_mk from matakuliah where sks=3) order by kode_dos ASC;
e. Bagaimana query untuk mendapatkan data dengan ketentuan:
Hasil :
Menampilkan kolom kode_mk, nama_mk, sks, semester, kode_dos, dimana kode_mk, adalah PTI1447, dengan select*from matakuliah where kode_mk = any (select kode mk from matakuliah where kode_mk = PTI447);
2. Dari table yang sama seperti nomer 1. a. Tampilkan mahasiswa yang mengambil mata kuliah dengan kode depan mata kuliah adalah PTI
Hasil :
Tampilan mahasiswa yang mengambil mata kuliah dengan kode mata kuliah PTI dengan perintah select mahasiswa.nim,mahasiswa.nama,mahasiswa.jenis_kelamin,ambil_mk.kode_mk from mahasiswa ,ambil_mk where ambil_mk.kode.mk lioke PTI% AND ambil_mk.nim =mahasiswa.nim;
b. Tampilkan dosen yang alamatnya bukan dari Jakarta dan mengajar praktikum
Hasil :
Tampilan dosen yang alamatnya bukan dari Jakarta dan mengajar prkatikum dengan perintah select dosen.kode_dos,dosen. nama_dos,dosen. alamat_dos, matakuliah.kode_mk, matakuliah.nama_mk from dosen,matakuliah Where dosen.kode_dos =matakuliah.kode_dos AND dosen.alamat_dos not like %jakarta% AND matakuliah.nama_mk like Praktikum;
ORACLE
o Membuat table Mahasiswa dengan nim sebagai primarykey
Setelah itu masukan data Mahasiswa
Kemudian panggil data Mahasiswa dengan perintah select * from mahasiswa
o Membuat table Dosen dengan kode_dos sebagai primarykey
Setelah itu masukan data Dosen
Kemudian panggil data Dosen dengan perintah select * from dosen
o Membuat table matakuliah
Setelah itu masukan data matakuliah
Kemudian panggil data matakuliah dengan perintah select * from matakuliah
o Membuat table jurusan
Setelah itu masukan data jurusan
Kemudian panggil data jurusan dengan perintah select * from jurusan
o Membuat table ambil_mk
Setelah itu masukan data ambil_mk
Kemudian panggil data ambil_mk dengan perintah select * from ambil_mk
Tugas ORACLE 1. Gunakan Subquery untuk menghasilkan data sebagai berikut: a. Gunakan Scalar Subquery
Hasil :
Scalar query fungsinya dengan select*from mahasiswa where jenis_kelamin=(select jenis_kelamin from mahasiswa where nim=103);
b. Gunakan Multiple Row Subquery dengan operator IN
Hasil :
Multiple row subquery dengan operator IN untuk memanggil data kode_dos yang kodenya kurang dari 13 yang ingin di tampilkan misalnya dosen dan mata kuliah yang di ajarnya dengan select kode_dos, nama_dos from dosen where kode_dos IN (select kode_dos from matakuliah where kode_dos <13);
c. Gunakan Multiple Row Subquery dengan operator Any
Hasil :
Multiple row subquery dengan operator Any. Dengan tampilakan dosen dan matakuliah yang di ambil, dengan select*from matakuliah where kode_mk = any (selectkode_mk from matakuliah where kode_dos !=11);
d. Untuk mendapatkan data sebagai berikut :
Hasil :
Memanggil dengan menggunakan multiple row subquery dengan operator Any Dengan select*from matakuliah where kode_mk = any (select kode_mk from matakuliah where sks=3) order by kode_dos ASC;
e. Bagaimana query untuk mendapatkan data dengan ketentuan:
Hasil :
Menampilkan kolom kode_mk, nama_mk, sks, semester, kode_dos, dimana kode_mk, adalah PTI1447, dengan select*from matakuliah where kode_mk = any (select kode mk from matakuliah where kode_mk = PTI447);
2. Dari table yang sama seperti nomer 1. a. Tampilkan mahasiswa yang mengambil mata kuliah dengan kode depan mata kuliah adalah PTI
Tampilan mahasiswa yang mengambil mata kuliah dengan kode mata kuliah PTI dengan perintah select mahasiswa.nim,mahasiswa.nama,mahasiswa.jenis_kelamin,ambil_mk.kode_mk from mahasiswa ,ambil_mk where ambil_mk.kode.mk lioke PTI% AND ambil_mk.nim =mahasiswa.nim; b. Tampilkan dosen yang alamatnya bukan dari Jakarta dan mengajar praktikum
Hasil :
Tampilan dosen yang alamatnya bukan dari Jakarta dan mengajar prkatikum dengan perintah select dosen.kode_dos,dosen. nama_dos,dosen. alamat_dos, matakuliah.kode_mk, matakuliah.nama_mk from dosen,matakuliah Where dosen.kode_dos =matakuliah.kode_dos AND dosen.alamat_dos not like %jakarta% AND matakuliah.nama_mk like Praktikum;
KESIMPULAN
Subquery merupakan query dalam query yang hasil dari query akan menjadi bagian dari query,Subquery terletak didalam klausa where. klausa Having, subquery digunakan untuk memilih kelompok beris yang kemudian digunakan oleh query.perintah select yang berada di dalam perintah select lainnya. Subquery terletak didalam klausa Where atau Having. Pada klausa Where, subquery digunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query.