Structured Query Language
1   Introduction to SQL    What is SQL?    – When a user wants to get some information      from a database file, he can i...
1   Introduction to SQL    Concept of SQL– The user specifies a certain condition.– The program will go through all the re...
2   Basic structure of an SQL    query     G e n e ra l           S E L E C T , A L L / D IS T IN C T , *,     S tru c tu ...
2   The Situation:    Student Particulars     field       type      width   contents     id          numeric     4     stu...
I   General Structure    SELECT ...... FROM ...... WHERE ......    SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2...
I    General Structure     SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;     FROM tablename WHERE condition  ...
I    General Structure     SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;     FROM tablename WHERE condition  ...
I       General Structure       Before using SQL, open the student file:         USE student eg. 1  List all the student r...
I       General Structureeg. 2    List the names and house code of 1A students.          SELECT name, hcode, class FROM st...
I        General Structureeg. 2      List the names and house code of 1A students.        Result      name     hcode   cla...
I        General Structureeg. 3       List the residential district of the Red House            members.             SELEC...
Ieg. 4        General Structure         List the names and ages (1 d.p.) of 1B girls.                    1B Girls ?
Ieg. 4        General Structure         List the names and ages (1 d.p.) of 1B girls.          Condition for "1B Girls":  ...
Ieg. 4        General Structure         List the names and ages (1 d.p.) of 1B girls.               What is "age"?
Ieg. 4        General Structure         List the names and ages (1 d.p.) of 1B girls.                    Functions:    # d...
Ieg. 4         General Structure            List the names and ages (1 d.p.) of 1B girls.        SELECT name, ROUND((DATE(...
I        General Structureeg. 5       List the names, id of 1A students with no fee            remission.                 ...
II   Comparison     expr IN ( value1, value2, value3)     expr BETWEEN value1 AND value2     expr LIKE "%_"
II       Comparisoneg. 6       List the students who were born on Wednesday            or Saturdays.             SELECT na...
II       Comparisoneg. 7       List the students who were not born in January,            March, June, September.         ...
II       Comparisoneg. 8       List the 1A students whose Math test score is            between 80 and 90 (incl.)         ...
II       Comparisoneg. 9       List the students whose names start with "T".             SELECT name, class FROM student ;...
II        Comparisoneg. 10     List the Red house members whose names contain           "a" as the 2nd letter.            ...
III Grouping    SELECT ...... FROM ...... WHERE condition ;    GROUP BY groupexpr [HAVING requirement]    Group functions:...
III Groupingeg. 11   List the number of students of each class.
Group By Class     class      1A1A    1A      1A                            COUNT( )      1B      1B      1B              ...
III Groupingeg. 11     List the number of students of each class.             SELECT class, COUNT(*) FROM student ;       ...
III Groupingeg. 12   List the average Math test score of each class.
Group By Class     class      1A1A    1A                    AVG( )      1A      1B      1B1B    1B                    AVG(...
III Groupingeg. 12     List the average Math test score of each class.             SELECT class, AVG(mtest) FROM student ;...
III Groupingeg. 13     List the number of girls of each district.             SELECT dcode, COUNT(*) FROM student ;       ...
III Groupingeg. 14     List the max. and min. test score of Form 1           students of each district.             SELECT...
III Groupingeg. 15     List the average Math test score of the boys in           each class. The list should not contain c...
IV Display Order    SELECT ...... FROM ...... WHERE ......    GROUP BY ..... ;    ORDER BY colname ASC / DESC
IV Display Ordereg. 16   List the boys of class 1A, order by their names.     SELECT name, id FROM student ;     WHERE sex...
IV Display Ordereg. 17     List the 2A students by their residential district.             SELECT name, id, class, dcode F...
IV Display Ordereg. 18     List the number of students of each district           (in desc. order).             SELECT COU...
IV Display Ordereg. 19   List the boys of each house order by the         classes. (2-level ordering)          SELECT name...
IV Display Order Result                  name     hcode   class          Blue                  Bobby    B       1A        ...
V   Output    IN T O T A B L E tablen am e             the output table is saved as a                                     ...
Veg. 20         Output         List the students in desc. order of their names and         save the result as a database f...
Veg. 21          Output           Print the Red House members by their classes, sex           and name.             SELECT...
3   Union, Intersection and    Difference of Tables            The union of A and B (A B)                A                ...
3   Union, Intersection and    Difference of Tables          The intersection of A and B (A B)                   A        ...
3   Union, Intersection and    Difference of Tables            The difference of A and B (A–B)                  A         ...
3   The Situation:    Bridge Club & Chess Club     Consider the members of the Bridge Club and     the Chess Club. The two...
3   Union, Intersection and    Difference of Tables          B rid ge [A ]                        C hess [B ]          id ...
3        Union, Intersection and         Difference of Tables         SELECT ...... FROM ...... WHERE ...... ;         UNI...
3        Union, Intersection and         Difference of Tables         SELECT ...... FROM table1 ;         WHERE col IN ( S...
3        Union, Intersection and         Difference of Tables         SELECT ...... FROM table1 ;         WHERE col NOT IN...
4   Multiple Tables:    •   SQL provides a convenient operation to        retrieve information from multiple tables.    • ...
4   Multiple Tables:                       field1   field2                         A         1    field1   field2         ...
4   The Situation:    Music Lesson    Each student should learn a musical instrument.    Two database files: student.dbf &...
4   Natural JoinA Natural Join is a join operation that joins twotables by their common column. This operationis similar t...
4eg. 25         Natural Join         Make a list of students and the instruments they         learn. (Natural Join)       ...
4eg. 25         Natural Join         Make a list of students and the instruments they         learn. (Natural Join)       ...
4        Natural Joineg. 26   Find the number of students learning piano in         each class.                    Three P...
4        Natural Joineg. 26  Student   Join              Condition        Group By                             m.type= "Pi...
4        Natural Joineg. 26   Find the number of students learning piano in         each class.          SELECT s.class, C...
4   Outer JoinAn Outer Join is a join operation that includesrows that have a match, plus rows that do nothave a match in ...
4        Outer Joineg. 27   List the students who have not yet chosen an         instrument. (No match)             id    ...
4        Outer Joineg. 27   List the students who have not yet chosen an         instrument. (No match)          SELECT cl...
4        Outer Joineg. 28   Make a checking list of students and the         instruments they learn. The list should also ...
4        Outer Joineg. 28                  Natural Join                                 Outer Join                  No Match
4        Outer Joineg. 28    SELECT s.class, s.name, s.id, m.type ;          FROM student s, music m ;          WHERE s.id...
4class        Outer Join        name      id     type                                    class   name     id     type1A   ...
Upcoming SlideShare
Loading in …5
×

Sql

422 views
397 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
422
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Sql

  1. 1. Structured Query Language
  2. 2. 1 Introduction to SQL What is SQL? – When a user wants to get some information from a database file, he can issue a query. – 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)
  3. 3. 1 Introduction to SQL Concept of SQL– The user specifies a certain condition.– The program will go through all the records in the database file and select those records that satisfy the condition.(searching).– Statistical information of the data.– The result of the query will then be stored in form of a table.
  4. 4. 2 Basic structure of an SQL query G e n e ra l S E L E C T , A L L / D IS T IN C T , *, S tru c tu re A S, FRO M , W H ERE C o m p a ris o n IN , B E T W E E N , L IK E "% _" G ro u p in g G R O U P B Y , H A V IN G , C O U N T ( ), S U M ( ), A V G ( ), M A X ( ), M IN ( ) D is p la y O rd e r O RD ER BY , A SC / D ESC L o g ic a l AND, OR, NOT O p e ra to rs O u tp u t IN T O T A B L E / C U R S O R T O F IL E [A D D IT IV E ], T O P R IN T E R , T O S C R E E N U n io n U N IO N
  5. 5. 2 The Situation: Student Particulars 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
  6. 6. I General Structure SELECT ...... FROM ...... WHERE ...... SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ; FROM tablename WHERE condition
  7. 7. I General Structure SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ; FROM tablename WHERE condition – 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. – And col1, col2 are their corresponding column names in the output table.
  8. 8. I General Structure SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ; FROM tablename WHERE condition – 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.
  9. 9. I General Structure Before using SQL, open the student file: USE student eg. 1 List all the student records. SELECT * FROM student id name dob sex class mtest hcode dcode remissionResult 9801 Peter 06/04/86 M 1A 70 R SSP .F. 9802 Mary 01/10/86 F 1A 92 Y HHM .F. 9803 Johnny 03/16/86 M 1A 91 G SSP .T. 9804 Wendy 07/09/86 F 1B 84 B YMT .F. 9805 Tobe 10/17/86 M 1B 88 R YMT .F. : : : : : : : : :
  10. 10. I General Structureeg. 2 List the names and house code of 1A students. SELECT name, hcode, class FROM student ; WHERE class="1A" Class Class 1A  1A 1A class="1A"  1A 1A  1A 1B  1B 1B  1B : :
  11. 11. I General Structureeg. 2 List the names and house code of 1A students. Result name hcode class Peter R 1A Mary Y 1A Johnny G 1A Luke G 1A Bobby B 1A Aaron R 1A : : :
  12. 12. I General Structureeg. 3 List the residential district of the Red House members. SELECT DISTINCT dcode FROM student ; WHERE hcode="R" dcode Result HHM KWC MKK SSP TST YMT
  13. 13. Ieg. 4 General Structure List the names and ages (1 d.p.) of 1B girls. 1B Girls ?
  14. 14. Ieg. 4 General Structure List the names and ages (1 d.p.) of 1B girls. Condition for "1B Girls": 1) class = "1B" 2) sex = "F" 3) Both ( AND operator)
  15. 15. Ieg. 4 General Structure List the names and ages (1 d.p.) of 1B girls. What is "age"?
  16. 16. Ieg. 4 General Structure List the names and ages (1 d.p.) of 1B girls. Functions: # days : DATE( ) – dob # years :(DATE( ) – dob) / 365 1 d.p.: ROUND(__ , 1)
  17. 17. Ieg. 4 General Structure 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" Result name age Wendy 12.1 Kitty 11.5 Janet 12.4 Sandy 12.3 Mimi 12.2
  18. 18. I General Structureeg. 5 List the names, id of 1A students with no fee remission. SELECT name, id, class FROM student ; WHERE class="1A" AND NOT remission name id class Result Peter 9801 1A Mary 9802 1A Luke 9810 1A Bobby 9811 1A Aaron 9812 1A Ron 9813 1A Gigi 9824 1A : : :
  19. 19. II Comparison expr IN ( value1, value2, value3) expr BETWEEN value1 AND value2 expr LIKE "%_"
  20. 20. II Comparisoneg. 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) name class bdate Result Peter 1A Wednesday Wendy 1B Wednesday Kevin 1C Saturday Luke 1A Wednesday Aaron 1A Saturday : : :
  21. 21. II Comparisoneg. 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) name class dob Result Wendy 1B 07/09/86 Tobe 1B 10/17/86 Eric 1C 05/05/87 Patty 1C 08/13/87 Kevin 1C 11/21/87 Bobby 1A 02/16/86 Aaron 1A 08/02/86 : : :
  22. 22. II Comparisoneg. 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 Result name mtest Luke 86 Aaron 83 Gigi 84
  23. 23. II Comparisoneg. 9 List the students whose names start with "T". SELECT name, class FROM student ; WHERE name LIKE "T%" Result name class Tobe 1B Teddy 1B Tim 2A
  24. 24. II Comparisoneg. 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" Result name class hcode Aaron 1A R Janet 1B R Paula 2A R
  25. 25. III Grouping 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.
  26. 26. III Groupingeg. 11 List the number of students of each class.
  27. 27. Group By Class class 1A1A 1A 1A COUNT( ) 1B 1B 1B COUNT( )1B 1B 1B 1B 1C1C 1C 1C COUNT( ) Student
  28. 28. III Groupingeg. 11 List the number of students of each class. SELECT class, COUNT(*) FROM student ; GROUP BY class class cnt Result 1A 10 1B 9 1C 9 2A 8 2B 8 2C 6
  29. 29. III Groupingeg. 12 List the average Math test score of each class.
  30. 30. Group By Class class 1A1A 1A AVG( ) 1A 1B 1B1B 1B AVG( ) 1B 1B 1B 1C1C 1C AVG( ) 1C Student
  31. 31. III Groupingeg. 12 List the average Math test score of each class. SELECT class, AVG(mtest) FROM student ; GROUP BY class class avg_mtest Result 1A 85.90 1B 70.33 1C 37.89 2A 89.38 2B 53.13 2C 32.67
  32. 32. III Groupingeg. 13 List the number of girls of each district. SELECT dcode, COUNT(*) FROM student ; WHERE sex="F" GROUP BY dcode Result dcode cnt HHM 6 KWC 1 MKK 1 SSP 5 TST 4 YMT 8
  33. 33. III Groupingeg. 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 max_mtest min_mtest dcode Result 92 36 HHM 91 19 MKK 91 31 SSP 92 36 TST 75 75 TSW 88 38 YMT
  34. 34. III Groupingeg. 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 Result avg_mtest class 86.00 1A 77.75 1B 35.60 1C 86.50 2A 56.50 2B
  35. 35. IV Display Order SELECT ...... FROM ...... WHERE ...... GROUP BY ..... ; ORDER BY colname ASC / DESC
  36. 36. IV Display Ordereg. 16 List the boys of class 1A, order by their names. SELECT name, id FROM student ; WHERE sex="M" AND class="1A" ORDER BY name name id Result name id Peter 9801 Aaron 9812 Johnny 9803 ORDER BY Bobby 9811 Luke 9810 Johnny 9803 dcode Bobby 9811 Luke 9810 Aaron 9812 Peter 9801 Ron 9813 Ron 9813
  37. 37. IV Display Ordereg. 17 List the 2A students by their residential district. SELECT name, id, class, dcode FROM student ; WHERE class="2A" ORDER BY dcode name id class dcode Result Jimmy 9712 2A HHM Tim 9713 2A HHM Samual 9714 2A SHT Rosa 9703 2A SSP Helen 9702 2A TST Joseph 9715 2A TSW Paula 9701 2A YMT Susan 9704 2A YMT
  38. 38. IV Display Ordereg. 18 List the number of students of each district (in desc. order). SELECT COUNT(*) AS cnt, dcode FROM student ; GROUP BY dcode ORDER BY cnt DESC cnt docode Result 11 YMT 10 HHM 10 SSP 9 MKK 5 TST 2 TSW 1 KWC 1 MMK 1 SHT
  39. 39. IV Display Ordereg. 19 List the boys of each house order by the classes. (2-level ordering) SELECT name, class, hcode FROM student ; WHERE sex="M" ORDER BY hcode, class
  40. 40. IV Display Order Result name hcode class Blue Bobby B 1A House Teddy B 1B Order Joseph B 2A by Zion B 2B class Order Leslie B 2C by Johnny G 1A hcode Luke G 1A Kevin G 1C Green House George G 1C : : : : :
  41. 41. V Output IN T O T A B L E tablen am e the output table is saved as a database file in the disk. IN T O C U R S O R tem p the output is stored in the w orking m em ory tem porarily. T O F IL E filen am e [A D D IT IV E ] output to a text file. (additive = append) T O P R IN T E R send to printer. TO SC R EEN display on screen .
  42. 42. Veg. 20 Output 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.dbfResult id name dob sex class mtest hcode dcode remission 9707 Zion 07/29/85 M 2B 51 B MKK .F. 9709 Yvonne 08/24/85 F 2C 10 R TST .F. 9804 Wendy 07/09/86 F 1B 84 B YMT .F. 9819 Vincent 03/15/85 M 1C 29 Y MKK .F. 9805 Tobe 10/17/86 M 1B 88 R YMT .F. 9713 Tim 06/19/85 M 2A 91 R HHM .T. 9816 Teddy 01/30/86 M 1B 64 B SSP .F. : : : : : : : : :
  43. 43. Veg. 21 Output 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 class name sex Result 1A Aaron M 1A Peter M 1A Ron M 1B Tobe M 1B Janet F 1B Kitty F 1B Mimi F : : :
  44. 44. 3 Union, Intersection and Difference of Tables The union of A and B (A B) A B A table containing all the rows from A and B.
  45. 45. 3 Union, Intersection and Difference of Tables The intersection of A and B (A B) A B A table containing only rows that appear in both A and B.
  46. 46. 3 Union, Intersection and Difference of Tables The difference of A and B (A–B) A B A table containing rows that appear in A but not in B.
  47. 47. 3 The Situation: Bridge Club & Chess Club Consider the members of the Bridge Club and the Chess Club. The two database files have the same structure: field type width contents id numeric 4 student id number name character 10 name sex character 1 sex: M / F class character 2 class
  48. 48. 3 Union, Intersection and Difference of Tables B rid ge [A ] C hess [B ] id nam e sex class id nam e sex class 1 9812 A aron M 1A 1 9802 M ary F 1A 2 9801 P eter M 1A 2 9801 P eter M 1A 3 9814 K enn y M 1B 3 9815 E dd y M 1B 4 9806 K itty F 1B 4 9814 K enn y M 1B 5 9818 E dm ond M 1C 5 9817 G eorge M 1C : : : : : : : : Before using SQL, open the two tables: SELECT A USE bridge SELECT B USE chess
  49. 49. 3 Union, Intersection and Difference of Tables SELECT ...... FROM ...... WHERE ...... ; UNION ; SELECT ...... FROM ...... WHERE ......eg. 22 The two clubs want to hold a joint party. Make a list of all students. (Union) SELECT * FROM bridge ;Result UNION ; SELECT * FROM chess ; ORDER BY class, name INTO TABLE party
  50. 50. 3 Union, Intersection and Difference of Tables SELECT ...... FROM table1 ; WHERE col IN ( SELECT col FROM table2 )eg. 23 Print a list of students who are members of both clubs. (Intersection)Result SELECT * FROM bridge ; WHERE id IN ( SELECT id FROM chess ) ; TO PRINTER
  51. 51. 3 Union, Intersection and Difference of Tables SELECT ...... FROM table1 ; WHERE col NOT IN ( SELECT col FROM table2 )eg. 24 Make a list of students who are members of the Bridge Club but not Chess Club. (Difference)Result SELECT * FROM bridge ; WHERE id NOT IN ( SELECT id FROM chess ) ; INTO TABLE diff
  52. 52. 4 Multiple Tables: • 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.
  53. 53. 4 Multiple Tables: field1 field2 A 1 field1 field2 A 2 A 1 A 3 B 2 B 1 3 B 2 B 3
  54. 54. 4 The Situation: Music Lesson 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 SELECT A USE student SELECT B USE music
  55. 55. 4 Natural JoinA Natural Join is a join operation that joins twotables by their common column. This operationis 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.comcol
  56. 56. 4eg. 25 Natural Join Make a list of students and the instruments they learn. (Natural Join) id name class id type Same id 9801 9801 Join Student Music id name class type 9801 Product
  57. 57. 4eg. 25 Natural Join Make a list of students and the instruments they learn. (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 class name id type Result 1A Aaron 9812 Piano 1A Bobby 9811 Flute 1A Gigi 9824 Recorder 1A Jill 9820 Piano 1A Johnny 9803 Violin 1A Luke 9810 Piano 1A Mary 9802 Flute : : : :
  58. 58. 4 Natural Joineg. 26 Find the number of students learning piano in each class. Three Parts : (1) Natural Join. (2) Condition: m.type="Piano" (3) GROUP BY class
  59. 59. 4 Natural Joineg. 26 Student Join Condition Group By m.type= "Piano" class Product Music
  60. 60. 4 Natural Joineg. 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 class cnt Result 1A 4 1B 2 1C 1
  61. 61. 4 Outer JoinAn Outer Join is a join operation that includesrows that have a match, plus rows that do nothave a match in the other table.
  62. 62. 4 Outer Joineg. 27 List the students who have not yet chosen an instrument. (No match) id name class id type 9801 No match Student Music
  63. 63. 4 Outer Joineg. 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 class name id Result 1A Mandy 9821 1B Kenny 9814 1B Tobe 9805 1C Edmond 9818 1C George 9817 : : :
  64. 64. 4 Outer Joineg. 28 Make a checking list of students and the instruments they learn. The list should also contain the students without an instrument. (Outer Join)
  65. 65. 4 Outer Joineg. 28 Natural Join Outer Join No Match
  66. 66. 4 Outer Joineg. 28 SELECT s.class, s.name, s.id, m.type ; FROM student s, music m ; WHERE s.id=m.id ; UNION ; SELECT class, name, id, "" ; FROM student ; WHERE id NOT IN ( SELECT id FROM music ) ; ORDER BY 1, 2
  67. 67. 4class Outer Join name id type class name id type1A Aaron 9812 Piano1A Bobby 9811 Flute 1A Aaron 9812 Piano1A Gigi 9824 Recorder 1A Bobby 9811 Flute1A Jill 9820 Piano 1A Gigi 9824 Recorder1A Johnny 9803 Violin 1A Jill 9820 Piano1A Luke 9810 Piano 1A Johnny 9803 Violin1A Mary 9802 Flute 1A Luke 9810 Piano: : : : 1A Mandy 9821 Natural Join 1A Mary 9802 Flute 1A Peter 9801 Pianoclass name id1A Mandy 9821 1A Ron 9813 Guitar empty 1B Eddy 9815 Piano1B Kenny 98141B Tobe 9805 1B Janet 9822 Guitar1C Edmond 9818 1B Kenny 98141C George 9817 1B Kitty 9806 Recorder: : : : : : : No Match Outer Join

×