0% found this document useful (0 votes)
2 views

Ch05

Chapter 5 covers advanced SQL features including complex retrieval queries, triggers, views, and schema modifications. It discusses nested queries, joined tables, outer joins, and aggregate functions, as well as how to specify constraints and actions in SQL. Additionally, it explains the creation and management of views as virtual tables and the commands for altering database schemas.

Uploaded by

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

Ch05

Chapter 5 covers advanced SQL features including complex retrieval queries, triggers, views, and schema modifications. It discusses nested queries, joined tables, outer joins, and aggregate functions, as well as how to specify constraints and actions in SQL. Additionally, it explains the creation and management of views as virtual tables and the commands for altering database schemas.

Uploaded by

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

Chapter

5
More
SQL:
Complex
Queries,
Triggers,
Views, and
Schema
Modification
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 5 Outline
 More Complex SQL Retrieval
Queries
 Specifying Constraints as Assertions
and Actions as Triggers
 Views (Virtual Tables) in SQL
 Schema Change Statements in SQL

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


More Complex SQL
Retrieval
Queries
 Additional features allow users to
specify more complex retrievals
from database:
 Nested queries, joined tables, outer
joins, aggregate functions, and
grouping

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Comparisons Involving
NULL and Three-Valued
Logicof NULL
 Meanings
 Unknown value
 Unavailable or withheld value
 Not applicable attribute

 Each individual NULL value


considered to be different from
every other NULL value
 SQL uses a three-valued logic:
 TRUE, FALSE, and UNKNOWN
Copyright © 2011 Ramez Elmasri and Shamkant Navathe
Comparisons Involving
NULL and Three-Valued
Logic (cont’d.)

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Comparisons Involving
NULL and Three-Valued
Logic (cont’d.)
SQL allows queries that check
whether an attribute value is NULL
 IS or IS NOT NULL

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Nested Queries, Tuples,
and Set/Multiset
Comparisons
 Nested queries
 Complete select-from-where blocks
within WHERE clause of another
query
 Outer query

 Comparison operator IN
 Compares value v with a set (or
multiset) of values V
 Evaluates to TRUE if v is one of the
elements in
V
Copyright © 2011 Ramez Elmasri and Shamkant Navathe
Nested Queries (cont’d.)

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Nested Queries (cont’d.)
 Use tuples of values in
comparisons
 Place them within parentheses

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Nested Queries (cont’d.)
 Use other comparison
operators to compare a single
value v
 = ANY (or = SOME) operator
• Returns TRUE if the value v is equal to some
value in the set V and is hence equivalent
to IN
 Other operators that can be combined
with ANY
(or SOME): >, >=, <, <=, and <>

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Nested Queries (cont’d.)
 Avoid potential errors and
ambiguities
 Create tuple variables (aliases) for all
tables referenced in SQL query

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Correlated Nested
Queries
 Correlated nested query
 Evaluated once for each tuple in the
outer query

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


The EXISTS and
UNIQUE
 EXISTSFunctions
function in SQL
 Check whether the result of a correlated
nested query is empty or not
 EXISTS and NOT EXISTS
 Typically used in conjunction with a
correlated nested query
 SQL function UNIQUE(Q)
 Returns TRUE if there are no duplicate
tuples in the result of query Q

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Explicit Sets and
Renaming of
 Can use Attributes
explicit set of in SQL
values in
WHERE clause
 Use qualifier AS followed by desired
new name
 Rename any attribute that appears in the
result of a query

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Joined Tables in SQL and
Outer
 Joined table Joins
 Permits users to specify a table resulting
from a join operation in the FROM
clause of a query
 The FROM clause in Q1A
 Contains a single joined table

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Joined Tables in SQL and
Outer Joins (cont’d.)
 Specify different types of join
 NATURAL JOIN
 Various types of OUTER JOIN

 NATURAL JOIN on two relations R


and S
 No join condition specified
 Implicit EQUIJOIN condition for each
pair of attributes with same name
from R and S

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Joined Tables in SQL and
Outer Joins (cont’d.)
 Inner join
 Default type of join in a joined table
 Tuple is included in the result only if a
matching tuple exists in the other
relation
 LEFT OUTER JOIN
 Every tuple in left table must appear in
result
 If no matching tuple
• Padded with NULL values for attributes of
right
Copyright © 2011 table
Ramez Elmasri and Shamkant Navathe
Joined Tables in SQL and
Outer Joins (cont’d.)
 RIGHT OUTER JOIN
 Every tuple in right table must appear in
result
 If no matching tuple
