1 / 15

Review Session

Review Session. Monday, Oct 8 Shipra Agrawal. Announcements. New Gradiance assignment deadline Wednesday, Oct 10 Please read FAQs for assignments. Select-From-Where Statements. SELECT desired attributes FROM one or more tables WHERE condition about tuples of the tables. Exercise.

liang
Download Presentation

Review Session

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Review Session Monday, Oct 8 Shipra Agrawal

  2. Announcements • New Gradiance assignment deadline Wednesday, Oct 10 • Please read FAQs for assignments

  3. Select-From-Where Statements SELECT desired attributes FROM one or more tables WHERE condition about tuples of the tables

  4. Exercise • Consider database Product(name, price, category) • Output • each product name with its price in cents • Also mark the products with price >10$ and category=‘beverage’ as ‘expensive’ and others as ‘reasonable’

  5. Solution • SELECT name, price*100, ‘expensive’ FROM Product WHERE price >10 AND category = ‘beverage’ • UNION • SELECT name, price*100, ‘reasonable’ FROM Product WHERE price <=10 OR category <>‘beverage’

  6. Multirelation queries • Consider database schema employee( employee-name, street, city) works( employee-name, company-name, salary) company( company-name, city) manages( employee-name, manager-name)

  7. Exercise 1 (3-way join) • Find all employees who live in the same cities as the companies for which they work SELECT employee-name FROM employee, works WHERE employee.employee-name = works.employee-name AND works.company-name = company.company-name AND employee.city = company.city

  8. Exercise 2 • Find all employees in the database who live on the same city and streets as their manager. • SELECT e1.employee-name • FROM employee e1,employee e2, manages • WHERE e1.employee-name = manages.employee-name AND e2. employee-name = manages.manager-name AND e1.street = e2.street AND e1.city = e2.city

  9. Exercise 3 • Find all employees who earn more than average salary of all employees of their company SELECT employee-name FROM works w1, (SELECT AVG(salary) AS avg-salary, company-name FROM works GROUP BY company-name)w2 WHERE w1.company-name = w2.company-name AND w1.salary>w2.avg-salary

  10. Exercise 4 • Find those companies whose employees earn a higher salary, on average than the average salary at First Bank Corporation. SELECT company-name FROM works GROUP BY company-name HAVING AVG(salary)> (SELECT AVG(salary) FROM works GROUP BY company-name HAVING company-name = ‘First Bank Corporation’)

  11. Exercise 5 • Assume that the companies may be located in several cities. Find all the companies located in every city in which Small Bank corporation is located. SELECT company-name FROM( SELECT c1.company-name,c1.city FROM company c1, company c2 WHERE c1.city=c2.city AND c2.company-name = ‘Small Bank Corporation’ ) R GROUP BY company-name HAVING COUNT(DISTINCT city) = (SELECT COUNT(DISTINCT city) FROM company GROUP BY company.company-name HAVING company-name = ‘Small Bank Corporation’)

  12. Exercise 6 • Find all employees who earn more than each employee of ‘Small Bank Corporation’ Select employee-name From employee Where employee-name NOT IN ( SELECT employee-name FROM worksw1,works w2 WHERE w1.salary < w2.salary AND w2.company-name = ‘Small Bank Corporation’ )

  13. Exercise 6 (contd..) • Find all employees who earn more than each employee of ‘Small Bank Corporation’ Select employee-name From employee Where name NOT IN ( SELECT employee-name FROM worksw1, (SELECT salary FROM works WHERE company-name=‘Small Bank Corporation’)w2 WHERE w1.salary < w2.salary )

  14. Exercise 6 • Find all employees who earn more than each employee of ‘Small Bank Corporation’ Select employee-name From works Where salary > ( SELECT MAX(salary) FROM works GROUP BY company-name HAVING company-name = ‘Small Bank Corporation’ )

  15. Questions?

More Related