100% menganggap dokumen ini bermanfaat (3 suara)
3K tayangan8 halaman

SQL Bertingkat

Tugas ini membahas SQL Bertingkat (Subquery) yang digunakan untuk menyederhanakan pertanyaan rumit terkait data dengan menggunakan subquery di dalam perintah SQL seperti SELECT, INSERT, UPDATE dan DELETE. Terdapat tiga jenis subquery yaitu scalar, multiple-row dan multiple-column subquery yang masing-masing mengembalikan satu baris, lebih dari satu baris dan lebih dari satu kolom data. Contoh penerapan subquery dalam tabel SPP menggunakan operator

Diunggah oleh

Ahda Fajriyah
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (3 suara)
3K tayangan8 halaman

SQL Bertingkat

Tugas ini membahas SQL Bertingkat (Subquery) yang digunakan untuk menyederhanakan pertanyaan rumit terkait data dengan menggunakan subquery di dalam perintah SQL seperti SELECT, INSERT, UPDATE dan DELETE. Terdapat tiga jenis subquery yaitu scalar, multiple-row dan multiple-column subquery yang masing-masing mengembalikan satu baris, lebih dari satu baris dan lebih dari satu kolom data. Contoh penerapan subquery dalam tabel SPP menggunakan operator

Diunggah oleh

Ahda Fajriyah
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

TUGAS BASIS DATA

(SQL BERTINGKAT)

DISUSUN OLEH :

NAMA : 1. Ahda Fajriyah (04)

2. Intan Nurlita (12)

KELAS : XII RPL 1

REKAYASA PERANGKAT LUNAK


SMK NEGERI 4 BOGOR
 Praktek mandiri dari tabel-tabel dalam database SPP

SQL Bertingkat atau Subquery (disebut juga subselect atau nested select/query atau inner-select)
adalah query SELECT yang ada di dalam perintah SQL lain misalnya SELECT, INSERT, UPDATE,
atau DELETE. Keberadaan subquery secara nyata mampu menyederhanakan persoalan-persoalan rumit
berkaitan query data, dengan memanfaatkan subquery, maka penyelesaian kasus di atas hanya
memerlukan sebuah query (akan dijelaskan nanti). Pada hakekatnya, subquery sangat berguna ketika
sebuah query didasarkan pada nilai-nilai yang tak diketahui. Sintaks formal subquery diperlihatkan
sebagai berikut:

SELECT A1, A2, ..., An


FROM r1, r2, r3, ..., rm
WHERE P
(SELECT A1, A2, ..., An
FROM r1, r2, r3, ..., rm
WHERE P)

Subquery dapat diklasifikasikan ke dalam tiga jenis: scalar , multiple-row, dan multiple-
column.
a. Scalar Subquery
Subquery baris tunggal (scalar ) hanya mengembalikan hasil satu baris data. Bentuk subquery ini
diperlihatkan seperti Gambar dibawah ini:

Main query Return


102
Subquery

Subquery baris tunggal dapat menggunakan operator baris tunggal =, >, >=, <, <=, atau <>.

b. Multiple-Row Subquery
Subquery baris ganda (multiple-row) mengembalikan lebih dari satu baris data. Bentuk subquery ini
diperlihatkan seperti Gambar dibawah ini:

Main query Return 102


103
Subquery
104

Subquery baris ganda dapat menggunakan operator komparasi IN, ANY/SOME, atau ALL.

c. Multiple-Column Subquery
Subquery kolom ganda (multiple-column) mengembalikan lebih dari satu baris dan satu kolom data.
Bentuk subquery ini diperlihatkan seperti Gambar dibawah ini:
Main query Return
102 Intan P
Subquery 103 Budi L

Subquery dpat diimpllementasikan didalam klausa WHERE, HAVING atau FROM

Praktek mandiri sql bertingkat (SPP)

- Scalar Subquery
Contoh subquery baris tunggal adalah mendapatkan data siswa yang alamatnya sama dengan siswa
dengan nisn 9827, query nya yaitu:

SELECT alamat FROM siswa WHERE nisn= '9827'

Dengan hasil output seperti berikut:

Operasi diatas adalah alamat siswa dengan nisn 9827, kemudian hasilnya “JL.katulampa” akan
digunakan oleh main query.
- Multiple-Row Subquery
Pada subquery ini, menggunakan operator komparasi IN, ANY/SOME, atau ALL

1.) Operator IN
Operator IN memiliki arti; sama dengan member di dalam list. Sebagai contoh, kita bisa
menggunakan operator ini untuk memanggil kolom yang bersangkutan dalam sebuah tabel,
Querynya yaitu:

SELECT nama FROM siswa WHERE id_spp=(SELECT id_spp FROM siswa WHERE UPPER(nama)='Ahda Fahriyah')

Dengan hasil output seperti berikut:

2.) Operator ANY/SOME


Operator ANY/SOME memiliki arti membandingkan suatu nilai dengan setiap nilai yang
dikembalikan oleh subquery. Misalkan kita akan menampilkan data terendah dari sebuah kolom
yang dipanggil. Dengan query nya yaitu:

SELECT jumlah_bayar, id_pembayaran FROM pembayaran WHERE id_pembay


aran > any(SELECT id_pembayaran FROM pembayaran)

Dengan hasil output seperti berikut:


3.) Operator ALL
Operator ALL memiliki arti membandingkan suatu nilai dengan semua nilai yang
dikembalikan oleh subquery. Misalkan kita ingin membandingkan jumlah bayar dengan jumlah
bayar lainnya dengan menggunakan perbandingan lebih besar “>”. Dengan query sebagai berikut:

SELECT id_pembayaran, id_petugas, jumlah_bayar FROM pembayaran WHE


RE jumlah_bayar > ALL (SELECT AVG (jumlah_bayar) FROM pembayaran W
HERE id_petugas = '232' )

Dengan hasil output sebagai berikut:


- Multiple-Column Subquery
Subquery kolom ganda (atau tabel) juga menggunakan operator komparasi IN, ANY/SOME,
atau ALL. Pada query ini, nilai dari subquery dalam bentuk kolom ganda dikomparasi dengan main
query. Dengan contoh misalkan kita ingin mencari suatu tabel berdasarkan id_spp yang dipanggil.
Dengan query sebagai berikut:

SELECT id_spp, tahun, nominal FROM spp WHERE (tahun, nominal) IN (


SELECT tahun, nominal FROM spp WHERE id_spp= '1010') AND id_spp =
'1010'

Dengan hasil output sebagai berikut:

- Operator EXISTS & NO EXISTS


Operator EXISTS & NO EXISTS digunakan pada correlated subquery untuk memeriksa
apakah subquery mengembalikan hasil atau tidak. Apabila subquery mengembalikan hasil,
EXISTS akan mengembalikan nilali true; begitu pula sebaliknya tidak bisa mengembalikan hasil.
Sebagai contoh menampilkan query yang hanya terdapat dalam tabel kelas dan menjadikan tabel
petugas sebagai perbandingan. Dengan query sebagai berikut:

EXISTS
SELECT id_kelas FROM kelas WHERE EXISTS (SELECT * FROM petugas)

Dengan hasil output sebagai berikut:


NO EXISTS
Denga query sebagai berikut:

SELECT NISN FROM siswa WHERE NOT EXISTS (SELECT id_petugas FROM p
etugas )

Dengan hasil output sebagai berikut:

Anda mungkin juga menyukai