1 of 36

  • Database Management Systems

Prof . R A Tela

1

2 of 36

  • Creating a Database

2

Step 1. Create a Database Company

CREATE DATABASE <DATABSE NAME>;

Create database company;

Step 2. USE Database

USE <DATABSE NAME>;

use company;

Step 2. SHOW TABLES

show tables;

3 of 36

3

Step 1. Create a TABLE

CREATE TABLE <TABLE NAME> (

<ATTRIBUTE LIST> <DATA TYPE> <CONSTRAINT>,

<ATTR2> <DATA TYPE>,<CONSTRAINT>);

Attribute

Data Type

Constraints

Pname

Varchar

Primary Key

Price

Float

Not Null

Category

Varchar

Gadget, Photography, Household

Manufacturer

Varchar

Creating a Table

4 of 36

VIPS: Oct - Dec 2019

4

Creating a Table

create table product(Pname varchar(20) primary key, price float NOT NULL,category varchar(20) CHECK(category in("Gadget","Photography","Household")), manufacturer varchar(20));

Attribute

Data Type

Constraints

Pname

Varchar

Primary Key

Price

Float

Not Null

Category

Varchar

Gadget, Photography, Household

Manufacturer

Varchar

5 of 36

5

Show tables;

Desc <tablename>;

Show Existing Tables

Describe structure of a Existing Table

Desc product;

6 of 36

6

INSERT INTO R(A1,…., An) VALUES (v1,…., vn)

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

Insert records in Table

insert into product(Pname,price,category,manufacturer) values("Gizmo",19.99, "Gadgets", "GizmoWorks");

or

insert into product values("Gizmo",19.99, "Gadgets", "GizmoWorks");

insert into product values("Powergizmo",29.99, "Gadgets", "GizmoWorks");

insert into product values("SingleTouch",149.99, "Photography", "Canon");

insert into product values("MultiTouch",203.99, "Household", "Hitachi");

7 of 36

  • Select Query

7

SELECT *�FROM product;

Product

“selection”

SELECT <attributes>

FROM <one or more relations>

WHERE <conditions>

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

8 of 36

  • Select Query using WHERE

8

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT Pname, Price�FROM Product

Product

“projection”

PName

Price

Gizmo

19.99

Powergizmo

29.99

SingleTouch

149.99

MultiTouch

203.99

9 of 36

  • Select Query using WHERE

9

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT *�FROM Product�WHERE category=‘Gadgets’;

Product

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

“selection” with

where

10 of 36

  • Select Query using WHERE

10

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT PName, Price, Manufacturer�FROM Product�WHERE Price > 100;

Product

PName

Price

Manufacturer

SingleTouch

149.99

Canon

MultiTouch

203.99

Hitachi

“selection” and

“projection” with

where

11 of 36

  • Select Query using WHERE

11

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT PName, Price, Manufacturer�FROM Product�WHERE Price > 100 and manufacturer =“Canon”;

Product

PName

Price

Manufacturer

SingleTouch

149.99

Canon

Combine two or more

conditions Using

and

12 of 36

  • Select Query using WHERE

12

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT PName, Price, Manufacturer�FROM Product�WHERE manufacturer =“Hitachi” or manufacturer = “Canon”;

Product

Combine two or more

conditions Using

or

PName

Price

Manufacturer

SingleTouch

149.99

Canon

MultiTouch

203.99

Hitachi

13 of 36

  • Select Query using WHERE

13

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT PName, Price, Manufacturer�FROM Product�WHERE manufacturer IN(“Hitachi”,“Canon”);

Product

Replace OR with In

conditions Using

IN

PName

Price

Manufacturer

SingleTouch

149.99

Canon

MultiTouch

203.99

Hitachi

14 of 36

  • Note That
  • Case insensitive:
    • Same: SELECT Select select
    • Same: Product product
    • Different: ‘Seattle’ ‘seattle’

  • Constants:
    • ‘abc’ - yes
    • “abc” - no

14

15 of 36

  • The LIKE operator

Pattern : pattern matching on strings. It contains two special symbols:

% = any sequence of characters

_ = any single character

15

SELECT *�FROM Products�WHERE PName LIKE <pattern>

16 of 36

  • Like Operator with %

16

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT *�FROM Product�WHERE Pname like ‘p%’;

Product

PName

Price

Category

Manufacturer

Powergizmo

29.99

Gadgets

GizmoWorks

Product name that starts with P

17 of 36

  • Like Operator with %

17

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT *�FROM Product�WHERE Pname like ‘%Touch’;

Product

Product name that ends with Touch

PName

Price

Category

Manufacturer

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