• Padded with NULL values for the attributes
of left table
 FULL OUTER JOIN
 Can nest join specifications

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Aggregate Functions in
SQL
 Used to summarize information from
multiple tuples into a single-tuple
summary
 Grouping
 Create subgroups of tuples before
summarizing
 Built-in aggregate functions
 COUNT, SUM, MAX, MIN, and AVG
 Functions can be used in the SELECT
clause or in a HAVING clause
Copyright © 2011 Ramez Elmasri and Shamkant Navathe
Aggregate Functions in
SQL
 NULL values (cont’d.)
discarded when
aggregate functions are applied to a
particular column

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Grouping: The GROUP BY
and HAVING Clauses
 Partition relation into subsets of
tuples
 Based on grouping attribute(s)
 Apply function to each such
group independently
 GROUP BY clause
 Specifies grouping attributes
 If NULLs exist in grouping
attribute
 Separate group created for all tuples
Copyright © 2011 Ramez Elmasri and Shamkant Navathe
Grouping: The GROUP BY
and HAVING Clauses
(cont’d.)
 HAVING clause
 Provides a condition on the
summary information

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Discussion and Summary of
SQL Queries

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Specifying Constraints
as Assertions and
Actions as
 CREATE ASSERTION

Triggers
Specify additional types of constraints
outside scope of built-in relational
model constraints
 CREATE TRIGGER
 Specify automatic actions that
database system will perform when
certain events and conditions occur

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Specifying General
Constraints as
Assertions
 CREATE ASSERTION in SQL
 Specify a query that selects any
tuples that violate the desired
condition
 Use only in cases where it is not
possible to use CHECK on
attributes and domains

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Introduction to Triggers in
SQL
 CREATE TRIGGER statement
 Used to monitor the database
 Typical trigger has three
components:
 Event(s)
 Condition
 Action

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Views (Virtual Tables) in
SQL
 Concept of a view in SQL
 Single table derived from other
tables
 Considered to be a virtual table

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Specification of Views in
SQL
 CREATE VIEW command
 Give table name, list of attribute names,
and a query to specify the contents
of the view

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Specification of Views in
SQL
(cont’d.)
 Specify SQL queries on a view
 View always up-to-date
 Responsibility of the DBMS and not the
user
 DROP VIEW command
 Dispose of a view

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


View Implementation,
View Update, and
Inline
 Complex Views
problem of
efficiently implementing a
view for querying
 Query modification approach
 Modify view query into a query on
underlying base tables
 Disadvantage: inefficient for views
defined via complex queries that
are time-consuming to execute

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


View Implementation
 View materialization approach
 Physically create a temporary view table
when the view is first queried
 Keep that table on the assumption that
other queries on the view will
follow
 Requires efficient strategy for
automatically updating the view table
when the base tables are updated

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


View Implementation
(cont’d.)
 Incremental update strategies
 DBMS determines what new tuples must
be inserted, deleted, or modified in a
materialized view table

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


View Update and Inline
Views
 Update on a view defined on a single
table without any aggregate
functions
 Can be mapped to an update on
underlying base table
 View involving joins
 Often not possible for DBMS to
determine which of the updates
is intended

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


View Update and Inline
Views
 Clause WITH (cont’d.)
CHECK OPTION
 Must be added at the end of the view
definition if a view is to be updated
 In-line view
 Defined in the FROM clause of an SQL
query

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Schema Change
Statements in
SQL
 Schema evolution commands
 Can be done while the database is
operational
 Does not require recompilation of the
database schema

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


The DROP Command
 DROP command
 Used to drop named schema elements,
such as tables, domains, or
constraint
 Drop behavior options:
 CASCADE and RESTRICT
 Example:
 DROP SCHEMA COMPANY CASCADE;

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


The ALTER Command
 Alter table actions include:
 Adding or dropping a column
(attribute)
 Changing a column definition
 Adding or dropping table constraints

 Example:
 ALTER TABLE COMPANY.EMPLOYEE ADD
COLUMN Job VARCHAR(12);
 To drop a column
 Choose either CASCADE or RESTRICT
Copyright © 2011 Ramez Elmasri and Shamkant Navathe
The ALTER Command
(cont’d.)
 Change constraints specified on a
table
 Add or drop a named constraint

Copyright © 2011 Ramez Elmasri and Shamkant Navathe


Summary
 Complex SQL:
 Nested queries, joined tables, outer
joins, aggregate functions,
grouping
 CREATE ASSERTION and
CREATE TRIGGER
 Views
 Virtual or derived tables

Copyright © 2011 Ramez Elmasri and Shamkant Navathe

You might also like