Relational Algebra and SQL Exercises

Slides:



Advertisements
Similar presentations
1 Lecture 5: SQL Schema & Views. 2 Data Definition in SQL So far we have see the Data Manipulation Language, DML Next: Data Definition Language (DDL)
Advertisements

TURKISH STATISTICAL INSTITUTE 1 /34 SQL FUNDEMANTALS (Muscat, Oman)
1 Constraints, Triggers and Active Databases Chapter 9.
SQL Exercises – Part II April 11, 2017.
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications C. Faloutsos & A. Pavlo Lecture#6: Rel. model - SQL part1 (R&G, chapter.
Relational Algebra Tim Kaddoura CS157A. Introduction  Relational query languages are languages for describing queries on a relational database  Three.
 Database is SQL1.mdb ◦ import using MySQL Migration Toolkit 
Relational Algebra and SQL Exercises Dr. Shiyong Lu Department of Computer Science Wayne State University ©copyright 2007, all rights.
Relational Algebra and SQL Exercises
Chapter 6 Additional Relational Operations Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.
1 Exercise 1  Given the following tables: employee (person_name, street, city)‏ works (person_name, company_name, salary)‏ company (company_name, city)‏
CREATE VIEW SYNTAX CREATE VIEW name [(view_col [, view_col …])] AS [WITH CHECK OPTION];
INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS Dr. Adam Anthony Fall 2012.
Employee database: Conceptual Schema in ERD Chapter 3, page 62.
SQL SQL stands for Structured Query Language SQL allows you to access a database SQL is an ANSI standard computer language SQL can execute queries against.
1 Chapter 5 Relational Algebra and SQL. 2 Father of Relational Model Edgar F. Codd ( ) PhD from U. of Michigan, Ann Arbor Received Turing Award.
SQL Operations Aggregate Functions Having Clause Database Access Layer A2 Teacher Up skilling LECTURE 5.
INFS614 - Lecture week 9 1 More on SQL Lecture Week 9 INFS 614, Fall 2008.
Relational algebra SHIRAJ MOHAMED M | MIS 1. Relational algebra Notation SHIRAJ MOHAMED M | MIS 2.
Temple University – CIS Dept. CIS331– Principles of Database Systems V. Megalooikonomou Relational Model – SQL Part I (based on notes by Silberchatz,Korth,
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: Introduction.
Chapter 3 Introduction to SQL Yonsei University 1 st Semester, 2015 Sanghyun Park.
Exercise Normalization Exercise Faculty Member. Social Security Number Name Last Name First Name Middle Name Home Address Street Address or P. O. Box.
Review for Midterm. Problem 2.7 HasPriPhy Patients address name ssn age Doctors exp_year name ssn specialty Pharmacies name address phone PharmCo name.
CSc-340 2b1 Introduction to SQL Chapter 3 [2 of 2] Null Values Aggregate Functions Nested Subqueries Modification of the Database.
Module Coordinator Tan Szu Tak School of Information and Communication Technology, Politeknik Brunei Semester
Lecture 15: Relational Algebra
Using sub query. Sub query A query inside another query.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: Introduction.
Querying a Database - A question or an inquiry (dictionary.com) - WHAT ARE WE ASKING QUESTIONS ABOUT? THE DATA - BY ASKING QUESTIONS OF THE DATA WE OBTAIN?
1 Chapter 5 Relational Algebra and SQL. 2 Father of Relational Model Edgar F. Codd ( ) PhD from U. of Michigan, Ann Arbor Received Turing Award.
MIS 3053 Database Design & Applications The University of Tulsa Professor: Akhilesh Bajaj RM/SQL Lecture 5 © Akhilesh Bajaj, 2000, 2002, 2003, All.
SE305 Database System Technology 23/10/2014 Quiz-2.
INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS Dr. Adam Anthony Fall 2012.
1 CSE 480: Database Systems Lecture 12: SQL (Nested queries and Aggregate functions)
INTRODUCTION TO SQL Database System Concepts. Agenda Overview of the SQL Query Language Data Definition Basic Query Structure Additional Basic Operations.
MIS 3053 Database Design & Applications The University of Tulsa Professor: Akhilesh Bajaj RM/SQL Lecture 3 © Akhilesh Bajaj, 2000, 2002, All Rights.
(C) 2000, The University of Michigan 1 Database Application Design Handout #5 February 4, 2000.
COMP3030 Database Management System Final Review
CS 405G: Introduction to Database Systems Instructor: Jinze Liu Fall 2009.
Query Lab CSC 240 Blum1. Log on to PMA (PHPMyAdmin) and click on the Northwind database CSC 240 Blum2.
ORT Braude, CSE 61309, ©2004 Gary Schloss Exam Question #1: ER, RA & SQL Consider a DB schema with the following relations: - Student (s#, sname) - Professor.
1 SY306 Web and Databases for Cyber Operations Set #13: SQL SELECT Grouping and sub-queries.
1 Chapter 5 Relational Algebra and SQL. 2 Father of Relational Model Edgar F. Codd ( ) PhD from U. of Michigan, Ann Arbor Received Turing Award.
MIS 3053 Database Design & Applications The University of Tulsa Professor: Akhilesh Bajaj RM/SQL Lecture 4 © Akhilesh Bajaj, 2000, 2002, 2004, All.
Drill Consider the following tables with the following fields: Student: FName, LName, StudentID, Age, Yr, Course Grades: ID, P1, P2, P3 1.Display the.
CSCI 4333 Database Design and Implementation – Exercise (1) Xiang Lian The University of Texas Rio Grande Valley Edinburg, TX 78539
1 CSE 480: Database Systems Lecture 16: Relational Algebra.
Access Test Solutions Fall 2014 Questions 7 and 8 Karl Lieberherr.
1 Schema for Student Registration System Student Student (Id, Name, Addr, Status) Professor Professor (Id, Name, DeptId) Course Course (DeptId, CrsCode,
SQL: Interactive Queries (2) Prof. Weining Zhang Cs.utsa.edu.
Chapter 1. Getting Started IST 210: Organization of Data IST2101.
Retrieve the names of all senior students majoring in 'COSC' (computer science). SELECT Name FROM STUDENT WHERE Major='COSC'
1 Relational Algebra & SQL Query Formulation Exercise.
Chapter 3 Introduction to SQL
CS 480: Database Systems Lecture 12 February 11, 2013.
COP Introduction to Database Structures
Introduction to SQL.
Chapter 3 Introduction to SQL(3)
Relational Algebra and SQL
Relational Algebra and SQL
Relational Schemas Classroom (building, room-number, capacity) Department (dept-name, building, budget) Course (course-id, title, dept-name, credits) Instructor.
CS 405G: Introduction to Database Systems
Relational Algebra and SQL Exercises
Relational Algebra and SQL Examples
TEST CORRECTION PROCEDURES
Section 4 - Sorting/Functions
My Plan for Success Student Name.
CSCI 4333 Database Design and Implementation – Exercise (1)
Presentation transcript:

Relational Algebra and SQL Exercises

Database schema for the exercises Professor(ssn, profname, status, salary) Course(crscode, crsname, credits) Taught(crscode, semester, ssn) Assumption: (1) Each course has only one instructor in each semester; (2) all professors have different salaries; (3) all professors have different names; (4) all courses have different names; (5) status can take values from “Full”, “Associate”, and “Assistant”.

Query 1 Return those professors who have taught ‘csc6710’ but never ‘csc7710’.

Relational Algebra Solution ssn(crscode=‘csc6710’(Taught))-ssn(crscode=‘csc7710’(Taught))

SQL Solution (SELECT ssn From Taught Where crscode = ‘CSC6710’) EXCEPT

Query 2 Return those professors who have taught both ‘csc6710’ and ‘csc7710’.

Relational Algebra Solution ssn(crscode=‘csc6710’  crscode=‘csc7710’ (Taught), wrong! ssn(crscode=‘csc6710’(Taught))  ssn(crscode=‘csc7710’(Taught)), correct!

SQL Solution SELECT T1.ssn From Taught T1, Taught T2, Where T1.crscode = ‘CSC6710’ AND T2.crscode=‘CSC7710’ AND T1.ssn=T2.ssn

Query 3 Return those professors who have never taught ‘csc7710’.

Relational Algebra Solution ssn(crscode<>‘csc7710’(Taught)), wrong answer! ssn(Professor)-ssn(crscode=‘csc7710’(Taught)), correct answer!

SQL Solution (SELECT ssn From Professor) EXCEPT From Taught T Where T.crscode = ‘CSC7710’)

Query 4 Return those professors who taught ‘CSC6710’ and ‘CSC7710” in the same semester

Relational Algebra Solution ssn(crscode1=‘csc6710’(Taught[crscode1, ssn, semester])  crscode2=‘csc7710’(Taught[crscode2, ssn, semester]))

SQL Solution SELECT T1.ssn From Taught T1, Taught T2, Where T1.crscode = ‘CSC6710’ AND T2.crscode=‘CSC7710’ AND T1.ssn=T2.ssn AND T1.semester=T2.semester

Query 5 Return those professors who taught ‘CSC6710’ or ‘CSC7710” but not both.

Relational Algebra Solution ssn(crscode<>‘csc7710’  crscode=‘csc7710’(Taught))-(ssn(crscode=‘csc6710’(Taught))  ssn(crscode=‘csc7710’(Taught)))

SQL Solution (SELECT ssn FROM Taught T WHERE T.crscode=‘CSC6710’ OR T.crscode=‘CSC7710’) Except (SELECT T1.ssn From Taught T1, Taught T2, Where T1.crscode = ‘CSC6710’) AND T2.crscode=‘CSC7710’ AND T1.ssn=T2.ssn)

Query 6 Return those courses that have never been taught.

Relational Algebra Solution crscode(Course)-crscode(Taught)

SQL Solution (SELECT crscode FROM Course) EXCEPT FROM TAUGHT )

