sql inner join keyword (with quiz)

38
SQL KEYWORD INNER JOIN & OUTER JOIN

Upload: yuri56

Post on 05-Dec-2014

691 views

Category:

Education


0 download

DESCRIPTION

Programmer : Meryll Darlene Tiangco Quiz Maker : Richmond Jove Medina Documenter : Amanda Rosa Blanca Arevalo Presenter : Chuck Loven Ballcer Mark Anthony Yamaguchi Emmaunel Ponce

TRANSCRIPT

  • 1. What is SQL ? SQL stands for Structured Query Language. SQL is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS). SQL is used to communicate with a database and lets you access and manipulate databases.
  • 2. SQL statements are used to perform tasks such as update data on a database, or retrieve data from a database. Some common relational database management systems that use SQL are: Oracle, Sybase, Micro soft SQL Server, and Access.
  • 3. What can SQL do ? SQL can execute queries against a database SQL can retrieve data from a database SQL can insert records in a database SQL can update records in a database SQL can delete records from a database SQL can create new databases SQL can create new tables in a database
  • 4. What is a Relational Database System ? A relational database system contains one or more objects called tables. The data or information for the database are stored in these tables. Tables are uniquely identified by their names and are comprised of columns and rows.
  • 5. Columns contain the column name, data type, and any other attributes for the column. Rows contain the records or data for the columns. Columns City Low Manila 101 92 Makati 88 69 Quezon City Rows High 77 60 Sample Table Weather Temperature
  • 6. One of the most beneficial features of SQL & relational database systems Makes relational database systems "relational". Used to combine rows from two or more tables, based on a common field between them. Allows you to link data from two or more tables together into a single query result-from one single SELECT statement.
  • 7. What would happen if you worked with one table only, and didn't have the ability to use JOIN". Let's say you have a one-table database that is used to keep track of all of your customers and what they purchase from your store: CID_No Surname First Address Date Item Price
  • 8. Every time a new row is inserted into the table, all columns will be updated, thus resulting in unnecessary redundant data. For example, every time Juan Tamad purchases something, the following rows will be inserted into the table: CID_No. Surname First Address Date Item Price 10908 Tamad Juan 14 Sipag St., Manila 01/07/14 1K Rice 40.00 10908 Tamad Juan 14 Sipag St., Manila 01/08/14 Purefoods Corned Beef 85.00 10908 Tamad Juan 14 Sipag St., Manila 01/09/14 555 Sardines 25.00
  • 9. To eliminate unnecessary redundant data, our database should have two tables : 1. One for keeping track of your customer 2. And the other to keep track of what they purchase : TABLE 1 Cust_Info Table TABLE 2 Purchases Table CID_No Surname First CID_No Date Item Address Price Now, whenever a purchase is made from a repeating customer, the 2nd table, "Purchases" only needs to be updated , eliminating useless redundant data.
  • 10. Notice that both tables have a common CID_No" column. TABLE 1 Cust_Info Table CID_No TABLE 2 Purchases Table CID _No Surname Date First Item Address Price This column, which contains the unique customer id number, will be used to JOIN the two tables. Table 1 Cust_Info Table 2 Purchases CID_No
  • 11. The INNER JOIN keyword selects all rows from both tables as long as there is a match between the columns in both tables. SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; Notice that each of the columns are always preceded with the table name and a period. This is a good practice so that you wont confuse which columns go with what tables. It is also required if the name column names are the same between the two tables.
  • 12. To JOIN the Cust_Info Table and the Purchases Table using the CID_No column that is found in both tables, we have : column_name(s) SELECT cust_info.first, cust_info.surname, purchases.item FROM cust_info INNER JOIN purchases table1 table 2 ON cust_info.cid_no = purchases.cid_no; table1.column_name table2.column_name
  • 13. If we execute these statements, using the data in the tables below : TABLE 1 Cust_Info Table CID_No Surname First Address Clavio Arnold 7 Tahimik St, Quezon City 10908 Tamad Juan 14 Sipag St. Malate, Manila 10909 TABLE 2 Purchases Table 10907 Santos Charo Laya Ave., Muntinlupa City CID_No 10908 10909 10907 10908 10907 10908 Date 01/07/14 01/07/14 01/07/14 01/08/14 01/08/14 01/09/14 Item 1K rice Papaya Soap 1K Ampalaya Purefoods Corned Beef 5K rice 555 Sardines Price 40.00 140.00 60.00 85.00 350.00 25.00
  • 14. We will have something like this : First Surname Item Arnold Clavio 1K Ampalaya Arnold Clavio 5K rice Juan Tamad 1K rice Juan Tamad Purefoods Corned Beef Juan Tamad 555 Sardines Charo Santos Papaya Soap
  • 15. TABLE ORDER : STATEMENT 1 STATEMENT 2 SELECT * SELECT* FROM Table1 FROM Table2 INNER JOIN Table2 INNER JOIN Table1 ON Table1.column_name ON Table2.column_name *Table2.column_name *Table1.column_name
  • 16. SPECIFIED COLUMNS : SELECT specified_column/s FROM Table1 INNER JOIN Table2 ON Table1.column_name = Table2.column_name ALTERNATIVE : SELECT * FROM Table1,Table2 WHERE Table1.column_name = Table2.column_name
  • 17. INNER JOIN requires the existence of a match between the tables based on specified column/s and only matching records are selected. The OUTER JOIN keyword does not require each record in the two joined tables to have a matching record. The joined table retains each record even if no other matching record exists.
  • 18. Depending on which tables rows are retained, OUTER JOIN is subdivided into : LEFT JOIN - Returns all rows from the left table for the first tables. Even if there are no matches in the right.
  • 19. RIGHT JOIN - Return all the rows from the right table ( or the second table) even if there are no matches in the left table
  • 20. FULL JOIN - Both tables are secondary (or optional) such that if rows are being matched in tabled A and table B then all rows from table A are displayed even if there is no matching row in table B and vice versa
  • 21. Look at the tables below and note the common column names between them : EmployeeID EmpName 01-054 01-055 Jerry Mendoza Dane Sevilla 01-056 TABLE 1 Employee Table Mylene Antonio LogID 1 2 LogDate 11-09-11 11-10-11 3 TABLE 2 LogRecordsTable EmployeeID 01-054 01-056 01-054 11-11-11 TimeRecID TABLE 3 TimeRecordsTable 1 2 LogID TIn TOut 1 09:00 18:03 2 07:30 16:55 3 3 09:02 18:34
  • 22. SELECT * FROM Employee AS e LEFTJOIN LogRecords AS L ON e.EmployeeID = L.EmployeeID LEFT JOIN TimeRecords AS t ON t.LogID = L.LogID Employee LogRecords TimeRecords Table 1 Table 2 Table 3 e L t
  • 23. Employee EmpName ID Jerry 01-054 Mendoza Jerry 01-054 Mendoza Dane 01-055 Sevilla Mylene 01-056 Antonio LogID EmployeeID LogDate TimeRecID LogID TIn TOut 1 01-054 11-09-11 1 1 09:00 18:03 3 01-054 11-11-11 3 3 9:02 18:34 Null Null Null Null Null 2 01-056 11-10-11 2 2 7:30 16:55 NULL is returned where no there are no matches in the RIGHT table Null Null
  • 24. SELECT e.EmpName, L.LogDate, t.Tin, t.Tout FROM Employee AS e LEFTJOIN LogRecords AS L ON e.EmployeeID = L.EmployeeID LEFT JOIN TimeRecords AS t ON t.LogID = L.LogID EmpName LogDate TIn TOut Jerry Mendoza 11-09-11 09:00 18:03 Jerry Mendoza 11-11-11 9:02 18:34 Dane Sevilla Null Null Null Mylene Antonio 11-10-11 7:30 16:55
  • 25. SELECT e.EmpName, L.LogDate, t.Tin, t.Tout FROM Employee AS e LEFTJOIN LogRecords AS L ON e.EmployeeID = L.EmployeeID LEFT JOIN TimeRecords AS t ON t.LogID = L.LogID WHERE L.LogDate IS NOT NULL EmpName LogDate TIn TOut Jerry Mendoza 11-09-11 09:00 18:03 Jerry Mendoza 11-11-11 9:02 18:34 Mylene Antonio 11-10-11 7:30 16:55
  • 26. SELECT e.EmpName, L.LogDate, t.Tin, t.Tout FROM TimeRecords AS t RIGHT JOIN LogRecords AS L ON t.LogID = L.LogID RIGHT JOIN Employee AS e ON e.EmployeeID = L.EmployeeID EmpName LogDate TIn TOut Jerry Mendoza 11-09-11 09:00 18:03 Jerry Mendoza 11-11-11 9:02 18:34 Dane Sevilla Null Null Null Mylene Antonio 11-10-11 7:30 16:55
  • 27. In FULL JOIN, both tables are secondary (or optional). In this case, if we are matching rows in table A and B, then we display : all rows from table A even if there is no matching row in table B TABLE A TABLE B all rows from table B even if there is no matching row in table A
  • 28. Look at the tables below and note the common column names between them : TABLE 1 MovieList MovieID MovieTitle 1 Saw 4 2 Bad Teacher 3 The Notebook 4 Shrek 5 Schindlers List 6 The Exorcist TABLE 2 GenresTable GenreCode HR CY RC No code available HS HR GenreCode GenreDesc HR Horror RC Romance HS History CY Comedy SF Sci-Fi
  • 29. SELECT MovieTitle, GenreDesc FROM MovieList AS m FULLJOIN Genres AS g ON m.GenreCode = g.GenreCode MovieTitle Saw 4 Bad Teacher The Notebook Shrek Schindlers List The Exorcist NULL GenreDesc Horror Comedy Romance NULL History Horror Sci-Fi
  • 30. JOINs are used to combine & get the data from different tables. INNER JOIN returns rows when there is a match in both tables. LEFT JOIN returns all rows from the left table, even if there are no matches in the right table. RIGHT JOIN returns all rows from the right table, even if there are no matches in the left table. FULL JOIN returns rows when there is a match in one of the tables.
  • 31. NULL values are returned in the output when no records are returned by an OUTER JOIN statement JOIN queries can be used with the conjunction of SELECT We can also use WHERE clauses along with JOINs
  • 32. Identify the type of JOIN shown in the following diagrams :
  • 33. Identify the following : 1. This is used to communicate with a database and lets you access and manipulate databases. 2. This is used to combine and get data from different tables. 3. This returns rows when there is a match in one of the tables.
  • 34. 4. This returns rows when there is a match in both tables. 5. This returns all rows from the left table, even if there are no matches in the right table. 6. This is where one or more objects called tables are contained. 7. This allows you to link data from two or more tables together into a single query result from one single SELECT statement
  • 35. 8. This returns all rows from the right table, even if there are no matches in the left table. 9. This is value returned in the output when no records are returned by an OUTER JOIN statement. 10. This conjunction can be used with JOIN queries.