0% found this document useful (0 votes)
99 views40 pages

Lec7 - BasicSQL Part 2 PDF

This document provides an overview of Structured Query Language (SQL) concepts covered in Lecture 7, including: 1) How to use SQL to manipulate data through commands like ALTER, ADD, DROP, and functions like COUNT, MAX, MIN, SUM, and AVG. 2) How to query and filter data using clauses like WHERE, GROUP BY, HAVING, ORDER BY, and DISTINCT. 3) How to join data from multiple tables and use subqueries and outer joins. 4) How to create views to store queries for later use.

Uploaded by

Yuvaraj Elsus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views40 pages

Lec7 - BasicSQL Part 2 PDF

This document provides an overview of Structured Query Language (SQL) concepts covered in Lecture 7, including: 1) How to use SQL to manipulate data through commands like ALTER, ADD, DROP, and functions like COUNT, MAX, MIN, SUM, and AVG. 2) How to query and filter data using clauses like WHERE, GROUP BY, HAVING, ORDER BY, and DISTINCT. 3) How to join data from multiple tables and use subqueries and outer joins. 4) How to create views to store queries for later use.

Uploaded by

Yuvaraj Elsus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Structured Query Language (SQL)

- Part 2

Lecture 7

Carlos Coronel, Steven Morris, Peter Rob, Database Systems: Design,


Implementation, and Management, 9th Edition, Cengage Learning
Learning Outcomes
 In this chapter, students will learn:
 How to use SQL for data administration (to drop tables and
create views)
 How to use SQL for data manipulation (to delete and retrieve
data)
 How to use SQL to query a database for useful information
 How to use SQL functions to manipulate dates, strings, and
other data

2
Advanced Data Definition Commands
 All changes in table structure are made by using ALTER
command
 Three options:
 ALTER COLUMN changes column characteristics
 ADD adds a column
 DROP deletes a column
 Can also be used to:
 Add table constraints (e.g., foreign key)
 Remove table constraints

3
Changing a Column’s Data Characteristics
 Use ALTER to change column’s data characteristics
 Syntax:
 ALTER TABLE <table name>
ALTER COLUMN <column name> SET DATA TYPE <new
column data type characteristic>

 Changes in column’s characteristics are permitted if changes do


not alter the existing data type
 Example:
 ALTER TABLE PRODUCT ALTER COLUMN V_CODE
SET DATA TYPE CHAR(5)

 ALTER TABLE PRODUCT ALTER COLUMN P_PRICE


SET DATA TYPE DECIMAL(9,2)
4
Adding a Column
 ADD column
 Do not include the NOT NULL clause for new column

 Example:
 ALTER TABLE PRODUCT ADD SALECODE CHAR(10)
 ALTER TABLE STUDENT ADD GENDER CHAR(1)
DEFAULT ‘F’

5
Adding Table Constraint
 ADD CONSTRAINT
 Syntax:
 ALTER TABLE <table name> ADD CONSTRAINT
<constraint name> <constraint characteristics>

 Example:
 ALTER TABLE PRODUCT ADD CONSTRAINT PKconstraint
PRIMARY KEY (P_CODE)

Note: To add primary key constraint, ensure that the existing


column is declared as ‘not null’.

6
Dropping a Column
 Use ALTER to drop column
 Some RDBMSs impose restrictions on the deletion of an
attribute

 Syntax:
 ALTER TABLE <tablename>
DROP <columnname>

 Example:
 ALTER TABLE VENDOR DROP V_ORDER

7
Ordering a Listing
 ORDER BY clause is useful when listing order is important
 Syntax:
 SELECT columnlist
FROM tablelist
[WHERE conditionlist]
[ORDER BY columnlist [ASC | DESC]]
 Ascending order by default
 Example:
 SELECT P_CODE, P_DESCRIPT, P_INDATE, P_PRICE
FROM PRODUCT
ORDER BY P_PRICE
8
Order Results in Ascending Order

9
A Query based on Multiple Restrictions
SELECT P_DESCRIPT,V_CODE, P_INDATE, P_PRICE
FROM PRODUCT
WHERE P_INDATE > ’1999-08-20’ AND P_PRICE <= 50.00
ORDER BY V_CODE, P_INDATE

10
Listing Unique Values
 DISTINCT clause produces list of only values that are
different from one another
 Example:
 SELECT DISTINCT V_CODE
FROM PRODUCT

11
Aggregate Functions
 COUNT function tallies number of non-null values of an
attribute
 Takes one parameter: usually a column name
 Can be used with DISTINCT clause
 MAX and MIN find highest (lowest) value in a table
 SUM computes total sum for any specified attribute
 AVG function format is similar to MIN and MAX

12
Aggregate Functions
 COUNT(*) counts all rows of a table, regardless of
whether nulls or duplicate values occur.
 Can use DISTINCT before column name to eliminate
duplicates.
 DISTINCT has no effect with MIN/MAX, but may have with
SUM/AVG

13
Example Output of COUNT Function

14
Example Output of MAX and MIN
Functions

15
Example of SUM and AVG Functions
 SUM
 SELECT SUM (P_ONHAND * P_PRICE)
FROM PRODUCT

 AVG
 SELECT AVG (P_PICE)
FROM PRODUCT

16
Example Output of AVG Function

17
Grouping Data
 Frequency distributions created by GROUP BY clause
within SELECT statement
 Syntax:
 SELECT columnlist
