SQL         Name of the Presenter: Devi B          Date: 17-06-2011January 23, 2013 Proprietary and Confidential          ...
1      Introduction to SQL     •       What is SQL?     – SQL (Structured Query Language) is used to       modify and acce...
1       Introduction to SQL          Concept of SQL                     – The user specifies a certain condition          ...
2         Basic structure of an SQL query                      General                       SELECT, ALL / DISTINCT, *,   ...
The Situation: Student2      Particulars                field                          type     width   contents          ...
I General Structure                  SELECT ...... FROM ...... WHERE ......                   SELECT [ALL / DISTINCT] expr...
I      General Structure      SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;      FROM table name WHERE condit...
I General Structure      SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS      col2] ;      FROM table name WHERE condit...
I General Structure              Before using SQL, open the student file:              USE student             Eg. 1 List ...
I     General Structure          eg. 2                    List the names of 1A students.                                  ...
I General Structure   eg. 2                     List the names of 1A students. Result                        name         ...
I General Structure    eg. 3                    List the names and ages of 1B girls.                                      ...
I General Structure    eg. 3                    List the names and ages of 1B girls.                                 Condi...
I General Structure    eg. 3                    List the names and ages of 1B girls.                                      ...
I General Structure    eg. 3                    List the names and ages of 1B girls.                                      ...
I     General Structure       eg. 3 List the names and ages of 1B girls.                  SELECT DATE_FORMAT              ...
II       Comparison                        expr IN ( value1, value2, value3)                        expr BETWEEN value1 AN...
II Comparison        eg. 4                    List the students who were born on                                 Wednesday...
II Comparison        eg. 5                    List the students who were not born in                                 Janua...
II Comparison  eg. 6                    List the id students whose total score is                           between 200 an...
II Comparison     eg. 7                    List the students whose names start with              "T".                     ...
III Grouping                         SELECT ...... FROM ...... WHERE condition ;                         GROUP BY groupexp...
III Grouping       eg. 8                  List the number of students of each class.  January 23, 2013 Proprietary and Con...
Group By Class                                                  class                                                   1A...
III Grouping      eg. 8                  List the number of students of each class.                             SELECT cla...
III Grouping         eg. 9                   List the average score of each class.  January 23, 2013 Proprietary and Confi...
Group By Class                                                class                                                  1A   ...
III Grouping      eg. 9                  List the average total score of each                             class.          ...
III Grouping     eg. 10 List the max. and min. total of            students in each class.                          SELECT...
III Grouping        eg. 11                  List the average score of the boys in each                                clas...
IV Display Order                         SELECT ...... FROM ...... WHERE ......                         GROUP BY ..... ;  ...
IV Display Order     eg. 12 List the boys of class 1A, order by their                            names.            SELECT ...
V         Output             INTO TABLE tablename               the output table is saved as a                            ...
Union, Intersection and3          Difference of Tables                               The union of A and B (A B)           ...
Union, Intersection and3          Difference of Tables                        The intersection of A and B (A B)           ...
Union, Intersection and3          Difference of Tables                              The difference of A and B (A–B)       ...
The Situation:3        Bridge Club & Chess Club           Consider the members of the Bridge Club           and the Chess ...
Union, Intersection and3          Difference of Tables                       B rid ge [A ]                                ...
Union, Intersection and3          Difference of Tables                  SELECT ...... FROM ...... WHERE ...... ;          ...
Union, Intersection and3          Difference of Tables                  SELECT ...... FROM table1 ;                  WHERE...
Union, Intersection and3          Difference of Tables                  SELECT ...... FROM table1 ;                  WHERE...
4           MultipleTables         •          SQL provides a convenient operation to                    retrieve informati...
4          MultipleTables                                                         field1   field2                         ...
4          The Situation Music LessonEach student should learn a musical instrument.Two database files: student.dbf & musi...
4          Natural Join              A Natural Join is a join operation that joins two              tables by their common...
4          Natural Joineg. 15 Make a list of students and the instruments        they learn. (Natural Join)    id         ...
4           Natural Join eg. 15 Make a list of students and the instruments                        they learn. (Natural Jo...
4          Natural Joineg. 16 Find the number of students learning piano in                       each class.             ...
4           Natural Join eg. 16Student                            Join                           Condition           Group...
4           Natural Join    eg. 16 Find the number of students learning piano in                         each class.      ...
4          Outer Join    An Outer Join is a join operation that    includes rows that have a match, plus rows    that do n...
4          Outer Joineg. 17 List the students who have not yet chosen an                                       instrument....
4           Outer Join     eg. 17 List the students who have not yet chosen an                             instrument. (No...
4          Outer Joineg. 18 Make a checking list of students and the                       instruments they learn. The lis...
4          Outer Joineg. 18                                                Natural Join                                   ...
4          Outer Joineg. 18                      SELECT s.class, s.name, s.id, m.type ;                            FROM st...
4           Outer Join    class       name                   id       type    1A          Aaron                  9812     ...
4          SQL CREATE TABLE Statement    The CREATE TABLE Statement is used to    create tables to store data. Integrity  ...
Syntax for the CREATE TABLE4          Statement    CREATE TABLE table_name    (column_name1 datatype,    column_name2 data...
4          SQL ALTER TABLE StatementThe SQL ALTER TABLE command is used to modifythe definition (structure) of a table by ...
5Database Testing                                      SQL – Part of                                       DB testing Janu...
QueriesJanuary 23, 2013 Proprietary and Confidential   - 62 -
January 23, 2013 Proprietary and Confidential   - 63 -
Upcoming SlideShare
Loading in...5
×

Positive Flow

88

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
88
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Positive Flow

  1. 1. SQL Name of the Presenter: Devi B Date: 17-06-2011January 23, 2013 Proprietary and Confidential -1-
  2. 2. 1 Introduction to SQL • What is SQL? – SQL (Structured Query Language) is used to modify and access data or information from a storage area called database. – 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. January 23, 2013 Proprietary and Confidential -2-
  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). – The result of the query will then be stored in form of a table. January 23, 2013 Proprietary and Confidential -3-
  4. 4. 2 Basic structure of an SQL query General SELECT, ALL / DISTINCT, *, Structure AS, FROM, WHERE Comparison IN, BETWEEN, LIKE "% _" Grouping GROUP BY, HAVING, COUNT( ), SUM( ), AVG( ), MAX( ), MIN( ) Display Order ORDER BY, ASC / DESC Logical AND, OR, NOT Operators Output INTO TABLE , TO FILE , TO SCREEN Union UNION January 23, 2013 Proprietary and Confidential -4-
  5. 5. The Situation: Student2 Particulars field type width contents id numeric 4 student id number name character 30 name dob date 8 date of birth sex enum 1 sex: M / F class character 2 class January 23, 2013 Proprietary and Confidential -5-
  6. 6. I General Structure SELECT ...... FROM ...... WHERE ...... SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ; FROM tablename WHERE condition January 23, 2013 Proprietary and Confidential -6-
  7. 7. I General Structure SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ; FROM table name WHERE condition – The query will select rows from the source table name 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. January 23, 2013 Proprietary and Confidential -7-
  8. 8. I General Structure SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ; FROM table name 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. January 23, 2013 Proprietary and Confidential -8-
  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 9801 Peter 06/04/86 M 1A 9802 Mary 01/10/86 F 1A 9803 Johnny 03/16/86 M 1A 9804 Wendy 07/09/86 F 1B 9805 Tobe 10/17/86 M 1B : : : : : January 23, 2013 Proprietary and Confidential -9-
  10. 10. I General Structure eg. 2 List the names of 1A students. SELECT name, class FROM student ; WHERE class="1A" Class Class 1A  1A class="1A"  1A 1A 1A  1A 1B  1B 1B  1B : : January 23, 2013 Proprietary and Confidential - 10 -
  11. 11. I General Structure eg. 2 List the names of 1A students. Result name class Peter 1A Mary 1A Johnny 1A Luke 1A Bobby 1A Aaron 1A : : January 23, 2013 Proprietary and Confidential - 11 -
  12. 12. I General Structure eg. 3 List the names and ages of 1B girls. 1B Girls ? January 23, 2013 Proprietary and Confidential - 12 -
  13. 13. I General Structure eg. 3 List the names and ages of 1B girls. Condition for "1B Girls": 1) class = "1B" 2) sex = "F" 3) Both ( AND operator) January 23, 2013 Proprietary and Confidential - 13 -
  14. 14. I General Structure eg. 3 List the names and ages of 1B girls. What is "age"? January 23, 2013 Proprietary and Confidential - 14 -
  15. 15. I General Structure eg. 3 List the names and ages of 1B girls. Functions: # Diff b/w two dates in days : DATEDIFF(NOW() – dob) # Returns Years , Month , Days : FROM_DAYS(DATEDIFF(NOW() ) – dob) January 23, 2013 Proprietary and Confidential - 15 -
  16. 16. I General Structure eg. 3 List the names and ages of 1B girls. SELECT DATE_FORMAT (FROM_DAYS(DATEDIFF(NOW(),dob)), %Y) AS age FROM student WHERE class=1B AND sex=F Result name age Wendy 12.0 Kitty 11.0 Janet 12.0 Sandy 12.0 Mimi 12.0 January 23, 2013 Proprietary and Confidential - 16 -
  17. 17. II Comparison expr IN ( value1, value2, value3) expr BETWEEN value1 AND value2 expr LIKE "%_" January 23, 2013 Proprietary and Confidential - 17 -
  18. 18. II Comparison eg. 4 List the students who were born on Wednesday or Saturday. SELECT name, class, DAYNAME(dob) AS bdate FROM student ; WHERE weekday(dob) IN (2,5) Result name class bdate Peter 1A Wednesday Wendy 1B Wednesday Kevin 1C Saturday Luke 1A Wednesday Aaron 1A Saturday : : : January 23, 2013 Proprietary and Confidential - 18 -
  19. 19. II Comparison eg. 5 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 : : : January 23, 2013 Proprietary and Confidential - 19 -
  20. 20. II Comparison eg. 6 List the id students whose total score is between 200 and 300 (incl.) SELECT student_id, total_marks FROM student ; WHERE total_marks BETWEEN 80 AND 90 Result Student_id total_marks 9000 210 9810 250 9201 260 January 23, 2013 Proprietary and Confidential - 20 -
  21. 21. II Comparison eg. 7 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 January 23, 2013 Proprietary and Confidential - 21 -
  22. 22. 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. January 23, 2013 Proprietary and Confidential - 22 -
  23. 23. III Grouping eg. 8 List the number of students of each class. January 23, 2013 Proprietary and Confidential - 23 -
  24. 24. Group By Class class 1A 1A 1A 1A COUNT( ) 1B 1B 1B COUNT( ) 1B 1B 1B 1B 1C 1C 1C 1C COUNT( ) StudentJanuary 23, 2013 Proprietary and Confidential - 24 -
  25. 25. III Grouping eg. 8 List the number of students of each class. SELECT class, COUNT(*) FROM student ; GROUP BY class Result class cnt 1A 10 1B 9 1C 9 2A 8 2B 8 2C 6 January 23, 2013 Proprietary and Confidential - 25 -
  26. 26. III Grouping eg. 9 List the average score of each class. January 23, 2013 Proprietary and Confidential - 26 -
  27. 27. Group By Class class 1A 1A 1A 1A AVG( ) 1B 1B 1B 1B AVG( ) 1B 1B 1B 1C 1C 1C AVG( ) 1C StudentJanuary 23, 2013 Proprietary and Confidential - 27 -
  28. 28. III Grouping eg. 9 List the average total score of each class. SELECT class, AVG(total_marks) as Average FROM student GROUP BY class Result class Average 1A 85.90 1B 70.33 1C 37.89 2A 89.38 2B 53.13 2C 32.67 January 23, 2013 Proprietary and Confidential - 28 -
  29. 29. III Grouping eg. 10 List the max. and min. total of students in each class. SELECT MAX(total_marks) as max_total, MIN(total_marks) as min_total,class FROM student WHERE GROUP BY class max_total min_total Class Result 300 200 IA 289 195 IB 250 150 IC 225 125 2A 300 207 2B 289 100 2C January 23, 2013 Proprietary and Confidential - 29 -
  30. 30. III Grouping eg. 11 List the average score of the boys in each class. The list should not contain class with less than 3 boys. SELECT AVG(total_marks), class FROM student WHERE sex="M" GROUP BY class HAVING COUNT(*) >= 3 Result avg_marks class 86.00 1A 77.75 1B 35.60 1C 86.50 2A 56.50 2B January 23, 2013 Proprietary and Confidential - 30 -
  31. 31. IV Display Order SELECT ...... FROM ...... WHERE ...... GROUP BY ..... ; ORDER BY colname ASC / DESC January 23, 2013 Proprietary and Confidential - 31 -
  32. 32. IV Display Order eg. 12 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 Bobby 9811 ORDER BY Luke 9810 Johnny 9803 Bobby 9811 Luke 9810 Aaron 9812 Peter 9801 Ron 9813 Ron 9813 January 23, 2013 Proprietary and Confidential - 32 -
  33. 33. V Output INTO TABLE tablename the output table is saved as a database file in the disk. TO FILE filename [ADDITIVE] output to a text file. (additive = append) TO SCREEN display on screen.January 23, 2013 Proprietary and Confidential - 33 -
  34. 34. Union, Intersection and3 Difference of Tables The union of A and B (A B) A B A table containing all the rows from A and B.January 23, 2013 Proprietary and Confidential - 34 -
  35. 35. Union, Intersection and3 Difference of Tables The intersection of A and B (A B) A B A table containing only rows tht appear in both A and B.January 23, 2013 Proprietary and Confidential - 35 -
  36. 36. Union, Intersection and3 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.January 23, 2013 Proprietary and Confidential - 36 -
  37. 37. The Situation:3 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 classJanuary 23, 2013 Proprietary and Confidential - 37 -
  38. 38. Union, Intersection and3 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 chessJanuary 23, 2013 Proprietary and Confidential - 38 -
  39. 39. Union, Intersection and3 Difference of Tables SELECT ...... FROM ...... WHERE ...... ; UNION ; SELECT ...... FROM ...... WHERE ......eg. 13 The two clubs want to hold a joint party. Make a list of all students. (Union) SELECT * FROM student ; UNION ; SELECT * FROM student_temp ;January 23, 2013 Proprietary and Confidential - 39 -
  40. 40. Union, Intersection and3 Difference of Tables SELECT ...... FROM table1 ; WHERE col IN ( SELECT col FROM table2 )eg. 14 List of students who are members of both clubs. (Intersection) SELECT * FROM bridge ; Result WHERE id IN ( SELECT id FROM chess ) ; TO PRINTERJanuary 23, 2013 Proprietary and Confidential - 40 -
  41. 41. Union, Intersection and3 Difference of Tables SELECT ...... FROM table1 ; WHERE col NOT IN ( SELECT col FROM table2 )eg. 14 Make a list of students who are members of the Bridge Club but not Chess Club. (Difference) SELECT * FROM bridge ; Result WHERE id NOT IN ( SELECT id FROM chess ) ;January 23, 2013 Proprietary and Confidential - 41 -
  42. 42. 4 MultipleTables • 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 and then it will filter the rows of this combined table to yield useful information.January 23, 2013 Proprietary and Confidential - 42 -
  43. 43. 4 MultipleTables field1 field2 A 1 field1 field2 A 2 A 1 A 3 B 2 B 1 3 B 2 B 3January 23, 2013 Proprietary and Confidential - 43 -
  44. 44. 4 The Situation Music LessonEach student should learn a musical instrument.Two database files: student.dbf & music.dbfThe 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 musicJanuary 23, 2013 Proprietary and Confidential - 44 -
  45. 45. 4 Natural Join 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.comcolJanuary 23, 2013 Proprietary and Confidential - 45 -
  46. 46. 4 Natural Joineg. 15 Make a list of students and the instruments they learn. (Natural Join) id name class id type Same id 9801 9801 Join Music Student id name class type 9801January 23, 2013 Proprietary and Confidential Product - 46 -
  47. 47. 4 Natural Join eg. 15 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 typeResult 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 : : : : January 23, 2013 Proprietary and Confidential - 47 -
  48. 48. 4 Natural Joineg. 16 Find the number of students learning piano in each class. Three Parts : (1) Natural Join. (2) Condition: m.type="Piano" (3) GROUP BY classJanuary 23, 2013 Proprietary and Confidential - 48 -
  49. 49. 4 Natural Join eg. 16Student Join Condition Group m.type= "Piano" By class ProductMusic January 23, 2013 Proprietary and Confidential - 49 -
  50. 50. 4 Natural Join eg. 16 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 classResult class cnt 1A 4 1B 2 1C 1 January 23, 2013 Proprietary and Confidential - 50 -
  51. 51. 4 Outer 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.January 23, 2013 Proprietary and Confidential - 51 -
  52. 52. 4 Outer Joineg. 17 List the students who have not yet chosen an instrument. (No match) id name class id type 9801 No match Student MusicJanuary 23, 2013 Proprietary and Confidential - 52 -
  53. 53. 4 Outer Join eg. 17 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, nameResult class name id 1A Mandy 9821 1B Kenny 9814 1B Tobe 9805 1C Edmond 9818 1C George 9817 : : : January 23, 2013 Proprietary and Confidential - 53 -
  54. 54. 4 Outer Joineg. 18 Make a checking list of students and the instruments they learn. The list should also contain the students without an instrument. (Outer Join)January 23, 2013 Proprietary and Confidential - 54 -
  55. 55. 4 Outer Joineg. 18 Natural Join Outer Join No MatchJanuary 23, 2013 Proprietary and Confidential - 55 -
  56. 56. 4 Outer Joineg. 18 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, 2January 23, 2013 Proprietary and Confidential - 56 -
  57. 57. 4 Outer Join class name id type 1A Aaron 9812 Piano class name id type 1A Bobby 9811 Flute 1A Aaron 9812 Piano 1A Gigi 9824 Recorder 1A Bobby 9811 Flute 1A Jill 9820 Piano 1A Gigi 9824 Recorder 1A Johnny 9803 Violin 1A Jill 9820 Piano 1A Luke 9810 Piano 1A Johnny 9803 Violin 1A Mary 9802 Flute 1A Luke 9810 Piano : : : : 1A Mandy 9821 Natural Join 1A Mary 9802 Flute 1A Peter 9801 Piano class name id 1A Mandy 9821 1A Ron 9813 Guitar empty 1B Kenny 9814 1B Eddy 9815 Piano 1B Tobe 9805 1B Janet 9822 Guitar 1C Edmond 9818 1B Kenny 9814 1C George 9817 1B Kitty 9806 Recorder : : : : : : : No Match Outer JoinJanuary 23, 2013 Proprietary and Confidential - 57 -
  58. 58. 4 SQL CREATE TABLE Statement The CREATE TABLE Statement is used to create tables to store data. Integrity Constraints like - Primary key - Unique key - Foreign key can be defined for the columns while creating the table.January 23, 2013 Proprietary and Confidential - 58 -
  59. 59. Syntax for the CREATE TABLE4 Statement CREATE TABLE table_name (column_name1 datatype, column_name2 datatype, ... column_nameN datatype ); table_name - is the name of the table. column_name1, column_name2.... - is the name of the columns datatype - is the datatype for the column like char, date, number etc.January 23, 2013 Proprietary and Confidential - 59 -
  60. 60. 4 SQL ALTER TABLE StatementThe SQL ALTER TABLE command is used to modifythe definition (structure) of a table by modifyingthe definition of its columns.January 23, 2013 Proprietary and Confidential - 60 -
  61. 61. 5Database Testing SQL – Part of DB testing January 23, 2013 Proprietary and Confidential - 61 -
  62. 62. QueriesJanuary 23, 2013 Proprietary and Confidential - 62 -
  63. 63. January 23, 2013 Proprietary and Confidential - 63 -
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×