QUERY Antar Tabel Basis Data
TIU TIK Mahasiswa mengerti perintah SQL untuk query dalam banyak tabel Mahasiswa mengerti perintah SQL untuk dua tabel dan tiga tabel
TABEL MAHASISWA TABEL MENGAMBIL TABEL MATAKULIAH
Dari tabel mahasiswa, mengambil, matakuliah Dari tabel mahasiswa, mengambil, matakuliah. Dengan menggunakan query satu tabel, kita bisa mendapatkan nim mahasiswa yang mengambil kodemk MK01 SELECT NIM FROM mengambil WHERE KDMK='MK01' HASILNYA
Dari tabel mahasiswa, mengambil, matakuliah Dari tabel mahasiswa, mengambil, matakuliah. Dengan menggunakan query satu tabel, kita bisa mendapatkan nim dan nama mahasiswa yang mengambil kodemk MK01 select nim,nama from mahasiswa where nim in (select nim from mengambil where kdmk=‘MK01') HASILNYA
Jika mencakup lebih dari satu tabel, kita kadang dibingungkan field tersebut berasal dari tabel mana, maka dalam query dapat dilakukan select mahasiswa.nim, mahasiswa.nama from mahasiswa where mahasiswa.nim in (select nim from mengambil where kdmk='mk01') HASILNYA
SUBQUERY TIGA TABEL Query dapat dilakukan lebih dari tiga tabel, misal kita menginginkan nama mahasiswa mengikuti matakuliah algoritma. Hasil dapat diperoleh dengan melakukan query terhadap tiga tabel, yaitu mendapatkan kode dari tabel matakuliah, mendapatkan nim dari tabel mengambil dan mendapatkan nama dari tabel mahasiswa. select nama from mahasiswa where nim in (select nim from mengambil where kdmk in (select kdmk from matakuliah where namamk='algoritma')) HASILNYA
JOIN dapat menampilkan kolom yang berasal lebih dari satu tabel. Misal kita ingin menampilkan nim, nama mahasiswa dan nama matakuliah yang di ambil oleh setiap mahasiswa select mahasiswa.nim, mahasiswa.nama, matakuliah.namamk from mahasiswa, mengambil, matakuliah where mahasiswa.nim = mengambil.nim
Kriteria dapat diberikan tambahan misal menampilkan nim, nama mahasiswa dan kodeMK yang telah mengambil matakuliah ‘MK01’ select mahasiswa.nim, mahasiswa.nama, mengambil.kdmk from mahasiswa, mengambil where mahasiswa.nim =.mengambil.nim and mengambil.kdmk=‘MK01'
JOIN TIGA TABEL Join dapat juga dilakukan terhadap lebih dari dua tabel. Contoh di bawah ini query yang menampilkan nim, nama mahasiswa serta nama matakuliah dari mahasiswa yang mengambil matakuliah ‘Algoritma’ select mahasiswa.nim, mahasiswa.nama, matakuliah.namamk from mahasiswa, mengambil, matakuliah where mahasiswa.nim = mengambil.nim and mengambil.kdmk = matakuliah.kdmk and matakuliah.namamk='algoritma'
Evaluasi
Gunakan Perintah SQl untuk persoalan berikut : Tampilkan semua nama-nama sales Tampilkan semua nama dari sales yang memiliki order Tampilkan semua nama dari sales yang tidak memiliki order Tampilkan nama sales yang memiliki order dari Abernathy Construction Tampilkan nama dan umur sales kurang dari 40 tahun yang memiliki order dengan Abernathy Construction Hitung jumlah order yang ada Hitung rata-rata jumlah order Tampilkan nama dan umur dari sales yang tertua. Tampilkan total jumlah order yang dikumpulkan oleh setiap sales
10. Tampilkan nama sales yang jumlah order kurang dari 1000 dan terurut berdasar jumlah order dari yang terbesar hingga yang terkecil. Tampilkan umur sales yang memiliki pelanggan di kota memphis Tampilkan tipe industri dan umur sales yang memiliki pelanggan di kota memphis Tampilkan nama sales yang memiliki order dua atau lebih
JAWABAN 1. Select name from salesperson 2. Select name from salesperson where name in (select salespersonname from order where cusname=‘abernathy construction, manchester lumber, amalgamated housing, tri city builders’) 3. Select name from salesperson where name in (select salespersonname from order where cusname!=‘abernathy construction, manchester lumber, amalgamated housing, tri city builders’) 4. Select name from salesperson where name in (select salespersonname from order where cusname=”abernathy construction”) 5. Select name, age from salesperson where age<40 , name in (select salespersonname from order where cusname=”abernathy construction”) 6. Select sum salary from salesperson 7. Select avg salary from salesperson 8. Select name, max age from salesperson 9. Select salary from salesperson 10. Select name from salesperson where salary<1000 order by salary desc 11. Select age from salesperson where name in (select salespersonname from order where cusname in (select name from customer where citi=”memphis”)) 12. Select order.cusname, salesperson.age from order, salesperson where cusname in (select name from customer where city=’memphis’) 13. Select salespersonname from order where salespersonname=‘jones, abel’