Query 7 Return those courses that have been taught at least in two semesters.

Relational Algebra Solution crscode( semester1 <> semester2( Taught[crscode, ssn1, semester1]  Taught[crscode, ssn2, semester2]))

SQL Solution SELECT T1.crscode FROM Taught T1, Taught T2 WHERE T1.crscode=T2.crscode AND T1.semester <> T2.semester

Query 8 Return those courses that have been taught at least in 10 semesters.

SQL Solution SELECT crscode FROM Taught GROUP BY crscode HAVING COUNT(*) >= 10

Query 9 Return those courses that have been taught by at least 5 different professors.

SQL Solution SELECT crscode FROM (SELECT DISTINCT crscode, ssn FROM TAUGHT) GROUP BY crscode HAVING COUNT(*) >= 5

Query 10 Return the names of professors who ever taught ‘CSC6710’.

Relational Algebra Solution profname(crscode=‘csc6710’(Taught) Professor)

SQL Solution SELECT P.profname FROM Professor P, Taught T WHERE P.ssn = T.ssn AND T.crscode = ‘CSC6710’

Query 11 Return the names of full professors who ever taught ‘CSC6710’.

Relational Algebra Solution profname(crscode=‘csc6710’(Taught) status=‘full’(Professor))

SQL Solution SELECT P.profname FROM Professor P, Taught T WHERE P.status = ‘full’ AND P.ssn = T.ssn AND T.crscode = ‘CSC6710’

