4 database queries

54
© Jalal Kawash 2010 4 Database Queries Peeking into Computer Science

Upload: xyla-cantu

Post on 01-Jan-2016

37 views

Category:

Documents


0 download

DESCRIPTION

4 Database Queries. Peeking into Computer Science. Mandatory: Chapter 4 – Sections 4.6 &4.7. Reading Assignment. Join Queries. By the end of this section, you will be able to: Formulate queries on multiple tables Understand how natural joins work Determine the result of a multi-table query. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 4 Database Queries

© Jalal Kawash 2010

4 Database QueriesPeeking into Computer Science

Page 2: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Reading Assignment

Mandatory: Chapter 4 – Sections 4.6 &4.7

2

Page 3: 4 Database Queries

Join Queries

3

Page 4: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Objectives

By the end of this section, you will be able to:

1. Formulate queries on multiple tables2. Understand how natural joins work3. Determine the result of a multi-table

query

Page 5: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Set Multiplication

Recall: set multiplication ‘determines all possible combinations of elements from each set’.

In actual databases not all combinations may occur.◦E.g., an employee typically is just a member of

one department not all departments.The database implementation of a set

multiplication is ‘join’.

Page 6: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Join Example

Page 7: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Query For Join Example

SELECT *FROM Employees, Departments;

Page 8: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Result Of The Query

James Tam is only in Department 1 but the query yields all possible combinations (whether they actually occur in the data or not)

Page 9: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

PROJECT x DEPARTMENT9

Page 10: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

QBE10

Page 11: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Join Of Actual Cases From The Database

In the previous example this would only include the cases where the department number of the Employees table matched the department number of the Departments table.◦(It should exclude non-existent combinations of

employees and departments.

Page 12: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: MS-Access SQL Query

SELECT Departments.*, Employees.*FROM Departments INNER JOIN Employees

ON ◦Departments.[Department Number] =

Employees.[Department number];

Page 13: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer ScienceJT’s Extra: Query Results

Results

Employees table

Page 14: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Where Dnumbers Match14

Page 15: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Natural Join15

Page 16: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Natural Join Condition16

Page 17: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Natural Join Result17

Page 18: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Natural Join Result18

Page 19: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Default QBE Joins in ACCESS

Can be also done explicitly

19

Page 20: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

QBE with Explicit Join20

Page 21: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Effect Of QBE With Explicit Join

QBE

Query criteria

Query result

Page 22: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Join Example22

Retrieve the address of each employee of the IT department

Page 23: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Determining the Result of a Join Query

23

Page 24: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Reduce the size of the joined tables

24

Page 25: 4 Database Queries

© Jalal Kawash 2009Peeking into Computer Science 25

Page 26: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Multiply the resulting relations and project

26

Page 27: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Apply the join condition27

Page 28: 4 Database Queries

Aggregate Functions, Ordering, & Grouping

28

Page 29: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Objectives

By the end of this section, you will be able to:

1. Use aggregate functions2. Group the calculations of aggregate

functions3. Formulate SQL queries with HAVING and

ORDER BY clauses

29

Page 30: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Basic Parts Of An SQL Query

◦SELECT: Specifies the fields/columns shown in the query results e.g., SIN field.

◦FROM: Lists the tables from which the data is to be selected e.g., look in the Employees table.

◦WHERE: Provides the conditions to determine if rows/records are shown by the query.

◦ORDER BY: Specifies the order in which rows are to be returned by the query.

Page 31: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer ScienceJT’s Extra: ‘Order By’ (Data and Query)

Original table

QBE

SELECT Employees.Name, Employees.SalaryFROM EmployeesORDER BY Employees.Salary;

SQL

Page 32: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Query Results

Page 33: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Order By Clause

Orders the result of a query

33

Page 34: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Descending Order34

Page 35: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Order By Clause35

Page 36: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Aggregate Functions1

SumAverageMinimumMaximumCount

36

1: JT’s extra, Aggregate functions allow you to perform calculations on multiple rows of data, but will only return a single value in the response.

Page 37: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer ScienceJT’s Extra: SUM

Original table

QBE SQL

SELECT Sum(salary) AS Expr1FROM Employees;

Query result

Page 38: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Sum38

Page 39: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

COUNT39

Page 40: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

AVG40

Page 41: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Exercise

Retrieve the min salary of female employees who work for the Finance department

Use function Min()

41

Page 42: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

MIN42

Page 43: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Exercise

Retrieve the max salary of employees who work on projects located in Toronto

Use function Max()

43

Page 44: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

MAX44

Page 45: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

Grouping Calculations

How to find the sum of salary per department

SQL has the GROUP BY clauseGroups calculations of an aggregate

function

45

Page 46: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer ScienceJT’s Extra: Group By (Small Example)

Employees table

SELECT department_number, sum(salary) AS DEPT_TOTAL

FROM EmployeesGROUP BY department_number;

SQL

QBE

Query result

Page 47: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

GROUP BY47

Page 48: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

HAVING Clause

To show only some of the groups

WHERE filters tuples

HAVING filters groups

48

Page 49: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Group By (All Departments)

Employees table

SELECT Department_number, COUNT(*) as DepartmentEmpTotalsFROM EmployeesGROUP BY Department_number;

SQL

Query result

Page 50: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

JT’s Extra: Having Clause (Bigger Dept.’s)

Employees table

Query result

SELECT Department_number, COUNT(*) as DepartmentEmpTotalsFROM EmployeesGROUP BY Department_numberHAVING COUNT(*)>1

SQL

Page 51: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

HAVING Clause51

Page 52: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

HAVING Clause52

Page 53: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

HAVING Clause53

Page 54: 4 Database Queries

© Jalal Kawash 2010Peeking into Computer Science

EXISTS – Optional Reading54