SQL: Simple Analysis: Immanuel Trummer
SQL: Simple Analysis: Immanuel Trummer
Immanuel Trummer
[email protected]
www.itrummer.org
Database Management
Systems (DBMS)
Application 1 Connections, Security, Utilities, ...
Application 2
DBMS Interface Query Processor
Query Parser Query Rewriter
Storage Manager
Data Access Buffer Manager
SELECT Students.Sname
FROM Students
JOIN Enrollment ON (Students.sid = Enrollment.sid)
JOIN Courses ON (Enrollment.cid = Courses.cid)
WHERE Courses.Cname = 'CS4320'
SELECT Students.Sname
FROM Students
JOIN Enrollment ON (Students.sid = Enrollment.sid)
JOIN Courses ON (Enrollment.cid = Courses.cid)
WHERE Courses.Cname = 'CS4320'
... pair that with courses
where Cid (i.e., course ID) matches
the one in enrollment ...
Slides by Immanuel Trummer, Cornell University
Example Query
Database Relations:
Students(Sid, Sname)
Enrollment(Sid, Cid)
Courses(Cid, Cname)
SELECT Students.Sname
FROM Students
JOIN Enrollment ON (Students.sid = Enrollment.sid)
JOIN Courses ON (Enrollment.cid = Courses.cid)
WHERE Courses.Cname = 'CS4320'
... filter to rows where Cname
(course name) is 'CS4320' ...
Slides by Immanuel Trummer, Cornell University
Example Query
Database Relations:
Students(Sid, Sname)
Enrollment(Sid, Cid)
Courses(Cid, Cname)
SELECT S.Sname
FROM Students S
JOIN Enrollment E ON (S.sid = E.sid)
JOIN Courses C ON (E.cid = C.cid)
WHERE C.Cname = 'CS4320'
SELECT Count(*)
FROM Students
JOIN Enrollment ON (Students.sid = Enrollment.sid)
JOIN Courses ON (Enrollment.cid = Courses.cid)
WHERE Courses.Cname = 'CS4320'
SELECT Count(*)
FROM Students
JOIN Enrollment ON (Students.sid = Enrollment.sid)
JOIN Courses ON (Enrollment.cid = Courses.cid)
WHERE Courses.Cname = 'CS4320'
... pair that with courses
where Cid (i.e., course ID) matches
the one in enrollment ...
Slides by Immanuel Trummer, Cornell University
Aggregation Example
Database Relations:
Students(Sid, Sname)
Enrollment(Sid, Cid)
Courses(Cid, Cname)
SELECT Count(*)
FROM Students
JOIN Enrollment ON (Students.sid = Enrollment.sid)
JOIN Courses ON (Enrollment.cid = Courses.cid)
WHERE Courses.Cname = 'CS4320'
... filter to rows where Cname
(course name) is 'CS4320' ...
Slides by Immanuel Trummer, Cornell University
Aggregation Example
Database Relations:
Students(Sid, Sname)
Enrollment(Sid, Cid)
Courses(Cid, Cname)