39
Slide 1 Chapter 2 Chapter 2 Introduction to Structured Introduction to Structured Query Language (SQL) Query Language (SQL)

Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Embed Size (px)

Citation preview

Page 1: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 1

Chapter 2Chapter 2

Introduction to Introduction to Structured Query Structured Query Language (SQL)Language (SQL)

Page 2: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 2

ContentsContents

A. Storage Management ProblemB. Solution

Page 3: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 3

Due to manage the product in storage, Algo company needs a database which enables accessibility efficiently.

In their system, product has following information: Product ID Product name Product type Quantity which is currently available in storage Product Price Manufacturer

Each manufacturer has its ID, name and address.

Each manufacturer produces one or more products.

For example data of some products, prefer to next slide.

A. Storage Management A. Storage Management ProblemProblem

Page 4: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 4

Example 1: Product ID: PRO1 Product name: 512 MB DDRAM Product type: RAM Quantity: 10 Price: 30 $ Manufacturer ID: YUK Manufacturer name: Yuki Manufacturer address: Tokyo

Example 2: Product ID: PRO2 Product name: 1 GB

DDRAM Product type: RAM Quantity: 10 Price: 40 $ Manufacturer ID: YUK Manufacturer name:

Yuki Manufacturer address:

Tokyo

Page 5: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 5

• Display information of product name and quantity of all products.

• Display all information of all products. • Display product type in product table. However,

this result must be unique.• Display all information of all products. Present

result sorted by product name in descending order and then quantity in ascending order.

• Suppose there are some products which have type is RAM. Display information of all products which have product type is RAM.

• Suppose there are some products which have type is RAM. Display information of all products which have product type is RAM and quantity greater than 20.

Page 6: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 6

• Suppose there are some products which have type is RAM. Display information of all products which have product type is RAM or has quantity greater than 5.

• Suppose there are some products have name is “BOXDG” and 256MB DDRAM. Display information of all products which its names must contain in following set: [“BOXDG”, “256MB DDRAM”].

• Suppose there are some products have name is “BOXDG” and 256MB DDRAM. Display information of product which its names must NOT contain in following set: [“BOXDG”,“256MB DDRAM”].

• Display information of all products. Price of these product must be greater than or equals 30 and less than or equals 100.

• Suppose there are some products have name start with ‘GA’. Display information of product which its names must be started with ‘GA’ letters.

Page 7: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 7

• Suppose there are some products has name includes “G3” letters Display information of product. These product names must include ‘G3’ letters.

• Display number of all products in storage.• Display sum of quantity of all products.• Display Average of price of all products.• Display Maximum price of all products.• Display Minimum price of all products.• Display value of each product in storage. The

function of value is:

VALUE = quantity * price

Page 8: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 8

• Display information of product name and product type. The format of this result is:

“PRODUCT_NAME” is "PRODUCT_TYPE“• There are currently has two TYPE of product

includes: Main board and RAM. Display the sum of quantity for each TYPE of product.

• Display product type which has Sum of quantity greater than 30.

• Suppose there are some products which were produced by Shiro manufacturer. Display name and manufacturer name of the product which its manufacturer is Shiro.

• Suppose there are some products which were produced by Shiro manufacturer and Sanno manufacturer. Display name of product which its manufacturer is Yuki and Sanno.

Page 9: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 9

B. SolutionB. Solution

1. Logical Design2. Physical Design3. Creating DB and populating data into the

DB4. SQL Statement Solutions

Page 10: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 10

1. Logical Design1. Logical Design

Following the problem description and data examples, we have logical design of Product.

Page 11: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 11

2. Physical Design2. Physical Design

Page 12: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 12

Creating DB and populating Creating DB and populating data into the DBdata into the DB

• This is an exercise for you. • The following are sample data.

Page 13: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 13

4. SQL Statement Solutions4. SQL Statement Solutions

4.1. Display PRODUCT NAME and QUANTITY.4.2. Display all column in PRODUCT table.4.3. Display unique PRODUCT TYPE.4.4. Display PRODUCT NAME in descending order, QUANTITY in

ascending order.4.5. Display all products are RAM.4.6. Display products are RAM and have quantity greater than

20.4.7. Display products are RAM or have quantity greater than 5.4.8. Display product has name is in set [“BOXDG”, “256MB

DDRAM”].4.9. Display product has name is NOT in set [“BOXDG”, “256MB

DDRAM”].4.10. Display product has 30 <= price <=100.4.11. Display product has name starts with “GA” letter.4.12. Display product has name includes “G3” letter.

Page 14: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 14

4. SQL Statement Solutions4. SQL Statement Solutions

4.13. Display number of rows in PRODUCT table.4.14. Display SUM of quantity.4.15. Display AVERAGE of price.4.16. Display MAXIMUM of price.4.17. Display MINIMUM of price .4.18. Display Value of each product.4.19. Display PRODUCT NAME, PRODUCT TYPE in format.4.20. Display SUM of quantity of each product type.4.21. Display SUM of quantity of each product type and Sum is

greater than 30.4.22. Display product of Shiro manufacturer.4.23. Display product of Yuki and Sanno manufacturers.

Page 15: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 15

4.1. Display PRODUCT NAME and 4.1. Display PRODUCT NAME and QUANTITYQUANTITY

SELECT Name, QuantityFROM PRODUCTS;

Page 16: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 16

4.2. Display all column in PRODUCT 4.2. Display all column in PRODUCT tabletable

Selecting All Columns: The Asterisk (*) Keyword

SELECT * FROM PRODUCTS;

