Prof . R A Tela
1
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
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
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
Show tables;
Desc <tablename>;
Show Existing Tables
Describe structure of a Existing Table
Desc product;
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SELECT DISTINCT category
FROM Product;
Compare to:
SELECT category
FROM Product;
Category |
Gadgets |
Gadgets |
Photography |
Household |
Category |
Gadgets |
Photography |
Household |
Aggregate Functions
22
Except count, all aggregations apply to a single attribute
SQL supports several aggregation operations:
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
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
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
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
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;
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
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
SELECT pname, price, manufacturer
FROM Product
WHERE manufacturer=‘GizmoWorks’ AND price > 50
ORDER BY price, pname;
SELECT pname, price, manufacturer
FROM Product
ORDER BY price DESC;
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
Practice Exercise
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
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
CompName | RegDate | StockPrice | Country |
GizmoWorks | 2019/10/21 | 25 | USA |
Canon | 2019/10/3 | 65 | Japan |
Hitachi | 2019/10/10 | 15 | India |
36