SQL OPERASI JOIN Teori Himpunan Inner Join; Outer Join Basdat 2012_Mrs Imana's Materi versi 2 1
SQL JOIN SQL tidak hanya menyediakan mekanisme query dan operasi modifikasi database saja, tetapi SQL juga menyediakan mekanisme untuk menggabungkan(join) dan relasi relasi: Saat data yang dibutuhkan berasal lebih dari satu table, maka kondisi join di butuhkan. Umumnya dalam men jointable berdasarkan pada kolom yang bersesuaian Primary Keydari table 1 dengan Foreign Key dari table 2, atau yang disebut dengan join atau equi join. Kondisi Join meliputi: Equijoin(Inner Join atausimple Join) Non Equijoin Outer Join (Left Outer Join & Right Outer Join) Self Join Basdat 2012_Mrs Imana's Materi versi 2 2
Syntax Join SQL JOIN / EQUI JOIN: SELECTtable1.column, table2.columnfromtable1, table2wheretable1.column1 =table2.column2;selecttable1.column, table2.columnfromtable1, table2wheretable1.column1 =table2.colum Basdat 2012_Mrs Imana's Materi versi 2 3
Contoh Pemakaian JOIN SELECT Orders.OrderID, Orders.CustomerID, Customers.ContactName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID SELECT Orders.OrderID, Orders.CustomerID, Customers.ContactName, Orders.OrderDate FROM Orders LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID C t SELECT Orders.OrderID, Orders.CustomerID, Customers.ContactName, Orders.OrderDate FROM Orders RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID Basdat 2012_Mrs Imana's Materi versi 2 4
Contoh Pemakaian JOIN (Lanjutan) SELECT Orders.OrderID, Orders.OrderDate, Customers.ContactName, Products.ProductName, [Order Detail].UnitPrice, [Order Detail].Quantity FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID INNER JOIN [Order Detail] ON Orders.OrderID O d = [Order Detail].OrderID INNER JOIN Products ON [Order Detail].ProductID = Products.ProductID Basdat 2012_Mrs Imana's Materi versi 2 5
Contoh Pemakaian JOIN (Lanjutan) SELECT Orders.OrderID, Customers.ContactName, Sum([Order Detail].UnitPrice), Sum([Order Detail].Quantity) FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID INNER JOIN [Order Detail] ON Orders.OrderID = [Order Detail].OrderID GROUP BY Orders.OrderID, Customers.ContactName Basdat 2012_Mrs Imana's Materi versi 2 6
Syntax UNION < select statement > UNION [ ALL ] < select statement > [ UNION [ ALL ]< select statement >[ ]] Basdat 2012_Mrs Imana's Materi versi 2 7
Contoh UNION SELECT * FROM Customers Country = Malaysia WHERE Country = Indonesia SELECT * FROM Customers WHERE Country = Indonesia UNION SELECT * FROM Customers WHERE Country = Malaysia OR Basdat 2012_Mrs Imana's Materi versi 2 8
Syntax VIEW CREATE VIEW view_name AS < select statement > ALTER VIEW view_name AS < select statement > DROP VIEW view_name Basdat 2012_Mrs Imana's Materi versi 2 9
Contoh CREATE VIEW CREATE VIEW Tabel1 AS SELECT Orders.OrderID, Orders.CustomerID, Customers.ContactName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID CustomerID CREATE VIEW Tabel2 AS SELECT Orders.OrderID, Customers.ContactName, Products.ProductName, [Order Detail].Quantity FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID INNER JOIN [Order Detail] ON Orders.OrderID = [Order Detail].OrderID INNER JOIN Products ON [Order Detail].ProductID = Products.ProductID Basdat 2012_Mrs Imana's Materi versi 2 10
Contoh CREATE VIEW (Lanjutan) CREATE VIEW Tabel3 AS SELECT Orders.OrderID, Customers.ContactName, Sum([Order Detail].Quantity) AS [Jlh Barang], Sum([Order Detail].UnitPrice * [Order Detail].Quantity * (1 - [Order Detail].Discount)) Discount)) AS [Hrg Total] FROM Customers INNER JOIN Orders ON Customers.CustomerID CustomerID = Orders.CustomerID INNER JOIN [Order Detail] ON Orders.OrderID = [Order Detail].OrderID GROUP BY Orders.OrderID, OrderID Customers.ContactName ContactName Basdat 2012_Mrs Imana's Materi versi 2 11
Tugas Proyek Buat sejumlah query dari proyek anda, kemudian jelaskan tujuan & manfaat tdari query yang anda buat. Basdat 2012_Mrs Imana's Materi versi 2 12