New SQL Commands in Oracle INNER JOINs NATURAL JOIN • Perform JOIN based on like columns in two tables. The Like columns must be of the same name and data type. • ON clause is not required • Natural Join SELECT * FROM Cust NATURAL JOIN Emp; USING • Perform JOIN based on specified columns in two tables. • The specified columns must have the same name and data type. • With “Using” SELECT * FROM Cust JOIN Emp USING (city, age); // This join is also called COLUMN name join in that it uses // only column names specified in USING clause • Without “Using” SELECT * FROM Cust, Emp WHERE Cust.city = Emp.City AND Cust.age= Emp.Age; ON • Perform JOIN based on specified columns in two tables. • Can be used for columns having different names • With “ON” SELECT * FROM Cust JOIN Emp ON Cust.cust_city=Emp.emp_city; // This join is called CONDITION JOIN SELECT * FROM Cust JOIN Emp ON (Cust.city = Emp.city AND Cust.age > Emp.age); Without “ON” SELECT * FROM Cust, Emp WHERE Cust.cust_city=Emp.emp_city; SELECT * FROM Cust, Emp WHERE (Cust.city = Emp.city AND Cust.age > Emp.age); CROSS JOIN • Produces cross product of two tables, resulting in a Cartesian join • // With CROSS JOIN (On and Using clauses are not allowed) SELECT * FROM Cust CROSS JOIN Emp; // Without CROSS JOIN SELECT * FROM Cust, Emp; OUTER JOIN All the above joins are called INNER JOINs. (a) LEFT OUTER JOIN (all tuples in the left table are kept) SELECT * FROMCust LEFT OUTER JOIN Emp Using (city); SELECT * FROMCust LEFT OUTER JOIN Emp ON (Cust.city = Emp.City); (b) RIGHT OUTER JOIN (all tuples in right table are kept) SELECT * FROMCust RIGHT OUTER JOIN Emp Using (city); (c) FULL OUTER JOIN SELECT * FROMCust FULL OUTER JOIN Emp Using (city); CASE Statement Simple CASE Statements SELECT Fname, Lname, (CASE DNO WHEN 1 THEN ‘Headquarters’ WHEN 4 THEN ‘Administration’ WHEN 5 THEN ‘Research’ ELSE ‘No department’ END) AS Department FROM Employee; Fname,Lname John Franklin Alica Department Smith Research Wong Research Zelaya Administration Searched CASE Statements SELECT Fname, Lname, Salary (CASE Salary WHEN Salary <= 25000 THEN 1500 WHEN Salary > 25000 AND Salary < 50000 THEN 1000 WHEN Salary > 50000 AND Salary < 100000 THEN 500 ELSE 0 END) “Bonus” FROM Employee; Fname, Lname John Smith FranklinWong Alica Zelaya Salary 30000 40000 25000 Bonus 1000 1000 1500