Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS3431 SQL : Query Language. CS3431 SELECT-FROM-WHERE SELECT * FROM Student WHERE sName=“Greg” AND address=“320 FL”  (sName=“Greg” AND address=“320 FL”)

Similar presentations


Presentation on theme: "CS3431 SQL : Query Language. CS3431 SELECT-FROM-WHERE SELECT * FROM Student WHERE sName=“Greg” AND address=“320 FL”  (sName=“Greg” AND address=“320 FL”)"— Presentation transcript:

1 CS3431 SQL : Query Language

2 CS3431 SELECT-FROM-WHERE SELECT * FROM Student WHERE sName=“Greg” AND address=“320 FL”  (sName=“Greg” AND address=“320 FL”) (Student) sNumbersNameaddressprofessor 1Dave311FLMM 2Greg320FLMM 3Matt320FLER Student sNumbersNameaddressprofessor 2Greg320FLMM

3 CS3431 Select-From Query SELECT sNumber, sName FROM Student  (sNumber, sName) (Student) sNumbersNameaddressprofessor 1Dave320FLMM 2Greg320FLMM 3Matt320FLER Student sNumbersName 1Dave 2Greg 3Matt

4 CS3431 Extended Projection SELECT sNumber || sName AS info FROM Student WHERE address=“320 FL”  (sNumber||sName  info) (  (address=“320 FL”) (Student)) sNumbersNameaddressprofessor 1Dave320FLMM 2Greg320FLMM 3Matt320FLER Student info 1Dave 2Greg 3Matt

5 CS3431 SQL and Relational Algebra  L (  C (R)) becomes SELECT L FROM R WHERE C

6 CS3431 Tuple Variables + Renaming SELECT S1.sNumber AS num FROM Student S1 WHERE S1.sNumber >= 1;  (S1.sNumber  num) (  (S1.sNumber >= 1) (  S1 (Student))) sNumbersNameaddressprofessor 1Dave320FLMM 2Greg320FLMM 3Matt320FLER Student num 1 2 3

7 CS3431 String Operators Comparison Operators based on lexicographic ordering: =,, <>, >=, <= Concatenation operator: || Pattern match: s LIKE p p denotes a pattern % : any sequence of 0 or more characters - : matches 1 character Use two consecutive quotes (‘) to represent ‘

8 CS3431 String Operators Comparison Operators based on lexicographic ordering: =,, <>, >=, <= Concatenation operator: || Use two consecutive quotes (‘) to represent ‘ Pattern match: s LIKE p p denotes a pattern % : any sequence of 0 or more characters - : matches 1 character Patterns can explicitly declare escape characters as: s LIKE ‘x%am%’ ESCAPE ‘x’

9 CS3431 String Matching Example SELECT s1.sNumber AS num FROM Student S1 WHERE s1.sName LIKE ‘Star_ _ _ _’ or S1.professor LIKE ‘Mad Cow’’s%’ ;

10 CS3431 Comparison with NULL values Arithmetic operations on NULL return NULL. Comparison operators on NULL return UNKNOWN. We can explicitly check whether a value is null or not, by IS NULL, IS NOT NULL.

11 CS3431 Truth table with UNKNOWN UNKNOWN AND TRUE = UNKNOWN UNKNOWN OR TRUE = TRUE UNKNOWN AND FALSE = FALSE UNKNOWN OR FALSE = UNKNOWN UNKNOWN AND UNKNOWN = UNKNOWN UNKNOWN OR UNKNOWN = UNKNOWN NOT UNKNOWN = UNKNOWN A WHERE clause is satisfied only when it evaluates to TRUE.

12 CS3431 Set Operations in SQL For set semantics, use UNION, INTERSECT, EXCEPT. For bag semantics, use UNION ALL, INTERSECT ALL, EXCEPT ALL (SELECT sName FROM Student) EXCEPT (SELECT sName FROM Student WHERE address=‘320 FL’) Operators : UNION, INTERSECT, and EXCEPT

