Database Systems: Design, Implementation, and Management

Download Report

Transcript Database Systems: Design, Implementation, and Management

5
Chapter 5
Structured Query Language
(SQL)
Database Systems: Design, Implementation, and
Management, Fifth Edition, Rob and Coronel
5
In this chapter, you will learn:
• The basic commands and functions of SQL
• How SQL is used for data manipulation (to add,
modify, delete, and retrieve data)
• How to use SQL to query a database to extract
useful information
• How SQL is used for data administration (to
create tables, indexes, and views)
• About more advanced SQL features such as
updatable views, stored procedures, and triggers
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
2
5
Introduction to SQL
• Ideal database language
– Create database and table structures
– Perform basic data management chores (add,
delete, and modify)
– Perform complex queries to transform data into
useful information
• SQL is the ideal DB language
– Data definition language
– Data manipulation language
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
3
5
Good Reasons to Study SQL
• ANSI standardization effort led to de facto query
standard for relational database
• Forms basis for present and future DBMS
integration efforts
• Becomes catalyst in development of distributed
databases and database client/server architecture
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
4
5
Data Definition Commands
• Create database structure
– Holds all tables and is a collection of physical files
stored on disk
– DBMS automatically creates tables to store metadata
– Database administrator creates structure or schema
• Logical group of tables or logical database
• Groups tables by owner
• Enforces security
CREATE SCHEMA AUTHORIZATION <creator>
Example:
CREATE SCHEMA AUTHORIZATION JONES
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
5
5
Creating Table Structure
• Tables store end-user data
• May be based on data dictionary entries
CREATE TABLE <table name>
(<attribute1 name and attribute1 characteristics,
attribute2 name and attribute2 characteristics,
attribute3 name and attribute3 characteristics,
primary key designation,
foreign key designation and foreign key requirement>);
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
6
5
Using Domains
• Domain is set of permissible values for a column
• Definition requires:
–
–
–
–
Name
Data type
Default value
Domain constraint or condition
CREATE DOMAIN <domain_name> AS DATA_TYPE
[DEFAULT <default_value>]
[CHECK (<condition>)]
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
7
5
SQL Integrity Constraints
• Adherence to entity integrity and referential
integrity rules is crucial
– Entity integrity enforced automatically if primary
key specified in CREATE TABLE command
sequence
– Referential integrity can be enforced in
specification of FOREIGN KEY
– Other specifications to ensure conditions met:
• ON DELETE RESTRICT
• ON UPDATE CASCADE
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
8
5
Data Manipulation Commands
Common SQL Commands
Table 5.3
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
9
5
Data Entry and Saving
• Enters data into a table
INSERT INTO <table name>
VALUES (attribute 1 value, attribute 2 value, … etc.);
• Saves changes to disk
COMMIT <table names> ;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
10
5
Listing Table Contents and Other
Commands
• Allows table contents to be listed
SELECT <attribute names> FROM <table names>;
• UPDATE command makes data entry corrections
• ROLLBACK command restores database back to
previous condition if COMMIT hasn’t been used
• DELETE command removes table row
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
11
5
Queries
• Creating partial listings of table contents
SELECT <column(s)>
FROM <table name>
WHERE <conditions>;
Table 5.4
Mathematical Operators
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
12
5
Examples
• Mathematical operators
SELECT P_DESCRIPT, P_INDATE, P_PRICE, V_CODE
FROM PRODUCT
WHERE V_CODE <> 21344;
• Mathematical operators on character attributes
SELECT P_CODE,P_DESCRIPT,P_ONHAND,P_MIN,P_PRICE
FROM PRODUCT
WHERE P_CODE < ‘1558-QWI’;
• Mathematical operators on dates
SELECT P_DESCRIPT,P_ONHAND,P_MIN,P_PRICE,PINDATE
FROM PRODUCT
WHERE P_INDATE >= ‘01/20/2002’;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
13
5
Computed Columns
• New columns can be created through valid
computations or formulas
– Formulas may contain mathematical operators
– May contain attributes of any tables specified in
FROM clause
• Alias is alternate name given to table or column
in SQL statement
SELECT P_DESCRIPT,P_ONHAND,P_PRICE,P_ONHAND*P_PRICE
AS TOTVALUE
FROM PRODUCT;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
14
5
Operators
• Logical: AND, OR, NOT
SELECT *
FROM PRODUCT
WHERE V_CODE = 21344 OR V_CODE = 24288;
• Rules of precedence
– Conditions within parenthesis executed first
– Boolean algebra
• Special
–
–
–
–
–
BETWEEN - defines limits
IS NULL - checks for nulls
LIKE - checks for similar string
IN - checks for value in a set
EXISTS - opposite of IS NULL
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
15
5
Advanced Data Management
Commands
• ALTER - changes table structure
• ADD - adds column
• MODIFY - changes column characteristics
ALTER TABLE <table name>
ADD (<column name> <new column characteristics>);
ALTER TABLE <table name>
MODIFY (<column name> <new column characteristics>);
• Entering data into new column
UPDATE PRODUCT
SET P_SALECODE = ‘2’
WHERE P_CODE = ‘1546-QQ2’;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
16
5
Advanced Data Management
Commands (con’t.)
• Dropping a column
ALTER TABLE VENDOR
DROP COLUMN V_ORDER;
• Arithmetic operators and rules of precedence
Table 5.5
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
17
5
Advanced Data Management
Commands (con’t.)
• Copying parts of tables
INSERT INTO <receiving table> <receiving table’s column names>
SELECT <column names of the columns to be copied>
FROM <contributing table name>;
• Deleting a table from database
DROP TABLE PART;
• Primary and foreign key designation
ALTER TABLE LINE
ADD PRIMARY KEY (INV_NUMBER, LINE_NUMBER)
ADD FOREIGN KEY (INV_NUMBER) REFERENCES INVOICE
ADD FOREIGN KEY (PROD_CODE) REFERENCES PRODUCT;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
18
• COUNT
Example Aggregate
Function Operations
5
SELECT COUNT(DISTINCT V_CODE)
FROM PRODUCT;
SELECT COUNT(DISTINCT V_CODE)
FROM PRODUCT
WHERE P_PRICE <= 10.00;
• MAX and MIN
SELECT MIN(P_PRICE)
FROM PRODUCT;
SELECT P_CODE, P_DESCRIPT, P_PRICE
FROM PRODUCT
WHERE P_PRICE = MAX(P_PRICE);
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
19
5
Example Aggregate
Function Operations (con’t.)
• SUM
SELECT SUM(P_ONHAND * P_PRICE)
FROM PRODUCT;
• AVG
SELECT P_DESCRIPT, P_ONHAND, P_PRICE, V_CODE
FROM PRODUCT
WHERE P_PRICE >
(SELECT AVG(P_PRICE) FROM PRODUCT)
ORDER BY P_PRICE DESC;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
20
5
More Complex Queries and SQL
Functions
• Ordering a listing
ORDER BY <attributes>
• Results ascending by default
– Descending order uses DESC
ORDER BY <attributes> DESC
• Cascading order sequence
ORDER BY <attribute 1, attribute 2, ...>
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
21
5
More Complex Queries and SQL
Functions (con’t.)
• Listing unique values
– DISTINCT clause produces list of different values
SELECT DISTINCT V_CODE
FROM PRODUCT;
• Aggregate functions
– Mathematical summaries
Table 5.6
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
22
5
More Complex Queries and
SQL Functions (con’t.)
• Grouping data
– Creates frequency distributions
– Only valid when used with SQL arithmetic functions
SELECT P_SALECODE, MIN(P_PRICE)
FROM PRODUCT_2
GROUP BY P_SALECODE;
– HAVING clause operates like WHERE for grouping
output
SELECT V_CODE,COUNT(DISTINCT(P_CODE)),AVG(P_PRICE)
FROM PRODUCT_2
GROUP BY V_CODE
HAVING AVG(P_PRICE) < 10;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
23
5
More Complex Queries and
SQL Functions (con’t.)
• Virtual tables: creating a view
– CREATE VIEW command
– Creates logical table existing only in virtual memory
CREATE VIEW PRODUCT_3 AS
SELECT P_DESCRIPT, P_ONHAND, P_PRICE
FROM PRODUCT
WHERE P_PRICE > 50.00;
– SQL indexes
CREATE INDEX P_CODEX
ON PRODUCT(P_CODE);
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
24
5
More Complex Queries and
SQL Functions (con’t.)
• Joining database tables
– Data are retrieved from more than one table
SELECT PRODUCT.P_DESCRIPT, PRODUCT.P_PRICE,
VENDOR.V_NAME, VENDOR.V_CONTACT,
VENDOR.V_AREACODE, VENDOR.V_PHONE
FROM PRODUCT, VENDOR
WHERE PRODUCT.V_CODE = VENDOR.V_CODE;
– Recursive queries joins a table to itself
SELECT A.EMP_NUM,A.EMP_LNAME,A.EMP_MGR,
B.EMP_LNAME FROM EMP A, EMP B
WHERE A.EMP_MGR=B.EMP_NUM
ORDER BY A.EMP_MGR
– Outer joins can be used when ‘null’ values need to be
included in query result
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
25
5
Updatable Views
• Common operation in production environments is
use of batch routines to update master table
attributes using transaction data
• Overnight batch jobs
• Not all views are updatable
• Restrictions
– GROUP BY expressions cannot be used
– Cannot use set operators---UNION,
INTERSECTION, etc.
– Most restrictions based on use of JOINS or group
operators in views
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
26
Procedural SQL
5
• SQL shortcomings
– Doesn’t support execution of stored procedures based
on logical condition
– Fails to support looping operations
• Solutions
– Embedded SQL can be called from within procedural
programming languages
– Shared Code is isolated and used by all application
programs.
– Procedural SQL (PL/SQL) stored within the database,
executed by DBMS, and invoked by the end user
• Triggers
• Stored procedures
• PL/SQL functions
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
27
5
Procedural SQL (con’t.)
• Procedural SQL allows the use of procedural
code and SQL statements that are stored within
the database.
• The procedural code is executed by the DBMS
when it is invoked by the end user.
• End users can use procedural SQL (PL/SQL) to
create:
– Triggers
– Stored procedures
– PL/SQL functions
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
28
5
Triggers
• Procedural SQL code invoked before or after
data row is selected, inserted, or updated
• Associated with a database table
• Table may have multiple triggers
• Executed as part of transaction
• Can enforce particular constraints
• Automate critical actions and provide warnings
for remedial action
• Can update values, insert records, and call
procedures
• Add processing power
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
29
5
Triggers (con’t.)
• Oracle example
CREATE OR REPLACE TRIGGER
<trigger_name>
[BEFORE/AFTER]
[DELETE/INSERT/UPDATE OF <column_name]
ON <table_name>
[FOR EACH ROW]
BEGIN
PL/SQL instructions;
……………
END;
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
30
5
Stored Procedures
• Named collection of procedural and SQL
statements stored in database
• Invoked by name
• Executed as unit
CREATE OR REPLACE PROCEDURE procedure_name
(argument IN/OUT data-type, etc)
IS/AS BEGIN
DECLARE variable name and data type
PL/SQL or SQL statements;
END;
• Invoked with EXEC
EXEC store_procedure_name
(parameter, parameter, …)
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
31
5
PL/SQL Stored Functions
• Named group of procedural and SQL statements
that returns a value
CREATE FUNCTION function_name (argument IN
data-type, etc)
RETURN data-type
AS BEGIN
PL/SQL statements;
RETURN (value); ……
END;
• Invoked from within stored procedures or
triggers
• Cannot be invoked from within SQL statements
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
32
5
Artist Database ERD and Tables
Figure 5.55
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
33
5
General Rules Governing
Relationships Among Tables
Figure 5.56: M:N, Both Sides Mandatory
Figure 5.57: M:N, Both Sides Optional
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
34
5
General Rules Governing
Relationships Among Tables (Con’t.)
Figure 5.58: M:N, One Side Optional
Figure 5.59: 1:M, Both Sides Mandatory
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
35
5
General Rules Governing
Relationships Among Tables (Con’t.)
Figure 5.60: 1:M, Both Sides Optional
Figure 5.61: 1:M, Many Side Optional, One Side Mandatory
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
36
5
General Rules Governing
Relationships Among Tables (Con’t.)
Figure 5.62: 1:M, One Side Optional, One Side Mandatory
Figure 5.63: 1:1, Both Sides Mandatory
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
37
5
General Rules Governing
Relationships Among Tables (Con’t.)
Figure 5.64: 1:1, Both Sides Optional
Figure 5.65: 1:1, One Side Optional, One Side Mandatory
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
38
5
General Rules Governing
Relationships Among Tables (Con’t.)
Figure 5.66: Weak Entity, Foreign Key Located in Weak Entity
Figure 5.67: Multivalued Attributes (New Table in 1:M
Relationship, Foreign Key CAR_VIN in the New Table
Database Systems: Design, Implementation, & Management, 5th Edition, Rob & Coronel
39