18 of 36

  • Like Operator with %

18

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT *�FROM Product�WHERE Pname like ‘%e%’;

Product

Product name that contains e anywhere in the name

PName

Price

Category

Manufacturer

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

19 of 36

  • Like Operator with _ &%

19

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT *�FROM Product�WHERE Pname like ‘_o%’;

Product

PName

Price

Category

Manufacturer

Powergizmo

29.99

Gadgets

GizmoWorks

Product name with second letter ‘o’

20 of 36

  • Like Operator with %

20

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT *�FROM Product�WHERE Pname like ‘%c_’;

Product

Product name with second last character ‘c’

PName

Price

Category

Manufacturer

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

21 of 36

  • Eliminating Duplicates

21

SELECT DISTINCT category

FROM Product;

Compare to:

SELECT category

FROM Product;

Category

Gadgets

Gadgets

Photography

Household

Category

Gadgets

Photography

Household

22 of 36

Aggregate Functions

22

Except count, all aggregations apply to a single attribute

SQL supports several aggregation operations:

  • Sum
  • Max
  • Min
  • Avg
  • Count

23 of 36

Aggregate Functions – SUM

23

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT sum(price)�FROM Product;

Product

Sum of Price of all Products

403.96

24 of 36

Aggregate Functions – MAX

24

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT max(price)�FROM Product;

Product

Max of Price of all Products

203.96

25 of 36

Aggregate Functions – MIN

25

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT min(price)�FROM Product;

Product

Min of Price of all Products

19.99

26 of 36

Aggregate Functions – AVG

26

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT avg(price)�FROM Product;

Product

Avg of Price of all Products

100.99

27 of 36

Aggregate Functions – COUNT

27

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

SELECT count(price)�FROM Product;

Product

Total number of Products

4

SELECT count(*)�FROM Product;

28 of 36

More Examples

28

Query

Sql

Max price of Gadgets category Products

Select Max(price) from product where category=“Gadgets”

Total no of products in Household category

Select count(*) from product where Category=“Household”

Count total no. of categories

Select Count(Distinct(category) ) from product

29 of 36

29

Problem Statement

SQL Query

Average Price of Gizmo Works manufacturer

?

Total price of Gizmo Works manufacturer

?

Count total number of manufacturers

?

Count number of products that contains ‘o’ in their name

?

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

WRITE THE QUERY

30 of 36

  • Ordering the Results

30

SELECT pname, price, manufacturer

FROM Product

WHERE manufacturer=‘GizmoWorks’ AND price > 50

ORDER BY price, pname;

  • Ties are broken by the second attribute on the ORDER BY list, etc.

  • Also works without Where

  • Ordering is ascending, unless you specify the DESC keyword.

SELECT pname, price, manufacturer

FROM Product

ORDER BY price DESC;

31 of 36

31

SELECT Category

FROM Product

ORDER BY PName

PName

Price

Category

Manufacturer

Gizmo

19.99

Gadgets

GizmoWorks

Powergizmo

29.99

Gadgets

GizmoWorks

SingleTouch

149.99

Photography

Canon

MultiTouch

203.99

Household

Hitachi

?

SELECT DISTINCT category

FROM Product

ORDER BY category

SELECT DISTINCT category

FROM Product

ORDER BY PName

?

?

FIND THE RESULT

32 of 36

32

Practice Exercise

33 of 36

33

Attribute

Data Type

Constraints

Cname

Varchar

Primary Key

Reg_Date

Date

Not Null

Stock_Price

Float

Country

Varchar

Create a new table in your current database ‘COMPANY’ with the following schema

34 of 36

34

Attribute

Data Type

Constraints

CompName

Varchar

Primary Key

RegDate

Date

Not Null

StockPrice

Float

Country

Varchar

Create a new table named ‘COMPDTLS’ in your current database with the following schema

COMPDTLS( CompName varchar Primary Key,

RegDate Date Not Null,

StockPrice Float

Country varchar )

35 of 36

  • Insert the following Records in COMPDTLS

35

CompName

RegDate

StockPrice

Country

GizmoWorks

2019/10/21

25

USA

Canon

2019/10/3

65

Japan

Hitachi

2019/10/10

15

India

36 of 36

  • Write SQL Queries for:

36

  1. List the details of all companies
  2. List the registration date of all companies
  3. Show the details of all companies of Japan
  4. List the company name whose stock price is 65
  5. List the companies of Japan or India
  6. Show the maximum stock price.
  7. Show the average stock price.
  8. Show the distinct countries
  9. Show the total no of countries
  10. Show the company name whose country name ends with ‘a’.