SQL Data Manipulation Language (DML) Part 2 PDF

Document Details

ReadableRapture2105

Uploaded by ReadableRapture2105

Ahmadi Irmansyah Lubis

Tags

SQL database data manipulation language database management

Summary

This document is an educational presentation/notes on SQL covering various types of JOINs, including INNER, CROSS, LEFT OUTER, RIGHT OUTER, and FULL OUTER. It also details query functions such as ORDER BY and GROUP BY, and explains the concept of HAVING, all within a SQL context.

Full Transcript

SQL : Data Manipulation Language (DML) Part 2 Ahmadi Irmansyah Lubis JOIN  Join adalah penggabungan table yang dilakukan melalui kolom / key tertentu yang memiliki nilai terkait (foreign key) untuk mendapatkan satu set data dengan informasi lengkap.  Len...

SQL : Data Manipulation Language (DML) Part 2 Ahmadi Irmansyah Lubis JOIN  Join adalah penggabungan table yang dilakukan melalui kolom / key tertentu yang memiliki nilai terkait (foreign key) untuk mendapatkan satu set data dengan informasi lengkap.  Lengkap disini artinya kolom data didapatkan dari kolom-kolom hasil join antar table tersebut.  Join diperlukan karena perancangan table pada sistem transaksional kebanyakan di-normalisasi, salah satu alasannya untuk menghindari redundansi data.  Pada bahasa SQL, operasi join atau penggabungan antar table adalah operasi dasar database relasional yang sangat penting. Untuk mendukung perancangan database relasional yang baik. JOIN Ada beberapa tipe join yang dapat diekspresikan dalam FROM: – inner join (join) dapat diekspresikan dalam bentuk dasar query SELECT.. – cross join (cartesian product) FROM..WHERE.. – left outer join dapat diekspresikan dalam query – right outer join yang lebih kompleks menggunakan operator union – full outer join Kondisi Join disebutkan pada bagian ON SAMPLE Customer ( , Name, Address, CRating, CAmount, CBalance, RegisterDate, SalespersonNum) Salesperson( , Name, Address, Office) Menampilkan nama customer name dan salesperson dengan rating customer kurang dari 6 SELECT C.Name, S.Name FROM Customer C, Salesperson S WHERE C.SalespersonNum = S.Number AND C.CRating < 6; atau SELECT C.Name, S.Name FROM Customer C JOIN Salesperson S ON C.SalespersonNum = S.Number WHERE C.CRating < 6; INNER JOIN INNER JOIN : memilih semua baris dari kedua tabel yang mempunyai kecocokan kolom di kedua tabel tersebut SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; INNER JOIN C.Name S.Name smith johnson jones johnson SELECT C.Name, S.Name FROM Customer C JOIN Salesperson S ON C.SalespersonNum = S.Number; atau SELECT C.Name, S.Name FROM Customer C INNER JOIN Salesperson S ON C.SalespersonNum = S.Number; INNER JOIN Untuk INNER JOIN, hasil query tidak termasuk: – Customer yang tidak memiliki Salesperson …. ataupun – Salesperson yang tidak memiliki customers. CROSS JOIN C.Na m e S.Name smith Johnson smith Miller Jones Johnson Jones Miller Wey Johnson Wey Miller “CROSS JOIN” sama dengan cross product/perkalian biasa Contoh: – SELECT C.Name,S.Name FROM Customer C CROSS JOIN Salesperson S; Sama dengan : – SELECT C.Name,S.Name FROM Customer C, Salesperson S; OUTER JOIN Operasi join yang menghindari hilangnya informasi – Melakukan join kemudian menambahkan tuples dari salah satu relation yang tidak memiliki persamaan dengan relation yang lain – Menggunakan null untuk nilai-nilai yang tidak memiliki persamaan tersebut LEFT OUTER JOIN Tampilkan semua customer dan salesperson-nya jika ada – SQL : select C.name, S.Name from Customer C left outer join Salesperson S on C.SalespersonNum=S.Number INNER JOIN on C.SalespersonNum = S.Number: – “smith” dgn “johnson” dan “jones” with “johnson” LEFT OUTER JOIN on C.SalespersonNum = S.Number : – hasil INNER JOIN plus “wei” dgn “” salesperson LEFT OUTER JOIN C.Name S.Name Smith Johnson Jones Johnson Wey NULL LEFT OUTER JOIN Mengembalikan semua baris dari table di sebelah kiri yang mempunyai persamaan dengan baris di table sebelah kanan. Hasilnya adalah NULL di sebelah kanan, jika tidak ada persamaan SELECT column_name(s) FROM table1 LEFT OUTER JOIN table2 ON table1.column_name=table2.column_name; RIGHT OUTER JOIN Tampilkan semua customer yang memiliki salesperson dan salesperson yang tidak punya customer SQL : select C.name, S.Name from Customer C right outer join Salesperson S on C.SalespersonNum=S.Number INNER JOIN on C.SalespersonNum = S.Number: “smith” with “johnson” and “jones” dgn “johnson” RIGHT OUTER JOIN on C.SalespersonNum = S.Number : hasil INNER JOIN plus “” customer dgn “miller” RIGHT OUTER JOIN C.name S.name smith Johnson jones Johnson NULL Miller RIGHT OUTER JOIN Mengembalikan semua baris dari table di sebelah kanan yang memiliki persamaan dengan baris di tabel sebelah kiri. Hasilnya adalah NULL di sebelah kiri, jika tidak ada persamaan SELECT column_name(s) FROM table1 RIGHT OUTER JOIN table2 ON table1.column_name=table2.column_name; FULL OUTER JOIN FULL OUTER JOIN = LEFT OUTER JOIN 𝖴 RIGHT OUTER JOIN Tampilkan semua pasangan customer-salesperson dan customers yang tidak memiliki salesperson dan salespersons yang tidak punya customer FULL OUTER JOIN on C.SalespersonNum = S.Number: – INNER JOIN – plus “wei” with “” salesperson – plus “” customer with “miller” FULL OUTER JOIN DI MYSQL select C.name, S.Name from Customer C left outer join Salesperson S on C.SalespersonNum=S.Number UNION select C.name, S.Name from Customer C right outer join Salesperson S on C.SalespersonNum=S.Number C.Name S.Name Smith Johnson Jones Johnson Wey NULL NULL Miller SQL ….. EXTENSIONS SELECT … FROM … WHERE … ORDER BY … GROUP BY … Tambahan dari struktur dasar HAVING … ORDER BY Digunakan untuk mengurutkan tampilan hasil query Contoh: SELECT * FROM Customer ORDER BY Name; Kita dapat mendefinisikan desc untuk pengurutan menurun (descending) atau asc untuk pengurutan menaik (ascending), untuk setiap atribut; default adalah urutan menaik Contoh: SELECT * FROM Customer ORDER BY Name DESC; SELECT * FROM Customer ORDER BY Number ASC, CAmount DESC; GROUP BY Untuk mengelompokkan hasil query SQL Biasanya digunakan bersama dengan fungsi aggregate Contoh : SELECT SalesPersonNum,AVG(CAmount) FROM Customer GROUP BY SalesPersonNum; SELECT SalesPersonNum, COUNT(*) FROM Customer GROUP BY SalesPersonNum; Atribut dalam SELECT yang muncul di luar fungsi aggregate harus muncul dalam GROUP BY HAVING Memilih hasil pengelompokan (mirip WHERE) menggunakan fungsi aggregate Fungsi agregate bisa lebih dari satu dengan menggunakan operator lojik Contoh: SELECT SalesPersonNum,AVG(CAmount) FROM Customer WHERE CAmount > 500 GROUP BY SalesPersonNum HAVING AVG(CAmount) > 2500; Kondisi dalam HAVING dilakukan setelah terjadi pengelompokan (GROUP BY) sedangkan kondisi dalam WHERE dilakukan sebelum dikelompokkan Thanks! Do you have any questions?

Use Quizgecko on...
Browser
Browser