Query 12 Return the names of full professors who ever taught more than two courses in one semester.

SQL Solution SELECT P.profname FROM Professor P WHERE ssn IN( SELECT ssn FROM Taught GROUP BY ssn, semester HAVING COUNT(*) > 2 )

Query 13 Delete those professors who never taught a course.

SQL Solution DELETE FROM Professor WHERE ssn NOT IN (SELECT ssn FROM Taught )

Query 14 Change all the credits to 4 for those courses that are taught in f2006 semester.

SQL Solution UPDATE Course SET credits = 4 WHERE crscode IN ( SELECT crscode FROM Taught WHERE semester = ‘f2006’ )

Query 15 Return the names of the professors who have taught more than 30 credits of courses.

SQL Solution SELECT profname FROM Professor WHERE ssn IN ( SELECT T.ssn FROM Taught T, Course C WHERE T.crscode = C.crscode GROUP BY T.ssn HAVING SUM(C.credits) > 30 )

Query 16 Return the name(s) of the professor(s) who taught the most number of courses in S2006.

SQL Solution SELECT profname FROM Professor WHERE ssn IN( SELECT ssn FROM Taught WHERE semester = ‘S2006’ GROUP BY ssn HAVING COUNT(*) = (SELECT MAX(Num) FROM (SELECT ssn, COUNT(*) as Num FROM Taught GROUP BY ssn) )

Query 17 List all the course names that professor ‘Smith” taught in Fall of 2007.

Relational Algebra Solution crsname(profname=‘Smith’(Professor) semester=‘f2007’(Taught) Course)

SQL Solution SELECT crsname FROM Professor P, Taught T, Course C WHERE P.profname = ‘Smith’ AND P.ssn = T.ssn AND T.semester = ‘F2007’ AND T.crscode = C.crscode

Query 18 In chronological order, list the number of courses that the professor with ssn ssn = 123456789 taught in each semester.

SQL Solution SELECT semester, COUNT(*) FROM Taught WHERE ssn = ‘123456789’ GROUP BY semester ORDER BY semester ASC

Query 19 In alphabetical order of the names of professors, list the name of each professor and the total number of courses she/he has taught.

SQL Solution SELECT P.profname, COUNT(*) FROM Professor P, Taught T WHERE P.ssn = T.ssn GROUP BY P.ssn, P.profname ORDER BY P.profname ASC

Query 20 Delete those professors who taught less than 10 courses.

SQL Solution DELETE FROM Professor WHERE ssn IN( SELECT ssn FROM Taught GROUP BY ssn HAVING COUNT(*) < 10 )

Query 21 Delete those professors who taught less than 40 credits.

SQL Solution DELETE FROM Professor WHERE ssn IN( SELECT T.ssn FROM Taught T, Course C WHERE T.crscode = C.crscode GROUP BY ssn HAVING SUM(C.credits) < 40 )

Query 22 List those professors who have not taught any course in the past three semesters (F2006, W2007, F2007).

SQL Solution SELECT * FROM Professor P WHERE NOT EXISTS( FROM Taught WHERE P.ssn = T.ssn AND (T.semester = ‘F2006’ OR T.semester = ‘W2007’ OR T.semester=‘F2007’)) )

