0% menganggap dokumen ini bermanfaat (0 suara)
27 tayangan

Advance SQL

Sub query dan set operator memungkinkan penyederhanaan query data yang rumit. Sub query dapat mengembalikan satu baris (scalar), lebih dari satu baris (multiple-row), atau lebih dari satu kolom (multiple-column) data, sementara set operator seperti union, intersect, dan except digunakan untuk menggabungkan dua tabel atau lebih.

Diunggah oleh

dina mala
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
27 tayangan

Advance SQL

Sub query dan set operator memungkinkan penyederhanaan query data yang rumit. Sub query dapat mengembalikan satu baris (scalar), lebih dari satu baris (multiple-row), atau lebih dari satu kolom (multiple-column) data, sementara set operator seperti union, intersect, dan except digunakan untuk menggabungkan dua tabel atau lebih.

Diunggah oleh

dina mala
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 21

Advance SQL

Sub Query dan Set Operator


Sub Query
• Nama lainnya : nested select / query atau inner-select
• Definisi : query SELECT yang ada di dalam perintah SQL lain—
misalnya SELECT, INSERT, UPDATE, atau DELETE.
• Kelebihan : mampu menyederhanakan persoalan- persoalan rumit
berkaitan query data
• Contoh persoalan: Dapatkan data mahasiswa yang alamatnya sama
dengan mahasiswa dengan nim 104.
Bentuk Umum
Jenis Sub Query

scalar

multiple-
row

multiple-
column
Subquery baris tunggal (scalar)
• hanya mengembalikan hasil satu baris data
• Operator yang digunakan adalah =, >, >=, <, <=, atau <>
Subquery baris ganda (multiple-row)
• mengembalikan lebih dari satu baris data
• dapat menggunakan operator komparasi IN, ANY/SOME, atau ALL
• Operator IN memiliki arti sama dengan anggota di dalam list
• Operator ANY/SOME digunakan untuk membandingkan suatu nilai dengan
setiap nilai yang dikembalikan oleh sub query
• Operator ALL digunakan untuk membandingkan nilai dengan semua nilai yang
dikembalikan oleh query
Subquery kolom ganda (multiple-column)
• mengembalikan lebih dari satu baris dan satu kolom data
Contoh Implementasi
• Database kampus
Persoalan
• Contoh penerapan Scalar Sub Query
Dapatkan data mahasiswa yang alamatnya sama dengan
mahasiswa dengan nim 104

SELECT * FROM mahasiswa WHERE alamat = (SELECT alamat FROM


mahasiswa WHERe nim=104)
• Contoh penerapan Multiple-Row Sub Query
Penggunaan Operator IN: Dapatkan data mahasiswa yang mengambil
mata kuliah

SELECT nim, nama FROM mahasiswa


WHERE nim IN (SELECT nim FROM ambil_mk)
• Contoh penerapan Multiple-Row Sub Query
• Operator ANY/SOME: Dapatkan data matakuliah yang memiliki sks
lebih kecil dari sembarang sks matakuliah di semester 5

SELECT * FROM matakuliah


WHERE sks < ANY (SELECT sks FROM matakuliah WHERE semester=5)
• Contoh penerapan Multiple-Row Sub Query
• operator ALL: Dapatkan data matakuliah yang memiliki sks yang lebih
kecil dari semua sks mata kuliah di semester 5

SELECT * FROM matakuliah


WHERE sks < ALL
(SELECT sks FROM matakuliah WHERE semester=5)
• Contoh penerapan Multiple-column Sub Query
• Tampilkan data mata kuliah yang semester dan sksnya
sesuai dengan semester dan sks mata kuliah dengan kode “PTI333”

SELECT * FROM matakuliah WHERE (semester, sks) IN


(SELECT semester, sks FROM matakuliah WHERE kode_mk=’PTI333’)
Kombinasi Sub Query dengan fungsi agregat
Dapatkan data matakuliah yang memiliki sks
sama dengan sks terbesar!

SELECT * FROM matakuliah


WHERE sks = (SELECT MAX (sks) FROM matakuliah)
Set Operation
• Selain menggunakan metode Joining Table, menggabungkan 2 atau
lebih SQL tabel juga dapat dicapai dengan menggunakan Set
Operations
• Terdapat 4 macam Set Operations:
• Union
• Union All
• Intersect
• Except
Union
• Union hampir sama seperti Inner join, akan tetapi, alih-alih
menggabungkan tabel berdasarkan ID secara side by side (samping-
sampingan), Union menggabungkan 2 atau lebih tabel secara vertikal.
• harus memenuhi beberapa peraturan seperti jumlah kolom, tipe
kolom, penamaan, dsb
Union ALL
• Union All sama seperti Union, namun secara default, Union All
menghasilkan duplikasi data.
Intersect
• Intersect hanya mengembalikan data yang eksis di 2 atau lebih tabel
yang digabungkan.
Except
• Mengembalikan semua data yang ada di query kecuali data yang eksis
di dua atau lebih tabel di database.
Tugas
1. Dari database tugas sebelumnya buatlah satu table dengan nama
items:
id, name, description, size, created_at, updated_at, created_by
2. Isi dengan minimal 20 row (buatlah beberapa data memiliki record
yang duplicate dengan table products)
3. Lakukan query UNION, UNION ALL dan INTERSECT dari table
products dan items sehingga menampilkan data baru
4. Gunakan subquery untuk menampilkan nama kategori table
products
5. Kumpulkan query dan screenshot dalam sebuah PDF dan kirimkan ke
aplikasi SINAUO

Anda mungkin juga menyukai