FROM tablelist
[WHERE conditionlist]
[GROUP BY columnlist]
[HAVING conditionlist]
[ORDER BY columnlist [ASC | DESC] ]
 Only valid when used in conjunction with one of the SQL
aggregate function (COUNT, MIN, MAX,AVG,SUM)
18
Example output of GROUP BY clause
SELECT P_SALECODE, MIN(P_PRICE)
FROM PRODUCT
GROUP BY P_SALECODE

19
NO aggregate
function
(COUNT, MIN,
MAX,AVG,SUM)

20
Grouping Data with HAVING Clause
 HAVING clause
 Operates very much like WHERE clause
 WHERE clause – applies to columns and expressions for
individual rows
 HAVING clause – applies to the output of a GROUP BY
operation

21
Grouping Data with HAVING Clause

22
Subqueries/Nested Queries
 A subquery is a query inside a query
 Normally expressed inside parentheses
 The first query in the SQL statement is known as the
outer query
 The query inside the SQL statement known as the inner
query
 Inner query executed first
 Output of an inner query is used as the input for the
output query
 The entire SQL statement is sometimes referred to as
nested queries
23
Subqueries/Nested Queries
 Example: Outer
query

INSERT INTO Product_A


(SELECT * FROM Product_B)

Inner
query

24
Subqueries/Nested Queries
 Example: Outer
query

 UPDATE Product Inner


query
SET P_Price =
(SELECT AVG (P_Price) FROM Product)
WHERE V_Code IN
(SELECT V_CODE FROM Vendor WHERE
V_AREACODE = ‘615’)

Inner
query

25
Subqueries/Nested Queries
 Example: Outer
query

 DELETE FROM Product


WHERE V_Code IN
(SELECT V_CODE FROM Vendor WHERE
V_AREACODE = ‘615’)

Inner
query

26
Copying Parts of Tables
 SQL permits copying contents of selected table columns
 Data need not re-entered manually into newly created
table(s)
 Can use SUBQUERIES

 1st Step: Create new table structure

 2nd Step: Add rows to new table using table rows from
another table

27
Copying Parts of Tables
 CREATE TABLE PART (
PART_CODE CHAR(8) NOT NULL,
PART_DESCRIPT CHAR(35),
PART_PRICE DECIMAL(8,2),
V_CODE VARCHAR(5),
PRIMARY KEY(PART_CODE) )

Copy from
New table Product table

 INSERT INTO PART ( PART_CODE, PART_DESCRIPT,


PART_PRICE,V_CODE)
SELECT P_CODE, P_DESCRIPT, P_PRICE,V_CODE FROM
28 PRODUCT
Copying Parts of Tables

29
Joining Database Tables
 Join is performed when data are retrieved from more
than one table at a time
 Use equality comparison (=) to join foreign key and primary
key of related tables

30
Joining Database Tables
 SELECT P_DESCRIPT, P_PRICE, V_NAME, V_CONTACT,
V_AREACODE, V_PHONE
FROM PRODUCT, VENDOR
WHERE PRODUCT.V_CODE = VENDOR.V_CODE

31
Joining Database Tables
 SELECT P_DESCRIPT, P_PRICE, V_NAME, V_CONTACT,
V_AREACODE, V_PHONE
FROM PRODUCT, VENDOR
WHERE PRODUCT.V_CODE = VENDOR.V_CODE
AND P_INDATE > ‘1999-08-15’

32
Joining Tables with an Alias
 Alias can be used to identify source table
 Any legal table name can be used as alias
 Add alias after table name in FROM clause
 FROM <tablename> <alias>

 Example:
SELECT P_DESCRIPT, P_PRICE,V_NAME, V_CONTACT,
V_AREACODE,V_PHONE
FROM PRODUCT P, VENDOR V
WHERE P.V_CODE = V.V_CODE
ORDER BY P_PRICE

33
Outer Joins
 Outer join (recap from lecture 2!)
 Returns not only the rows matching the join condition but
also the rows with unmatched values
 Two types of outer join
 Left outer join
 Right outer join

34
Outer Joins
 LEFT join
 Returns rows in the left side table with unmatched values in the
right side table
 Example:
SELECT CUS_CODE, CUS_LNAME, CUS_ZIP,
AGENT_CODE, AGENT_PHONE
FROM CUSTOMER LEFT JOIN AGENT ON
CUSTOMER.AGENT_CODE = AGENT.AGENT_CODE

35
Outer Joins
 RIGHT join
 Returns rows in the right side table with unmatched values in
the left side table
 Example:
SELECT CUS_CODE, CUS_LNAME, CUS_ZIP,
AGENT_CODE, AGENT_PHONE
FROM CUSTOMER RIGHT JOIN AGENT ON
CUSTOMER.AGENT_CODE = AGENT.AGENT_CODE

36
Virtual Tables: Creating a View
 View is a virtual table based on SELECT query
 Create view by using CREATE VIEW command
 Syntax:
 CREATE VIEW <viewname> AS
SELECT statement

 Example:
 CREATE VIEW ProductView AS
SELECT * from Product

 To display the contents of the virtual table:


SELECT * FROM ProductView
37
Virtual Tables: Creating a View

38
SQL Indexes
 When primary key is declared, DBMS automatically
creates unique index
 Often need additional indexes to improve search
 Syntax:
 CREATE INDEX <indexname> ON <tablename (column))>

 Example:
 CREATE INDEX P_INDATEX ON PRODUCT (P_INDATE)
SQL Indexes

You might also like