Query 23 List the names of those courses that professor Smith have never taught.

Relational Algebra Solution crsname(Course)-crsname(profname=‘Smith’(Professor) (Taught) Course)

SQL Solution SELECT crsname FROM Course C WHERE NOT EXISTS SELECT * FROM Professor P, Taught T WHERE P.profname=‘Smith’ AND P.ssn = T.ssn AND T.crscode = C.crscode )

Query 24 Return those courses that have been taught by all professors.

Relational Algebra Solution crscode, ssn(Taught)/ ssn(Professor)

SQL Solution SELECT crscode FROM Taught T1 WHERE NOT EXISTS( (SELECT ssn FROM Professor) EXCEPT FROM Taught T2 WHERE T2.crscode = T1.crscode) )

Query 25 Return those courses that have been taught in all semesters.

Relational Algebra Solution crscode, semester(Taught)/ semester(Taught)

SQL Solution SELECT crscode FROM Taught T1 WHERE NOT EXISTS( (SELECT semester FROM Taught) EXCEPT FROM Taught T2 WHERE T2.crscode = T1.crscode) )

Query 26 Return those courses that have been taught ONLY by assisitant professors.

Relational Algebra Solution crscode(Course) - crscode (status‘Assistant’(Professor) Taught)

SQL Solution SELECT crscode FROM Course C WHERE c.crscode NOT IN( FROM Taught T, Professor P WHERE T.ssn = P.ssn AND P.status=‘Junior’ )

Query 27 Return the professors who taught the largest number of courses in Fall 2001.

SQL Solution SELECT * FROM Professor P1 WHERE Not EXISTS ( SELECT * (SELECT COUNT(*) FROM Taught WHERE Taught.ssn = P2.ssn AND Taught.semester=‘F2001’) > WHERE Taught.ssn = P1.ssn AND Taught.semester=‘F2001’) )

Query 28 Return the professor who earns the highest salary.

SQL Solution SELECT * FROM Professor WHERE salary = ( (SELECT MAX(salary) FROM Professor P )

Query 29 Return the professor who earns the second highest salary.

SQL Solution SELECT * FROM Professor P1 WHERE 1 = ( (SELECT COUNT(*) WHERE P2.salary > P1.salary ) Problem: return the professor who earns the 10th highest salary.