Page 17: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 17

4.3. Display unique PRODUCT TYPE4.3. Display unique PRODUCT TYPE

SELECT DISTINCT Type FROM PRODUCTS;

Page 18: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 18

4.4. Display PRODUCT NAME in 4.4. Display PRODUCT NAME in descending order, QUANTITY in descending order, QUANTITY in ascending orderascending order

Sort Order: Ascending and DescendingSELECT * FROM PRODUCTSORDER BY Name DESC, Quantity ASC;

Page 19: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 19

4.5. Display all products are RAM4.5. Display all products are RAM

SELECT * FROM PRODUCTS WHERE Type = 'RAM‘;

Page 20: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 20

4.6. Display products are RAM 4.6. Display products are RAM andand have quantity greater than 20have quantity greater than 20

SELECT * FROM PRODUCTSWHERE Type = 'RAM‘ AND Quantity > 20;

Page 21: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 21

4.7. Display products are RAM 4.7. Display products are RAM oror have quantity greater than 5have quantity greater than 5

SELECT * FROM PRODUCTS WHERE Type = 'RAM‘ OR Quantity > 5;

Page 22: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 22

4.8. Display product has name is in 4.8. Display product has name is in set [“BOXDG”, “256MB DDRAM”]set [“BOXDG”, “256MB DDRAM”]

SELECT *FROM PRODUCTSWHERE Name IN ('BOXDG‘, '256MB DDRAM');

Page 23: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 23

4.9. Display product has name is 4.9. Display product has name is NOT in set [“BOXDG”, “256MB NOT in set [“BOXDG”, “256MB DDRAM”]DDRAM”]

SELECT *FROM PRODUCTSWHERE Name NOT IN ('BOXDG‘,'256MB

DDRAM');

Page 24: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 24

4.10. Display product has 30 <= 4.10. Display product has 30 <= price <=100price <=100

Solution 1: SELECT * FROM PRODUCTSWHERE Price BETWEEN 30 AND 100;

Solution 2: SELECT * FROM PRODUCTSWHERE Price >= 30 AND Price <= 100;

Page 25: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 25

4.11. Display product has name 4.11. Display product has name starts with “GA” letterstarts with “GA” letter

SELECT *FROM PRODUCTSWHERE Name LIKE 'GA%';

Page 26: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 26

4.12. Display product has name 4.12. Display product has name includes “G3” letterincludes “G3” letter

SELECT *FROM PRODUCTSWHERE Name LIKE '%G3%';

Page 27: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 27

4.13. Display number of rows in 4.13. Display number of rows in PRODUCT tablePRODUCT table

SELECT COUNT(*) as numRows FROM PRODUCTS;

Page 28: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 28

4.14. Display SUM of quantity4.14. Display SUM of quantity

SELECT SUM(Quantity) as sumQuantity FROM PRODUCTS;

Page 29: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 29

4.15. Display AVERAGE of price4.15. Display AVERAGE of price

SELECT AVG(Price) as averagePriceFROM PRODUCTS;

Page 30: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 30

4.16. Display MAXIMUM of price4.16. Display MAXIMUM of price

SELECT MAX(Price) as maxPriceFROM PRODUCTS;

Page 31: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 31

4.17. Display MINIMUM of price4.17. Display MINIMUM of price

SELECT MIN(Price) as minPriceFROM PRODUCTS;

Page 32: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 32

4.18. Display Value of each product4.18. Display Value of each product

Note: VALUE = quantity * priceSELECT Name, Quantity * Price as ValueFROM PRODUCTS;

Page 33: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 33

4.19. Display PRODUCT NAME, 4.19. Display PRODUCT NAME, PRODUCT TYPE in formatPRODUCT TYPE in format

SELECT Name + ' is ' + Type as detailNameFROM PRODUCTS;

Page 34: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 34

4.20. Display SUM of quantity of 4.20. Display SUM of quantity of each PRODUCT TYPEeach PRODUCT TYPE

SELECT Type, SUM(Quantity) as totalQuantityFROM PRODUCTSGROUP BY Type;

Page 35: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 35

4.21. Display SUM of quantity of 4.21. Display SUM of quantity of each PRODUCT TYPE and Sum is each PRODUCT TYPE and Sum is greater than 30greater than 30

SELECT Type, SUM(Quantity) as totalQuantity

FROM PRODUCTS GROUP BY TypeHAVING SUM(Quantity) > 30;

Page 36: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 36

4.22. Display product of Shiro 4.22. Display product of Shiro manufacturermanufacturer

SELECT Products.Name as ProductName, Manufacturers.Name as

ManufacturerNameFROM PRODUCTS, MANUFACTURERSWHERE Products.Man_ID =

Manufacturers.Man_ID AND Manufacturers.Name = 'Shiro‘;

Page 37: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 37

4.23. Display product of Yuki and 4.23. Display product of Yuki and Sanno manufacturersSanno manufacturers

Solution 1:

SELECT Name

FROM PRODUCTS

WHERE Man_ID IN (SELECT Man_ID

FROM MANUFACTURERS

WHERE Name IN ('Sanno', 'Yuki'));

Solution 2: SELECT P.Name FROM PRODUCTS P, MANUFACTURERS M WHERE P.Man_ID = M.Man_ID AND M.Name IN

('Sanno', 'Yuki');

Page 38: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 38

References

Database Processing – Chapter 2Fundamentals, Design and Implementation

David M. Kroenke

Page 39: Slide 1 Chapter 2 Introduction to Structured Query Language (SQL)

Slide 39