Perintah Select Bertingkat/Subquery
Perintah Select Bertingkat/Subquery
1. Subquery adalah perintah SELECT yang ada di dalam perintah SELECT yang lain.
2. MySQL mendukung konsep subquery mulai versi 4.1. Contoh subquery adalah
SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2)
Pada contoh ini, SELECT * FROM t1 ... adalah query utama / outer query dan (SELECT column1 FROM t2) adalah subquery. Subquery bersifat bersarang di dalam query utama. Subquery dapat dibuat sampai 32 tingkat. Subquery harus dituliskan di dalam tanda kurung.
3. Beberapa keuntungan menggunakan subquery adalah:
Sebuah. Dapat membuat kueri yang terstruktur, sehingga membuat setiap proses permintaan dapat dilakukan.
b. Sebagai alternatif diminta permintaan yang BERGABUNG dan UNION yang kompleks.
c. Query menjadi lebih mudah dibaca dan dikoreksi, memenuhi kaidah SQL `` Bahasa Query Terstruktur. ''
4. Subquery menyediakan beberapa hasil, diharapkan
Sebuah. Sebuah nilai tunggal (skalar) dan subquery skalar
b. Sebuah baris subquery baris
c. Subquery Sebuah Kolom Atau รจ Kolom
d. sebuah tabel. subquery tabel
Masing-masing jenis subquery (berdasarkan nilai yang dihasilkan) tersebut, dapat digunakan pada konteks tertentu yang sesuai.
5. Beberapa batasan dalam membuat subquery:
Sebuah. Kueri luar dapat berupa salah satu dari: SELECT, INSERT, UPDATE, DELETE, SET, atau DO.
b. Subquery dapat berisi opsi-opsi yang mendukung SELECT misalnya DISTINCT, GROUP BY, ORDER BY, LIMIT, joins, petunjuk indeks, UNION, komentar, fungsi, dll.
6. Sintaks subquery secara umum adalah:
SELECT kolom1 DARI Tabel WHERE kolom2 [Operator Pembandingan] (SELECT kolom1 DARI Tabel WHERE [Kondisi])
[Operator Pembandingan] dapat terdiri =,>, <,> =, <= Ataupun SEPERTI, APA PUN, BEBERAPA, SEMUA, DALAM, BUKAN DI dll
Contoh Sub Query
SELECT M.Nama, B.Judul, B.Penulis, B.Jumlah DARI Mahasiswa M, Pinjam P, Buku B WHERE (M.Nim = P.Nim dan P.kode_buku = B.kode_buku) DAN jumlah = (SELECT Max ( jumlah) DARI `buku`)
SELECT M.Nama, B.Judul, B.Penulis, B.Jumlah DARI Mahasiswa M BERGABUNG Pinjam P MENGGUNAKAN (Nim) GABUNG Buku B menggunakan (kode_buku) WHERE jumlah = (SELECT Max (jumlah) DARI `buku`)
SELECT Judul, Penulis, Jumlah DARI `buku` WHERE jumlah = (SELECT Maks (jumlah) DARI` buku`) UNION SELECT Judul, Penulis, Jumlah DARI `buku` WHERE jumlah = (SELECT Min (jumlah) DARI` buku`)
(Bandingkan d dengan e)
SELECT P.kode_prodi, P.nama_prodi dari Prodi P BERGABUNG Fakultas F menggunakan (kode_fak) di mana F.Lokasi = 'Kampus III'
SELECT P.kode_prodi, P.nama_prodi dari Prodi P BERGABUNG Fakultas F menggunakan (kode_fak) di mana F.Lokasi = 'Kampus III'
SELECT kode_prodi, nama_prodi DARI prodi sebagai P WHERE kode_fak IN (PILIH kode_fak dari Fakultas sebagai F di mana Lokasi = 'Kampus III')
(Bandingkan f dengan g)
SELECT F. * DARI Fakultas F LEFT BERGABUNG Prodi P MENGGUNAKAN (kode_fak) DI MANA P.kode_prodi NULL
SELECT F. * DARI Fakultas F LEFT BERGABUNG Prodi P MENGGUNAKAN (kode_fak) DI MANA P.kode_prodi NULL
SELECT fakultas. * DARI Fakultas DI MANA kode_fak <> SEMUA (SELECT kode_fak dari prodi)
(Bandingkan h dengan i)
SELECT DISTINCT F. * DARI Fakultas F LEFT BERGABUNG Prodi P MENGGUNAKAN (kode_fak) DI MANA P.kode_prodi BUKAN NULL
SELECT DISTINCT F. * DARI Fakultas F LEFT BERGABUNG Prodi P MENGGUNAKAN (kode_fak) DI MANA P.kode_prodi BUKAN NULL
SELECT * FROM Fakultas WHERE kode_fak = ANY (SELECT kode_fak dari prodi)
Komentar
Posting Komentar