13 CS3431 EXCEPT - Example sNumbersNameaddressprofessor 1Dave320FLMM 2Greg320FLMM 3Matt320FLER 4Matt300FLER Student (SELECT sName FROM Student) EXCEPT (SELECT sName FROM Student WHERE address=‘320 FL’) sNumbersNameaddressprofessor Reminder : Set semantics !

14 CS3431 Joins + SQL Multiple relations in FROM clause : SELECT * FROM Student, Professor

15 CS3431 Cross (Cartesian) Product SELECT * FROM Student CROSS JOIN Professor; SELECT * FROM Student, Professor Student X Professor

16 CS3431 Cross Product - Example sNumbersNameaddressprofessor 1Dave320FL1 2Greg320FL1 3Matt320FL2 Student pNumberpNameaddress 1MM141FL 2ER201FL Professor sNumbersNameaddressprofessorpNumberpNameaddress 1Dave320FL11MM141FL 1Dave320FL12ER201FL 2Greg320FL11MM141FL 2Greg320FL12ER201FL 3Matt320FL21MM141FL 3Matt320FL22ER201FL

17 CS3431 Theta Join SELECT * FROM Student JOIN Professor ON professor=pNumber; Student ⋈ (professor=pNumber) Professor SELECT * FROM Student, Professor WHERE professor=pNumber;

18 CS3431 Theta Join Example sNumbersNameaddressprofessorpNumberpNameaddress 1Dave320FL11MM141FL 2Greg320FL11MM141FL 3Matt320FL22ER201FL sNumbersNameaddressprofessor 1Dave320FL1 2Greg320FL1 3Matt320FL2 Student pNumberpNameaddress 1MM141FL 2ER201FL Professor Student ⋈ (professor=pNumber) Professor

19 CS3431 Natural Join SELECT * FROM Student, Professor WHERE Student.pnumber = Professor.pnumber ; Student ⋈ Professor Reminder: Join columns must have same names in both relations SELECT * FROM Student NATURAL JOIN Professor

20 CS3431 Natural Join - Example sNumbersNameaddresspNumber 1Dave320FL1 2Greg320FL1 3Matt320FL2 Student pNumberpNameaddress 1MM141FL 2ER201FL Professor sNumbersNameaddresspNumberpNameaddress 1Dave320FL1MM141FL 2Greg320FL1MM141FL 3Matt320FL2ER201FL Student ⋈ Professor

21 CS3431 Outer Joins SELECT * FROM Student NATURAL FULL OUTER JOIN Professor Student ⋈ o Professor SELECT * FROM Student NATURAL LEFT OUTER JOIN Professor Student ⋈ o L Professor SELECT * FROM Student NATURAL RIGHT OUTER JOIN Professor Student ⋈ o R Professor

22 CS3431 Outer Joins - Example sNumbersNameaddresspNumber 1Dave320FL1 2Greg320FL1 3Matt320FL2 4Ben320FL4 Student pNumberpNameaddress 1MM141FL 2ER201FL 3MW168FL Professor sNumbersNameaddresspNumberpNameaddress 1Dave320FL1MM141FL 2Greg320FL1MM141FL 3Matt320FL2ER201FL 4Ben320FL4Null 3MW168FL Student ⋈ o Professor

23 CS3431 Putting it together: Joins+more SELECT sName FROM Student, Professor WHERE pName=‘MM’ AND pNumber=professor;  (sName) (Student ⋈ (pName=‘MM’ and pNumber=professor) Professor)

24 CS3431 Joins - example sNumbersNameaddressprofessor 1Dave320FL1 2Greg320FL1 3Matt320FL2 Student pNumberpNameaddress 1MM141FL 2ER201FL Professor sName Dave Greg SELECT sName FROM Student, Professor WHERE pName=‘MM’ AND pNumber=professor;


Download ppt "CS3431 SQL : Query Language. CS3431 SELECT-FROM-WHERE SELECT * FROM Student WHERE sName=“Greg” AND address=“320 FL”  (sName=“Greg” AND address=“320 FL”)"

Similar presentations


Ads by Google