CMU SCS Carnegie Mellon Univ Dept of Computer
- Slides: 94
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science 15 -415/615 - DB Applications C. Faloutsos & A. Pavlo Lecture#6: Rel. model - SQL part 1 (R&G, chapter 5)
CMU SCS General Overview - rel. model • Formal query languages – rel algebra and calculi • Commercial query languages – SQL – QBE, (QUEL) Faloutsos, Pavlo CMU SCS 15 -415/615 2
CMU SCS Overview - detailed - SQL • DML – select, from, where, renaming – set operations – ordering – aggregate functions – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos, Pavlo CMU SCS 15 -415/615 3
CMU SCS Relational Query Languages • A major strength of the relational model: supports simple, powerful querying of data. • Two sublanguages: • DDL – Data Definition Language – define and modify schema (at all 3 levels) • DML – Data Manipulation Language – Queries can be written intuitively. Faloutsos, Pavlo CMU SCS 15 -415/615 4
CMU SCS Relational languages • The DBMS is responsible for efficient evaluation. – Query optimizer: re-orders operations and generates query plan Faloutsos, Pavlo CMU SCS 15 -415/615 5
CMU SCS The SQL Query Language • The most widely used relational query language. – Major standard is SQL-1999 (=SQL 3) • Introduced “Object-Relational” concepts • SQL 2003, SQL 2008 have small extensions – SQL 92 is a basic subset Faloutsos, Pavlo CMU SCS 15 -415/615 6
CMU SCS SQL (cont’d) – Postgre. SQL has some “unique” aspects (as do most systems). Faloutsos, Pavlo CMU SCS 15 -415/615 7
CMU SCS DML General form select a 1, a 2, … an from r 1, r 2, … rm where P [order by …. ] [group by …] [having …] Faloutsos, Pavlo CMU SCS 15 -415/615 8
CMU SCS Reminder: our Mini-U db Faloutsos, Pavlo CMU SCS 15 -415/615 9
CMU SCS DML - eg: find the ssn(s) of everybody called “smith” select ssn from student where name=“smith” Faloutsos, Pavlo CMU SCS 15 -415/615 10
CMU SCS DML - observation General form select a 1, a 2, … an from r 1, r 2, … rm where P equivalent rel. algebra query? Faloutsos, Pavlo CMU SCS 15 -415/615 11
CMU SCS DML - observation General form select a 1, a 2, … an from r 1, r 2, … rm where P Faloutsos, Pavlo CMU SCS 15 -415/615 12
CMU SCS DML - observation General form select distinct a 1, a 2, … an from r 1, r 2, … rm where P Faloutsos, Pavlo CMU SCS 15 -415/615 13
CMU SCS select clause select [distinct | all ] name from student where address=“main” Faloutsos, Pavlo CMU SCS 15 -415/615 14
CMU SCS where clause find ssn(s) of all “smith”s on “main” select ssn from student where address=“main” and name = “smith” Faloutsos, Pavlo CMU SCS 15 -415/615 15
CMU SCS where clause • boolean operators (and or not …) • comparison operators (<, >, =, …) • and more… Faloutsos, Pavlo CMU SCS 15 -415/615 16
CMU SCS What about strings? find student ssns who live on “main” (st or street - ie. , “main st” or “main str” …) Faloutsos, Pavlo CMU SCS 15 -415/615 17
CMU SCS What about strings? find student ssns who live on “main” (st or street) select ssn from student where address like “main%” %: variable-length don’t care _: single-character don’t care Faloutsos, Pavlo CMU SCS 15 -415/615 18
CMU SCS from clause find names of people taking 15 -415 Faloutsos, Pavlo CMU SCS 15 -415/615 19
CMU SCS from clause find names of people taking 15 -415 select name from student, takes where ? ? ? Faloutsos, Pavlo CMU SCS 15 -415/615 20
CMU SCS from clause find names of people taking 15 -415 select name from student, takes where student. ssn = takes. ssn and takes. c-id = “ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 21
CMU SCS Overview - detailed - SQL • DML – select, from, where, renaming – set operations – ordering – aggregate functions – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos, Pavlo CMU SCS 15 -415/615 22
CMU SCS renaming - tuple variables find names of people taking 15 -415 select name from our. Very. Own. Student, student. Taking. Classes where our. Very. Own. Student. ssn = student. Taking. Classes. ssn and student. Taking. Classes. c-id = “ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 23
CMU SCS 2 reasons to rename: • #1) shorthand • #2) self-joins Faloutsos, Pavlo CMU SCS 15 -415/615 24
CMU SCS #1) renaming - tuple variables find names of people taking 15 -415 select name from our. Very. Own. Student, student. Taking. Classes where our. Very. Own. Student. ssn =student. Taking. Classes. ssn and student. Taking. Classes. c-id = “ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 25
CMU SCS #1) renaming - tuple variables find names of people taking 15 -415 select name from our. Very. Own. Student as S, student. Taking. Classes as T where S. ssn =T. ssn and T. c-id = “ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 26
CMU SCS #2) renaming - self-join • self -joins: find Tom’s grandparent(s) Faloutsos, Pavlo CMU SCS 15 -415/615 27
CMU SCS #2) renaming - self-join find grandparents of “Tom” (PC(p-id, c-id)) select gp. p-id from PC as gp, PC where gp. c-id= PC. p-id and PC. c-id = “Tom” Faloutsos, Pavlo CMU SCS 15 -415/615 28
CMU SCS #2) renaming - theta join find course names with more units than 15415 Faloutsos, Pavlo CMU SCS 15 -415/615 29
CMU SCS #2) renaming - theta join find course names with more units than 15415 select c 1. c-name from class as c 1, class as c 2 where c 1. units > c 2. units and c 2. c-id = “ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 30
CMU SCS find course names with more units than 15 -415 select c 1. name from class as c 1, class as c 2 where c 1. units > c 2. units and c 2. c-id = “ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 31
CMU SCS find course names with more units than 15 -415 select c 2. name from class as c 1, class as c 2 where c 2. units > c 1. units and c 1. c-id = “ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 32
CMU SCS Overview - detailed - SQL • DML – select, from, where – set operations – ordering – aggregate functions – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos, Pavlo CMU SCS 15 -415/615 33
CMU SCS set operations find ssn of people taking both 15 -415 and 15413 Faloutsos, Pavlo CMU SCS 15 -415/615 34
CMU SCS set operations find ssn of people taking both 15 -415 and 15413 select ssn from takes where c-id=“ 15 -415” and c-id=“ 15 -413” Faloutsos, Pavlo CMU SCS 15 -415/615 35
CMU SCS set operations find ssn of people taking both 15 -415 and 15413 (select ssn from takes where c-id=“ 15 -415” ) intersect (select ssn from takes where c-id=“ 15 -413” ) other ops: union , except Faloutsos, Pavlo CMU SCS 15 -415/615 36
CMU SCS Overview - detailed - SQL • DML – select, from, where – set operations – ordering – aggregate functions – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos, Pavlo CMU SCS 15 -415/615 37
CMU SCS Ordering find student records, sorted in name order select * from student where Faloutsos, Pavlo CMU SCS 15 -415/615 38
CMU SCS Ordering find student records, sorted in name order select * from student order by name asc is the default Faloutsos, Pavlo CMU SCS 15 -415/615 39
CMU SCS Ordering find student records, sorted in name order; break ties by reverse ssn select * from student order by name, ssn desc Faloutsos, Pavlo CMU SCS 15 -415/615 40
CMU SCS Overview - detailed - SQL • DML – select, from, where – set operations – ordering – aggregate functions – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos, Pavlo CMU SCS 15 -415/615 41
CMU SCS Aggregate functions find avg grade, across all students select ? ? from takes Faloutsos, Pavlo CMU SCS 15 -415/615 42
CMU SCS Aggregate functions find avg grade, across all students select avg(grade) from takes • result: a single number • Which other functions? Faloutsos, Pavlo CMU SCS 15 -415/615 43
CMU SCS Aggregate functions • A: sum count min max (std) Faloutsos, Pavlo CMU SCS 15 -415/615 44
CMU SCS Aggregate functions find total number of enrollments select count(*) from takes Faloutsos, Pavlo CMU SCS 15 -415/615 45
CMU SCS Aggregate functions find total number of students in 15 -415 select count(*) from takes where c-id=“ 15 -415” Faloutsos, Pavlo CMU SCS 15 -415/615 46
CMU SCS Aggregate functions find total number of students in each course select count(*) from takes where ? ? ? Faloutsos, Pavlo CMU SCS 15 -415/615 47
CMU SCS Aggregate functions find total number of students in each course select c-id, count(*) from takes group by c-id Faloutsos, Pavlo CMU SCS 15 -415/615 48
CMU SCS Aggregate functions find total number of students in each course select c-id, count(*) from takes group by c-id order by c-id Faloutsos, Pavlo CMU SCS 15 -415/615 49
CMU SCS Aggregate functions find total number of students in each course, and sort by count, decreasing select c-id, count(*) as pop from takes group by c-id order by pop desc Faloutsos, Pavlo CMU SCS 15 -415/615 50
CMU SCS Aggregate functions- ‘having’ find students with GPA > 3. 0 Faloutsos, Pavlo CMU SCS 15 -415/615 51
CMU SCS Aggregate functions- ‘having’ find students with GPA > 3. 0 select ? ? ? , avg(grade) from takes group by ? ? ? Faloutsos, Pavlo CMU SCS 15 -415/615 52
CMU SCS Aggregate functions- ‘having’ find students with GPA > 3. 0 select ssn, avg(grade) from takes group by ssn ? ? ? Faloutsos, Pavlo CMU SCS 15 -415/615 53
CMU SCS Aggregate functions- ‘having’ find students with GPA > 3. 0 select ssn, avg(grade) from takes group by ssn having avg(grade)>3. 0 ‘having’ <-> ‘where’ for groups Faloutsos, Pavlo CMU SCS 15 -415/615 54
CMU SCS Aggregate functions- ‘having’ find students and GPA, for students with > 5 courses select ssn, avg(grade) from takes group by ssn having count(*) > 5 Faloutsos, Pavlo CMU SCS 15 -415/615 55
CMU SCS Overview - detailed - SQL • DML – select, from, where, renaming – set operations – ordering – aggregate functions – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos CMU SCS 15 -415/615 56
CMU SCS DML General form select a 1, a 2, … an from r 1, r 2, … rm where P [order by …. ] [group by …] [having …] Faloutsos CMU SCS 15 -415/615 57
CMU SCS Reminder: our Mini-U db Faloutsos CMU SCS 15 -415/615 58
CMU SCS DML - nested subqueries find names of students of 15 -415 select name from student where. . . “ssn in the set of people that take 15 -415” Faloutsos CMU SCS 15 -415/615 59
CMU SCS DML - nested subqueries find names of students of 15 -415 select name from student where ………. . . select ssn from takes where c-id =“ 15 -415” Faloutsos CMU SCS 15 -415/615 60
CMU SCS DML - nested subqueries find names of students of 15 -415 select name from student where ssn in ( select ssn from takes where c-id =“ 15 -415”) Faloutsos CMU SCS 15 -415/615 61
CMU SCS DML - nested subqueries • ‘in’ compares a value with a set of values • ‘in’ can be combined other boolean ops • it is redundant (but user friendly!): select name from student …. . where c-id = “ 15 -415” …. Faloutsos CMU SCS 15 -415/615 62
CMU SCS DML - nested subqueries • ‘in’ compares a value with a set of values • ‘in’ can be combined other boolean ops • it is redundant (but user friendly!): select name from student, takes where c-id = “ 15 -415” and student. ssn=takes. ssn Faloutsos CMU SCS 15 -415/615 63
CMU SCS DML - nested subqueries find names of students taking 15 -415 and living on “main str” select name from student where address=“main str” and ssn in ( select ssn from takes where c-id =“ 15 -415”) Faloutsos CMU SCS 15 -415/615 64
CMU SCS DML - nested subqueries • ‘in’ compares a value with a set of values • other operators like ‘in’ ? ? Faloutsos CMU SCS 15 -415/615 65
CMU SCS DML - nested subqueries find student record with highest ssn select * from student where ssn is greater than every other ssn Faloutsos CMU SCS 15 -415/615 66
CMU SCS DML - nested subqueries find student record with highest ssn select * from student where ssn greater than every select ssn from student Faloutsos CMU SCS 15 -415/615 67
CMU SCS DML - nested subqueries find student record with highest ssn select * t c e from student r r o c t s o where ssn > all ( m l a select ssn from student) Faloutsos CMU SCS 15 -415/615 68
CMU SCS DML - nested subqueries find student record with highest ssn select * from student where ssn >= all ( select ssn from student) Faloutsos CMU SCS 15 -415/615 69
CMU SCS Puzzle DML - nested subqueries find student record with highest ssn - without nested subqueries? select S 1. ssn, S 1. name, S 1. address from student as S 1, student as S 2 where S 1. ssn > S 2. ssn is not the answer (what does it give? ) Faloutsos CMU SCS 15 -415/615 70
CMU SCS Puzzle DML - nested subqueries S 1 S 2 S 1 x S 2 S 1. ssn>S 2. ssn Faloutsos CMU SCS 15 -415/615 71
CMU SCS Puzzle DML - nested subqueries select S 1. ssn, S 1. name, S 1. address from student as S 1, student as S 2 where S 1. ssn > S 2. ssn gives all but the smallest ssn aha! Faloutsos CMU SCS 15 -415/615 72
CMU SCS Puzzle DML - nested subqueries find student record with highest ssn - without nested subqueries? select S 1. ssn, S 1. name, S 1. address from student as S 1, student as S 2 where S 1. ssn < S 2. ssn gives all but the highest - therefore…. Faloutsos CMU SCS 15 -415/615 73
CMU SCS Puzzle DML - nested subqueries find student record with highest ssn - without nested subqueries? (select * from student) except (select S 1. ssn, S 1. name, S 1. address from student as S 1, student as S 2 where S 1. ssn < S 2. ssn) Faloutsos CMU SCS 15 -415/615 74
CMU SCS Puzzle DML - nested subqueries (select * from student) except (select S 1. ssn, S 1. name, S 1. address from student as S 1, student as S 2 where S 1. ssn < S 2. ssn) select * from student where ssn >= all (select ssn from student) Faloutsos CMU SCS 15 -415/615 75
CMU SCS DML - nested subqueries Drill: Even more readable than select * from student where ssn >= all (select ssn from student) Faloutsos CMU SCS 15 -415/615 76
CMU SCS DML - nested subqueries Drill: Even more readable than select * from student where ssn >= all (select ssn from student) select * from student where ssn in (select max(ssn) from student) Faloutsos CMU SCS 15 -415/615 77
CMU SCS DML - nested subqueries Drill: find the ssn of the student with the highest GPA Faloutsos CMU SCS 15 -415/615 78
CMU SCS DML - nested subqueries Drill: find the ssn and GPA of the student with the highest GPA select ssn, avg(grade) from takes where Faloutsos CMU SCS 15 -415/615 79
CMU SCS DML - nested subqueries Drill: find the ssn and GPA of the student with the highest GPA select ssn, avg(grade) from takes group by ssn having avg( grade) …. . . greater than every other GPA on file Faloutsos CMU SCS 15 -415/615 80
CMU SCS DML - nested subqueries Drill: find the ssn and GPA of the student with the highest GPA select ssn, avg(grade) from takes group by ssn having avg( grade) >= all ( select avg( grade ) from student group by ssn ) Faloutsos CMU SCS 15 -415/615 } all GPAs 81
CMU SCS DML - nested subqueries • ‘in’ and ‘>= all’ compares a value with a set of values • other operators like these? Faloutsos CMU SCS 15 -415/615 82
CMU SCS DML - nested subqueries • • • <all(), <>all(). . . ‘<>all’ is identical to ‘not in’ >some(), >= some (). . . ‘= some()’ is identical to ‘in’ exists Faloutsos CMU SCS 15 -415/615 83
CMU SCS DML - nested subqueries Drill for ‘exists’: find all courses that nobody enrolled in select c-id from class …. with no tuples in ‘takes’ Faloutsos CMU SCS 15 -415/615 84
CMU SCS DML - nested subqueries Drill for ‘exists’: find all courses that nobody enrolled in select c-id from class where not exists (select * from takes where class. c-id = takes. c-id) Faloutsos CMU SCS 15 -415/615 85
CMU SCS DML - derived relations find the ssn with the highest GPA select ssn, avg(grade) from takes group by ssn having avg( grade) >= all ( select avg( grade ) from takes group by ssn ) Faloutsos CMU SCS 15 -415/615 86
CMU SCS DML - derived relations find the ssn with the highest GPA Query would be easier, if we had a table like: helpful. Table (ssn, gpa): then what? Faloutsos CMU SCS 15 -415/615 87
CMU SCS DML - derived relations select ssn, gpa from helpful. Table where gpa in (select max(gpa) from helpful. Table) Faloutsos CMU SCS 15 -415/615 88
CMU SCS DML - derived relations find the ssn with the highest GPA Query for helpful. Table (ssn, gpa)? Faloutsos CMU SCS 15 -415/615 89
CMU SCS DML - derived relations find the ssn with the highest GPA Query for helpful. Table (ssn, gpa)? select ssn, avg(grade) from takes group by ssn Faloutsos CMU SCS 15 -415/615 90
CMU SCS DML - derived relations find the ssn with the highest GPA helpful. Table(ssn, gpa) select ssn, gpa from helpful. Table where gpa = (select max(gpa) from helpful. Table) Faloutsos CMU SCS 15 -415/615 select ssn, avg(grade) from takes group by ssn 91
CMU SCS DML - derived relations find the ssn with the highest GPA select ssn, gpa from (select ssn, avg(grade) from takes group by ssn) as helpful. Table(ssn, gpa) where gpa in (select max(gpa) from helpful. Table) Faloutsos CMU SCS 15 -415/615 92
CMU SCS Overview - detailed - SQL • DML ✔ – select, from, where, renaming ✔ – set operations ✔ – ordering ✔ – aggregate functions ✔ – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos CMU SCS 15 -415/615 93
CMU SCS Next lecture: • DML ✔ – select, from, where, renaming ✔ – set operations ✔ – ordering ✔ – aggregate functions ✔ – nested subqueries • other parts: DDL, embedded SQL, auth etc Faloutsos CMU SCS 15 -415/615 94
- Cmu comp bio
- Carnegie mellon interdisciplinary
- Carnegie mellon software architecture
- Bomb lab secret phase
- Carnegie mellon software architecture
- Cmu citi training
- Cmu mism
- Randy pausch time management slides
- National robotics initiative
- Carnegie mellon
- 18-213 cmu
- Carnegie mellon vpn
- Carnegie mellon
- Carnegie mellon
- Carnegie mellon
- Carnegie mellon
- Carnegie mellon fat letter
- 15-513 cmu
- Cmu bomb lab
- Mellon serbia iskustva
- Carneigh mellon
- Self-efficacy theory
- Wageworks health equity
- Zebulun krahn
- Water mellon
- Mellon elf
- Mellon elf
- Mellon elf
- Scs desco
- Applied hydrology
- Numero de curva scs
- Spiral circle spiral
- Infiltration indices
- Dioda diac
- Scs curve number
- Curva tiristor
- Color 9132005
- Scs.ryerson.ca harley
- Contoh rangkaian fet
- Scs reasonable person principle
- Scs thyristor
- Scs carleton
- Scs archiver
- Lengkung peralihan
- Scs elogs
- Scs lulu
- Scs methode
- Doc scs
- Skin carotenoid score
- Cmu computer networks
- Triangulation
- Parallel computer architecture cmu
- Jaehoon yu
- Logo université constantine 3
- Http:fsi-st univ-boumerdes-dz
- State univ grant - sug ug
- Umbb inim
- Organigramme de pharmacie
- Fs.univ.umbb
- Dysopyramide
- Université batna 2 mostefa ben boulaid
- Celcat univ nantes
- Université elbayadh
- Prodoc univ nantes
- Univ prof titel
- Moodle tln
- Mail univ ouargla
- Licence spi poitiers
- (univ. caxias do sul) escolha a alternativa que completa
- Lon capa ohio univ
- Ent valenciennes
- Mon ent univ tours
- Snv constantine
- Kostenauflösung beispiel
- Andrew carnegie characteristics
- Andrew carnegie vertical integration
- Was andrew carnegie bad
- Modelo de carnegie
- Dept nmr spectroscopy
- Florida department of agriculture and consumer services
- Finance departments
- Worcester building department
- Andrew carnegie vertical integration
- Andrew carnegie vertical integration
- Dept. name of organization (of affiliation)
- Philanthropy carnegie
- Mn dept of education
- Department of finance and administration
- Horizontal integration rockefeller
- Dept. name of organization (of affiliation)
- Carnegie and rockefeller venn diagram
- Dale carnegie conversation stack
- Employment first ohio
- Affiliation poster
- Carnegie learning