Unit III - SQL
Unit III - SQL
Management
Systems and SQL
Session 1
The Language of DBMS
SQL
Structured Query Language
Standard language for querying and
manipulating data. Very widely used.
1. Data Definition Language (DDL)
– Create/alter/delete tables and their attributes
2. Data Manipulation Language (DML)
– Insert/delete/modify tuples in tables
Table name Attribute names
Tables in RDBMS
Product
Tuples or rows 3
Steps to Define the Schema
Step 1: Define table name and its attributes
Product(PName, Price, Category, Manufacturer)
Product
PName Price Category Manufacturer
Pname : Varchar,
Price: Float,
Category: Varchar
Manfacturer: Varchar
7
Step 3: Specifying Constraints.
Product(PName, Price, Category, Manfacturer)
8
Specifying Attribute and Domain Constraints
• NOT NULL
NULL is not permitted for a particular attribute
• Default value
DEFAULT <value>
• CHECK clause
Dnumber > 0 AND Dnumber < 21;
• UNIQUE clause
Specifies attributes that have unique values 9
Specifying Key Constraints
Manufacturer Varchar
11
LET’S CODE
TOGETHER!!
12
Creating a Database
Step 1. Create a Database Company
CREATE
CREATEDATABASE
DATABASE <DATABASE
<DATABASENAME>;
NAME>;
use company;
Step 2. SHOW TABLES
show tables;
13
Creating a Table
Step 1. Create a TABLE
CREATE
CREATETABLE
TABLE <TABLE
<TABLENAME>
NAME> ((
<ATTRIBUTE
<ATTRIBUTELIST>
LIST> <DATA
<DATATYPE>
TYPE> <CONSTRAINT>,
<CONSTRAINT>,
<ATTR2>
<ATTR2> <DATA
<DATATYPE>,<CONSTRAINT>);
TYPE>,<CONSTRAINT>);
Attribute Data Type Constraints
Pname Varchar Primary Key
Price Float Not Null
Category Varchar Gadget,
Photography,
Household
Manufacturer Varchar
14
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));
Desc product;
16
Insert records in Table
INSERT
INSERT INTO
INTO R(A1,….,
R(A1,….,An)
An) VALUES
VALUES (v1,….,
(v1,…., vn)
vn)
SELECT
SELECT ** FROM
FROM product;
product;
18
Select Query using Attributes
PName Price Category Manufacturer
Gizmo 19.99 Gadgets GizmoWorks
Powergizmo 29.99 Gadgets GizmoWorks
Product
SingleTouch 149.99 Photography Canon
MultiTouch 203.99 Household Hitachi
SELECT
SELECT Pname,
Pname,Price
PriceFROM
FROMProduct
Product
PName Price
Gizmo 19.99
“projection” Powergizmo 29.99
SingleTouch 149.99
MultiTouch 203.99
19
Select Query using WHERE
SELECT
SELECT**FROM
FROMProduct
ProductWHERE
WHERE
category=‘Gadgets’;
category=‘Gadgets’;
20
Select Query using WHERE
SELECT
SELECT PName,
PName,Price,
Price,Manufacturer
Manufacturer
FROM
FROM Product
Product
WHERE
WHERE Price
Price>>100;
100;
PName Price Manufacturer
“selection” and SingleTouch 149.99 Canon
where 21
Select Query using WHERE
PName Price Category Manufacturer
Gizmo 19.99 Gadgets GizmoWorks
SELECT
SELECT PName,
PName,Price,
Price,Manufacturer
Manufacturer
FROM
FROM Product
Product
WHERE
WHERE Price
Price>>100
100and
and manufacturer
manufacturer=“Canon”;
=“Canon”;
SELECT
SELECT PName,
PName,Price,
Price,Manufacturer
Manufacturer
FROM
FROM Product
Product
WHERE
WHERE Manufacturer
Manufacturer=“Hitachi”
=“Hitachi”or
or
Manufacturer
Manufacturer==“Canon”;
“Canon”;
23
Select Query using WHERE
PName Price Category Manufacturer
Product
Gizmo 19.99 Gadgets GizmoWorks
Powergizmo 29.99 Gadgets GizmoWorks
SingleTouch 149.99 Photography Canon
MultiTouch 203.99 Household Hitachi
SELECT
SELECT PName,
PName,Price,
Price,Manufacturer
Manufacturer
FROM
FROM Product
Product
WHERE
WHERE manufacturer
manufacturer
IN(“Hitachi”,“Canon”);
IN(“Hitachi”,“Canon”);
24
The LIKE operator
SELECT
SELECT **
FROM
FROM Products
Products
WHERE
WHERE PName
PName LIKE
LIKE <pattern>
<pattern>
25
Like Operator with %
Product name that starts with P
SELECT
SELECT **
FROM
FROM Product
Product
WHERE
WHERE Pname
Pnamelike
like‘p%’;
‘p%’;
SELECT
SELECT **
FROM
FROM Product
Product
WHERE
WHERE Pname
Pnamelike
like‘%Touch’;
‘%Touch’;
PName Price Category Manufacturer
SingleTouch 149.99 Photography Canon
MultiTouch 203.99 Household Hitachi
27
Like Operator with %
Product name that contains e anywhere in the name
SELECT
SELECT **
FROM
FROM Product
Product
WHERE
WHERE Pname
Pnamelike
like‘%e%’;
‘%e%’;
SELECT
SELECT **
FROM
FROM Product
Product
WHERE
WHERE Pname
Pnamelike
like‘_o%’;
‘_o%’;
SELECT
SELECT **
FROM
FROM Product
Product
WHERE
WHERE Pname
Pnamelike
like‘%c_’;
‘%c_’;
PName Price Category Manufacturer
SingleTouch 149.99 Photography Canon
MultiTouch 203.99 Household Hitachi
30
Eliminating Duplicates
Category
SELECT
SELECT DISTINCT
DISTINCT category
category Gadgets
FROM
FROM Product;
Product; Photography
Household
Compare to:
Category
Gadgets
SELECT
SELECT category
category Gadgets
FROM
FROM Product;
Product; Photography
Household
31
Aggregate Functions
Sum
Max
Min
Avg
Count
32
Aggregate Functions – SUM
Sum of Price of all Products
Product 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
SELECT sum(price)
sum(price)
FROM
FROM Product;
Product;
403.96
33
Aggregate Functions – MAX
Max of Price of all Products
Product 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
SELECT max(price)
max(price)
FROM
FROM Product;
Product;
203.96
34
Aggregate Functions – MIN
Min of Price of all Products
Product 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
SELECT min(price)
min(price)
FROM
FROM Product;
Product;
19.99
35
Aggregate Functions – AVG
Avg of Price of all Products
Product 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
SELECT avg(price)
avg(price)
FROM
FROM Product;
Product;
100.99
36
Aggregate Functions – COUNT
Total number of Products
Product 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
SELECT count(price)
count(price)
FROM
FROM Product;
Product;
4
SELECT
SELECT count(*)
count(*)
FROM
FROM Product;
Product;
37
More Examples
Query Sql
38
PName Price Category Manufacturer
WRITE Gizmo 19.99 Gadgets GizmoWorks
THE Powergizmo
SingleTouch
29.99
149.99
Gadgets
Photography
GizmoWorks
Canon
QUERY MultiTouch 203.99 Household Hitachi
39
Ordering the Results
SELECT
SELECT pname,
pname, price,
price, manufacturer
manufacturer
FROM
FROM Product
Product
WHERE
WHERE manufacturer=‘GizmoWorks’
manufacturer=‘GizmoWorks’AND ANDprice
price>> 50
50
ORDER
ORDERBYBY price,
price, pname;
pname;
• Ties are broken by the second attribute on the ORDER
BY list, etc.
SELECT
SELECT pname,
pname, price,
price, manufacturer
manufacturer
FROM
FROM Product
Product
ORDER
ORDERBYBY price
priceDESC;
DESC;
40
PName Price Category Manufacturer
FIND Gizmo 19.99 Gadgets GizmoWorks
SELECT
SELECT DISTINCT
DISTINCTcategory
?
category
FROM
FROM Product
Product
ORDER
ORDERBYBYcategory
category
SELECT
SELECT Category
?
Category
FROM
FROM Product
Product
ORDER
ORDERBYBY PName
PName
SELECT
SELECT DISTINCT
DISTINCTcategory
?
category
FROM
FROM Product
Product
ORDER
ORDERBYBYPName
PName 41
Practice Exercise
42
Create a new table in your current database
‘COMPANY’ with the following schema
Stock_Price Float
Country Varchar
43
Create a new table named ‘COMPDTLS’ in your
current database with the following schema
Country Varchar
44
Insert the following Records in COMPDTLS
45
Write SQL Queries for:
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’.
46