Hallo, saya Putri Nurasiah. Disini saya akan menjelaskan sedikit mengenai Multitable dan select bertingkat.
1. Select multitable
Select merupakan perintah DML (Data Manipulation Language) untuk menghasilkan recordset dengan mengekstrak dari database. Perintah select ini sering dipakai dan memiliki bentuk yang kompleks.
2. Perintah JOIN
Join berfungsi untuk menghubungkan tabel yang satu dengan tabel yang lain dimana tabel tersebut saling berhubungan atau berelasi. Berikut beberapa perintah join: A. INNER JOIN Pada perintah inner join ini hanya data yang memiliki pasangan, sedangkan yang tabel yang tidak memiliki kesamaan, data B. LEFT JOINLeft join atau biasa juga dikenal dengan left outer join merupakan perintah join untuk menampilkan semua data sebelah kiri dari table yang di joinkan dan menampilkan data sebelah kanan yang cocok dengan kondisi join. Jika tidak ditemukan kecocokan, maka akan di set NULL secara otomatis. Format penulisan: Select table1.*, table2.* FROM table1 LEFT JOIN table2 ON table1.pk=table2.fk;C. RIGHT JOINKebalikan dari LEFT JOIN adalah RIGHT JOIN, atau biasa juga dikenal dengan RIGHT OUTER JOIN. RIGHT JOIN akan menampilkan semua data yang ada di table sebelah kanan dan mencari kecocokan key pada table sebelah kiri.Jika tidak ditemukan kecocokan, maka akan di set NULL secara otomatis pada table sebelah kiri.Format penulisan: Select table1.*, table2.* FROM table1 LEFT JOIN table2 ON table1.pk=table2.fk;D. FULL JOIN Full join digunakan untuk menghasilkan baris data jika ada data yang sama pada salah satu table.Bentuk umum full join:Select column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
3. Select Bertingkat
Subquery atau Inner query atau Nested query adalah query dalam query SQL lain dan tertanam dalam klausa WHERE. Sebuah subquery digunakan untuk mengembalikan data yang akan digunakan dalam query utama sebagai syarat untuk lebih membatasi data yang akan diambil. Subqueries dapat digunakan dengan SELECT, INSERT, UPDATE, dan DELETE statements bersama dengan operator seperti =, <,>,> =, <=, IN, BETWEEN dll.
ATURAN SUB QUERY
- Klausa ORDER BY tidak boleh digunakan .di subquery. ORDER BY dapat digunakan ,di pernyataan SELECT luar.
- Klausa subquery SELECT harus beisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST.
- secara default, nama-nama kolom di subquery mengacu ke nama table diklausa FROM di query lebih luar dengan mengkualifikasi nama kolom
- Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul di sisi kanan pembandingan.
- Subquery tdak boleh digunakan sebagai operan di ekspresi.
Operator all digunakan untuk melakukan pembandingan dengan sub query. Kondisi dengan all menghasilkan nilai benar jika pembandingan menghasilkan benar untuk setiap nilai dalam sub query.Contoh :Akan menampilkan nama dan gaji pegawai yang gajinya lebih rendah daripada semua pegawai yang pekerjaannya 'SALESMAN' :
select nama where gaji < all (select gaji from pegawai where pekerjaan = 'SALESMAN');
Operator IN
Jika operator ‘=’ anya digunakan untuk hasil yang tepat satu, maka jika ingin menampilkan yang memiliki hasil lebih dari satu maka menggunakan perintah IN. Dan struktur Query yang digunakan dalam hal ini adalah
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan IN (subquery);
Operator ANY
Command ANY diikuti dengan operator perbandingan memiliki arti menampilkan nilai yang sesuai dengan apapun yang dihasilkan oleh sub query. ANY berbeda dengan IN, jika IN itu semua data, sedangkan ANY hanya beberapa data. Contoh query dasar dari sub query ANY
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan ANY (subquery);
Operator EXIST dan NOT EXIST
Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery mengirm table kosong NOT EXIST kebalian dan EXIST.Penyelesaiannya sebagai berikut:
SELECT namakolom FROM namatabel WHERE EXIST / NOT EXIST (subquery);
Mungkin hanya itu yang dapat saya saya uraikan mengenai multitable dan select bertingkat. Terimakasih..
Operator ANY
Command ANY diikuti dengan operator perbandingan memiliki arti menampilkan nilai yang sesuai dengan apapun yang dihasilkan oleh sub query. ANY berbeda dengan IN, jika IN itu semua data, sedangkan ANY hanya beberapa data. Contoh query dasar dari sub query ANY
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan ANY (subquery);
Operator EXIST dan NOT EXIST
Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery mengirm table kosong NOT EXIST kebalian dan EXIST.Penyelesaiannya sebagai berikut:
SELECT namakolom FROM namatabel WHERE EXIST / NOT EXIST (subquery);
Mungkin hanya itu yang dapat saya saya uraikan mengenai multitable dan select bertingkat. Terimakasih..