logging in or signing up sql sachinsachin Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 65 Category: Science & Tech.. License: All Rights Reserved Like it (0) Dislike it (0) Added: August 20, 2011 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Slide 1: Structured Query Language SQLIntroduction to SQL: Introduction to SQL What is SQL? When a user wants to get some information from a database file, he can issue a query . 1 A query is a user–request to retrieve data or information with a certain condition. SQL is a query language that allows user to specify the conditions. (instead of algorithms)Introduction to SQL: Introduction to SQL Concept of SQL The user specifies a certain condition. 1 The result of the query will then be stored in form of a table. Statistical information of the data. The program will go through all the records in the database file and select those records that satisfy the condition.(searching).Introduction to SQL: Introduction to SQL How to involve SQL in FoxPro Before using SQL, the tables should be opened. 1 The SQL command can be entered directly in the Command Window To perform exact matching , we should SET ANSI ON Basic structure of an SQL query: Basic structure of an SQL query 2Slide 6: field type width contents id numeric 4 student id number name character 10 name dob date 8 date of birth sex character 1 sex: M / F class character 2 class hcode character 1 house code: R, Y, B, G dcode character 3 district code remission logical 1 fee remission mtest numeric 2 Math test score 2 The Situation: Student ParticularsGeneral Structure: General Structure I SELECT [ ALL / DISTINCT ] expr1 [ AS col1 ], expr2 [ AS col2 ] ; FROM tablename WHERE condition SELECT ...... FROM ...... WHERE ......General Structure: General Structure I The query will select rows from the source tablename and output the result in table form. Expressions expr1 , expr2 can be : (1) a column, or (2) an expression of functions and fields. SELECT [ ALL / DISTINCT ] expr1 [ AS col1 ], expr2 [ AS col2 ] ; FROM tablename WHERE condition And col1 , col2 are their corresponding column names in the output table.General Structure: General Structure I DISTINCT will eliminate duplication in the output while ALL will keep all duplicated rows. condition can be : (1) an inequality, or (2) a string comparison using logical operators AND, OR, NOT. SELECT [ ALL / DISTINCT ] expr1 [ AS col1 ], expr2 [ AS col2 ] ; FROM tablename WHERE conditionGeneral Structure: General Structure I Before using SQL, open the student file: USE student eg. 1 List all the student records. SELECT * FROM student ResultGeneral Structure: General Structure I eg. 2 List the names and house code of 1A students. SELECT name, hcode, class FROM student ; WHERE class="1A" Class 1 A 1 A 1 A 1 B 1 B : Class 1 A 1 A 1 A 1 B 1 B : class="1A"General Structure: General Structure I Result eg. 2 List the names and house code of 1A students.General Structure: General Structure I eg. 3 List the residential district of the Red House members. SELECT DISTINCT dcode FROM student ; WHERE hcode="R" ResultGeneral Structure: General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls. 1 B Girls ?General Structure: Condition for "1B Girls": 1) class = "1B" 2) sex = "F" 3) Both ( AND operator) General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls.General Structure: General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls. What is "age"?General Structure: Functions: # days : DATE( ) – dob # years :(DATE( ) – dob) / 365 1 d.p.: ROUND(__ , 1) General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls.General Structure: General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls. SELECT name, ROUND((DATE( )-dob)/365,1) AS age ; FROM student WHERE class="1B" AND sex="F" ResultGeneral Structure: General Structure I eg. 5 List the names, id of 1A students with no fee remission. SELECT name, id, class FROM student ; WHERE class="1A" AND NOT remission ResultComparison: Comparison II expr IN ( value1 , value2 , value3 ) expr BETWEEN value1 AND value2 expr LIKE "%_"Comparison: Comparison II eg. 6 List the students who were born on Wednesday or Saturdays. SELECT name, class, CDOW(dob) AS bdate ; FROM student ; WHERE DOW(dob) IN (4,7) ResultComparison: Comparison II eg. 7 List the students who were not born in January, March, June, September. SELECT name, class, dob FROM student ; WHERE MONTH(dob) NOT IN (1,3,6,9) ResultComparison: Comparison II eg. 8 List the 1A students whose Math test score is between 80 and 90 (incl.) SELECT name, mtest FROM student ; WHERE class="1A" AND ; mtest BETWEEN 80 AND 90 ResultComparison: Comparison II eg. 9 List the students whose names start with "T". SELECT name, class FROM student ; WHERE name LIKE "T%" ResultComparison: Comparison II eg. 10 List the Red house members whose names contain "a" as the 2nd letter. SELECT name, class, hcode FROM student ; WHERE name LIKE "_a%" AND hcode="R" ResultGrouping: Grouping III SELECT ...... FROM ...... WHERE condition ; GROUP BY groupexpr [HAVING requirement ] Group functions: COUNT( ), SUM( ), AVG( ), MAX( ), MIN( ) – groupexpr specifies the related rows to be grouped as one entry. Usually it is a column. – WHERE condition specifies the condition of individual rows before the rows are group. HAVING requirement specifies the condition involving the whole group.Grouping: Grouping III eg. 11 List the number of students of each class.Slide 28: COUNT( ) Group By Class 1 A COUNT( ) 1 B COUNT( ) 1 C 1 A 1 B 1 C Student class 1 A 1 A 1 A 1 B 1 B 1 B 1 B 1 B 1 B 1 C 1 C 1 CGrouping: Grouping III SELECT class, COUNT(*) FROM student ; GROUP BY class eg. 11 List the number of students of each class. ResultGrouping: Grouping III eg. 12 List the average Math test score of each class.Slide 31: Group By Class AVG( ) AVG( ) AVG( ) 1 A 1 B 1 C Student class 1 A 1 A 1 A 1 B 1 B 1 B 1 B 1 B 1 B 1 C 1 C 1 CGrouping: Grouping III eg. 12 List the average Math test score of each class. SELECT class, AVG(mtest) FROM student ; GROUP BY class ResultGrouping: Grouping III eg. 13 List the number of girls of each district. SELECT dcode, COUNT(*) FROM student ; WHERE sex="F" GROUP BY dcode ResultGrouping: Grouping III eg. 14 List the max. and min. test score of Form 1 students of each district. SELECT MAX(mtest), MIN(mtest), dcode ; FROM student ; WHERE class LIKE "1_" GROUP BY dcode ResultGrouping: Grouping III eg. 15 List the average Math test score of the boys in each class. The list should not contain class with less than 3 boys. SELECT AVG(mtest), class FROM student ; WHERE sex="M" GROUP BY class ; HAVING COUNT(*) >= 3 ResultDisplay Order: Display Order IV SELECT ...... FROM ...... WHERE ...... GROUP BY ..... ; ORDER BY colname ASC / DESCDisplay Order: Display Order IV SELECT name, id FROM student ; WHERE sex="M" AND class="1A" ORDER BY name eg. 16 List the boys of class 1A, order by their names. ORDER BY dcode ResultDisplay Order: Display Order IV SELECT name, id, class, dcode FROM student ; WHERE class="2A" ORDER BY dcode eg. 17 List the 2A students by their residential district. ResultDisplay Order: Display Order IV SELECT COUNT(*) AS cnt, dcode FROM student ; GROUP BY dcode ORDER BY cnt DESC eg. 18 List the number of students of each district (in desc. order). ResultDisplay Order: Display Order IV SELECT name, class, hcode FROM student ; WHERE sex= " M" ORDER BY hcode, class eg. 19 List the boys of each house order by the classes. (2-level ordering)Display Order: Display Order IV Result Order by class Blue House Green House : : Order by hcode Output: Output V Output: Output V eg. 20 List the students in desc. order of their names and save the result as a database file name.dbf. SELECT * FROM student ; ORDER BY name DESC INTO TABLE name.dbf Result Output: Output V eg. 21 Print the Red House members by their classes, sex and name. SELECT class, name, sex FROM student ; WHERE hcode="R" ; ORDER BY class, sex DESC, name TO PRINTER Result Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 A B The union of A and B (A B) A table containing all the rows from A and B . Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 The intersection of A and B (A B) A table containing only rows that appear in both A and B . A B Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 The difference of A and B (A–B) A table containing rows that appear in A but not in B . A BSlide 48: 3 Consider the members of the Bridge Club and the Chess Club. The two database files have the same structure: The Situation: Bridge Club & Chess Club field type width contents id numeric 4 student id number name character 10 name sex character 1 sex: M / F class character 2 class Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 Before using SQL, open the two tables: SELECT A USE bridge SELECT B USE chess Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 SELECT * FROM bridge ; UNION ; SELECT * FROM chess ; ORDER BY class, name INTO TABLE party eg. 22 The two clubs want to hold a joint party. Make a list of all students. (Union) SELECT ...... FROM ...... WHERE ...... ; UNION ; SELECT ...... FROM ...... WHERE ...... Result Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 SELECT * FROM bridge ; WHERE id IN ( SELECT id FROM chess ) ; TO PRINTER eg. 23 Print a list of students who are members of both clubs. (Intersection) SELECT ...... FROM table1 ; WHERE col IN ( SELECT col FROM table2 ) Result Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 SELECT * FROM bridge ; WHERE id NOT IN ( SELECT id FROM chess ) ; INTO TABLE diff eg. 24 Make a list of students who are members of the Bridge Club but not Chess Club. (Difference) SELECT ...... FROM table1 ; WHERE col NOT IN ( SELECT col FROM table2 ) ResultMultiple Tables:: Multiple Tables: 4 SQL provides a convenient operation to retrieve information from multiple tables. This operation is called join . The join operation will combine the tables into one large table with all possible combinations (Math: Cartesian Product), and then it will filter the rows of this combined table to yield useful information.Multiple Tables:: Multiple Tables: 4 field1 A B field2 1 2 3 field1 field2 A A A 1 2 3 B B B 1 2 3Slide 55: 4 Each student should learn a musical instrument. Two database files: student.dbf & music.dbf The common field: student id field type width contents id numeric 4 student id number type character 10 type of the music instrument The Situation: Music Lesson SELECT A USE student SELECT B USE musicNatural Join: Natural Join 4 A Natural Join is a join operation that joins two tables by their common column. This operation is similar to the setting relation of two tables. SELECT a.comcol, a. col1 , b. col2 , expr1 , expr2 ; FROM table1 a, table2 b ; WHERE a. comcol = b. comcolNatural Join: Natural Join 4 Music id 9801 type Student 9801 id name class 9801 Product id name class type Same id Join eg. 25 Make a list of students and the instruments they learn. (Natural Join)Natural Join: SELECT s.class, s.name, s.id, m.type ; FROM student s, music m ; WHERE s.id=m.id ORDER BY class, name Natural Join 4 Result eg. 25 Make a list of students and the instruments they learn. (Natural Join)Natural Join: eg. 26 Find the number of students learning piano in each class. Natural Join 4 Three Parts : (1) Natural Join. (2) Condition: m.type="Piano" (3) GROUP BY classNatural Join: Natural Join 4 Music Student Product Join Condition m.type= "Piano" Group By class eg. 26Natural Join: eg. 26 Find the number of students learning piano in each class. SELECT s.class, COUNT(*) ; FROM student s, music m ; WHERE s.id=m.id AND m.type="Piano" ; GROUP BY class ORDER BY class Natural Join 4 ResultOuter Join: An Outer Join is a join operation that includes rows that have a match, plus rows that do not have a match in the other table. Outer Join 4Outer Join: eg. 27 List the students who have not yet chosen an instrument. (No match) Outer Join 4 No match Music id type Student 9801 id name classOuter Join: eg. 27 List the students who have not yet chosen an instrument. (No match) SELECT class, name, id FROM student ; WHERE id NOT IN ( SELECT id FROM music ) ; ORDER BY class, name Outer Join 4 ResultOuter Join: eg. 28 Make a checking list of students and the instruments they learn. The list should also contain the students without an instrument. (Outer Join) Outer Join 4Outer Join: Outer Join 4 Natural Join No Match Outer Join eg. 28Outer Join: SELECT s.class, s.name, s.id, m.type ; FROM student s, music m ; WHERE s.id=m.id ; Outer Join 4 UNION ; SELECT class, name, id, "" ; FROM student ; WHERE id NOT IN ( SELECT id FROM music ) ; ORDER BY 1, 2 eg. 28Outer Join: Outer Join 4 empty No Match Natural Join Outer Join You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
sql sachinsachin Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 65 Category: Science & Tech.. License: All Rights Reserved Like it (0) Dislike it (0) Added: August 20, 2011 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Slide 1: Structured Query Language SQLIntroduction to SQL: Introduction to SQL What is SQL? When a user wants to get some information from a database file, he can issue a query . 1 A query is a user–request to retrieve data or information with a certain condition. SQL is a query language that allows user to specify the conditions. (instead of algorithms)Introduction to SQL: Introduction to SQL Concept of SQL The user specifies a certain condition. 1 The result of the query will then be stored in form of a table. Statistical information of the data. The program will go through all the records in the database file and select those records that satisfy the condition.(searching).Introduction to SQL: Introduction to SQL How to involve SQL in FoxPro Before using SQL, the tables should be opened. 1 The SQL command can be entered directly in the Command Window To perform exact matching , we should SET ANSI ON Basic structure of an SQL query: Basic structure of an SQL query 2Slide 6: field type width contents id numeric 4 student id number name character 10 name dob date 8 date of birth sex character 1 sex: M / F class character 2 class hcode character 1 house code: R, Y, B, G dcode character 3 district code remission logical 1 fee remission mtest numeric 2 Math test score 2 The Situation: Student ParticularsGeneral Structure: General Structure I SELECT [ ALL / DISTINCT ] expr1 [ AS col1 ], expr2 [ AS col2 ] ; FROM tablename WHERE condition SELECT ...... FROM ...... WHERE ......General Structure: General Structure I The query will select rows from the source tablename and output the result in table form. Expressions expr1 , expr2 can be : (1) a column, or (2) an expression of functions and fields. SELECT [ ALL / DISTINCT ] expr1 [ AS col1 ], expr2 [ AS col2 ] ; FROM tablename WHERE condition And col1 , col2 are their corresponding column names in the output table.General Structure: General Structure I DISTINCT will eliminate duplication in the output while ALL will keep all duplicated rows. condition can be : (1) an inequality, or (2) a string comparison using logical operators AND, OR, NOT. SELECT [ ALL / DISTINCT ] expr1 [ AS col1 ], expr2 [ AS col2 ] ; FROM tablename WHERE conditionGeneral Structure: General Structure I Before using SQL, open the student file: USE student eg. 1 List all the student records. SELECT * FROM student ResultGeneral Structure: General Structure I eg. 2 List the names and house code of 1A students. SELECT name, hcode, class FROM student ; WHERE class="1A" Class 1 A 1 A 1 A 1 B 1 B : Class 1 A 1 A 1 A 1 B 1 B : class="1A"General Structure: General Structure I Result eg. 2 List the names and house code of 1A students.General Structure: General Structure I eg. 3 List the residential district of the Red House members. SELECT DISTINCT dcode FROM student ; WHERE hcode="R" ResultGeneral Structure: General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls. 1 B Girls ?General Structure: Condition for "1B Girls": 1) class = "1B" 2) sex = "F" 3) Both ( AND operator) General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls.General Structure: General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls. What is "age"?General Structure: Functions: # days : DATE( ) – dob # years :(DATE( ) – dob) / 365 1 d.p.: ROUND(__ , 1) General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls.General Structure: General Structure I eg. 4 List the names and ages (1 d.p.) of 1B girls. SELECT name, ROUND((DATE( )-dob)/365,1) AS age ; FROM student WHERE class="1B" AND sex="F" ResultGeneral Structure: General Structure I eg. 5 List the names, id of 1A students with no fee remission. SELECT name, id, class FROM student ; WHERE class="1A" AND NOT remission ResultComparison: Comparison II expr IN ( value1 , value2 , value3 ) expr BETWEEN value1 AND value2 expr LIKE "%_"Comparison: Comparison II eg. 6 List the students who were born on Wednesday or Saturdays. SELECT name, class, CDOW(dob) AS bdate ; FROM student ; WHERE DOW(dob) IN (4,7) ResultComparison: Comparison II eg. 7 List the students who were not born in January, March, June, September. SELECT name, class, dob FROM student ; WHERE MONTH(dob) NOT IN (1,3,6,9) ResultComparison: Comparison II eg. 8 List the 1A students whose Math test score is between 80 and 90 (incl.) SELECT name, mtest FROM student ; WHERE class="1A" AND ; mtest BETWEEN 80 AND 90 ResultComparison: Comparison II eg. 9 List the students whose names start with "T". SELECT name, class FROM student ; WHERE name LIKE "T%" ResultComparison: Comparison II eg. 10 List the Red house members whose names contain "a" as the 2nd letter. SELECT name, class, hcode FROM student ; WHERE name LIKE "_a%" AND hcode="R" ResultGrouping: Grouping III SELECT ...... FROM ...... WHERE condition ; GROUP BY groupexpr [HAVING requirement ] Group functions: COUNT( ), SUM( ), AVG( ), MAX( ), MIN( ) – groupexpr specifies the related rows to be grouped as one entry. Usually it is a column. – WHERE condition specifies the condition of individual rows before the rows are group. HAVING requirement specifies the condition involving the whole group.Grouping: Grouping III eg. 11 List the number of students of each class.Slide 28: COUNT( ) Group By Class 1 A COUNT( ) 1 B COUNT( ) 1 C 1 A 1 B 1 C Student class 1 A 1 A 1 A 1 B 1 B 1 B 1 B 1 B 1 B 1 C 1 C 1 CGrouping: Grouping III SELECT class, COUNT(*) FROM student ; GROUP BY class eg. 11 List the number of students of each class. ResultGrouping: Grouping III eg. 12 List the average Math test score of each class.Slide 31: Group By Class AVG( ) AVG( ) AVG( ) 1 A 1 B 1 C Student class 1 A 1 A 1 A 1 B 1 B 1 B 1 B 1 B 1 B 1 C 1 C 1 CGrouping: Grouping III eg. 12 List the average Math test score of each class. SELECT class, AVG(mtest) FROM student ; GROUP BY class ResultGrouping: Grouping III eg. 13 List the number of girls of each district. SELECT dcode, COUNT(*) FROM student ; WHERE sex="F" GROUP BY dcode ResultGrouping: Grouping III eg. 14 List the max. and min. test score of Form 1 students of each district. SELECT MAX(mtest), MIN(mtest), dcode ; FROM student ; WHERE class LIKE "1_" GROUP BY dcode ResultGrouping: Grouping III eg. 15 List the average Math test score of the boys in each class. The list should not contain class with less than 3 boys. SELECT AVG(mtest), class FROM student ; WHERE sex="M" GROUP BY class ; HAVING COUNT(*) >= 3 ResultDisplay Order: Display Order IV SELECT ...... FROM ...... WHERE ...... GROUP BY ..... ; ORDER BY colname ASC / DESCDisplay Order: Display Order IV SELECT name, id FROM student ; WHERE sex="M" AND class="1A" ORDER BY name eg. 16 List the boys of class 1A, order by their names. ORDER BY dcode ResultDisplay Order: Display Order IV SELECT name, id, class, dcode FROM student ; WHERE class="2A" ORDER BY dcode eg. 17 List the 2A students by their residential district. ResultDisplay Order: Display Order IV SELECT COUNT(*) AS cnt, dcode FROM student ; GROUP BY dcode ORDER BY cnt DESC eg. 18 List the number of students of each district (in desc. order). ResultDisplay Order: Display Order IV SELECT name, class, hcode FROM student ; WHERE sex= " M" ORDER BY hcode, class eg. 19 List the boys of each house order by the classes. (2-level ordering)Display Order: Display Order IV Result Order by class Blue House Green House : : Order by hcode Output: Output V Output: Output V eg. 20 List the students in desc. order of their names and save the result as a database file name.dbf. SELECT * FROM student ; ORDER BY name DESC INTO TABLE name.dbf Result Output: Output V eg. 21 Print the Red House members by their classes, sex and name. SELECT class, name, sex FROM student ; WHERE hcode="R" ; ORDER BY class, sex DESC, name TO PRINTER Result Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 A B The union of A and B (A B) A table containing all the rows from A and B . Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 The intersection of A and B (A B) A table containing only rows that appear in both A and B . A B Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 The difference of A and B (A–B) A table containing rows that appear in A but not in B . A BSlide 48: 3 Consider the members of the Bridge Club and the Chess Club. The two database files have the same structure: The Situation: Bridge Club & Chess Club field type width contents id numeric 4 student id number name character 10 name sex character 1 sex: M / F class character 2 class Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 Before using SQL, open the two tables: SELECT A USE bridge SELECT B USE chess Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 SELECT * FROM bridge ; UNION ; SELECT * FROM chess ; ORDER BY class, name INTO TABLE party eg. 22 The two clubs want to hold a joint party. Make a list of all students. (Union) SELECT ...... FROM ...... WHERE ...... ; UNION ; SELECT ...... FROM ...... WHERE ...... Result Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 SELECT * FROM bridge ; WHERE id IN ( SELECT id FROM chess ) ; TO PRINTER eg. 23 Print a list of students who are members of both clubs. (Intersection) SELECT ...... FROM table1 ; WHERE col IN ( SELECT col FROM table2 ) Result Union, Intersection and Difference of Tables: Union, Intersection and Difference of Tables 3 SELECT * FROM bridge ; WHERE id NOT IN ( SELECT id FROM chess ) ; INTO TABLE diff eg. 24 Make a list of students who are members of the Bridge Club but not Chess Club. (Difference) SELECT ...... FROM table1 ; WHERE col NOT IN ( SELECT col FROM table2 ) ResultMultiple Tables:: Multiple Tables: 4 SQL provides a convenient operation to retrieve information from multiple tables. This operation is called join . The join operation will combine the tables into one large table with all possible combinations (Math: Cartesian Product), and then it will filter the rows of this combined table to yield useful information.Multiple Tables:: Multiple Tables: 4 field1 A B field2 1 2 3 field1 field2 A A A 1 2 3 B B B 1 2 3Slide 55: 4 Each student should learn a musical instrument. Two database files: student.dbf & music.dbf The common field: student id field type width contents id numeric 4 student id number type character 10 type of the music instrument The Situation: Music Lesson SELECT A USE student SELECT B USE musicNatural Join: Natural Join 4 A Natural Join is a join operation that joins two tables by their common column. This operation is similar to the setting relation of two tables. SELECT a.comcol, a. col1 , b. col2 , expr1 , expr2 ; FROM table1 a, table2 b ; WHERE a. comcol = b. comcolNatural Join: Natural Join 4 Music id 9801 type Student 9801 id name class 9801 Product id name class type Same id Join eg. 25 Make a list of students and the instruments they learn. (Natural Join)Natural Join: SELECT s.class, s.name, s.id, m.type ; FROM student s, music m ; WHERE s.id=m.id ORDER BY class, name Natural Join 4 Result eg. 25 Make a list of students and the instruments they learn. (Natural Join)Natural Join: eg. 26 Find the number of students learning piano in each class. Natural Join 4 Three Parts : (1) Natural Join. (2) Condition: m.type="Piano" (3) GROUP BY classNatural Join: Natural Join 4 Music Student Product Join Condition m.type= "Piano" Group By class eg. 26Natural Join: eg. 26 Find the number of students learning piano in each class. SELECT s.class, COUNT(*) ; FROM student s, music m ; WHERE s.id=m.id AND m.type="Piano" ; GROUP BY class ORDER BY class Natural Join 4 ResultOuter Join: An Outer Join is a join operation that includes rows that have a match, plus rows that do not have a match in the other table. Outer Join 4Outer Join: eg. 27 List the students who have not yet chosen an instrument. (No match) Outer Join 4 No match Music id type Student 9801 id name classOuter Join: eg. 27 List the students who have not yet chosen an instrument. (No match) SELECT class, name, id FROM student ; WHERE id NOT IN ( SELECT id FROM music ) ; ORDER BY class, name Outer Join 4 ResultOuter Join: eg. 28 Make a checking list of students and the instruments they learn. The list should also contain the students without an instrument. (Outer Join) Outer Join 4Outer Join: Outer Join 4 Natural Join No Match Outer Join eg. 28Outer Join: SELECT s.class, s.name, s.id, m.type ; FROM student s, music m ; WHERE s.id=m.id ; Outer Join 4 UNION ; SELECT class, name, id, "" ; FROM student ; WHERE id NOT IN ( SELECT id FROM music ) ; ORDER BY 1, 2 eg. 28Outer Join: Outer Join 4 empty No Match Natural Join Outer Join