Modern Database Management 6 Edition: Jeffrey A. Hoffer, Mary B. Prescott, Fred R. Mcfadden
Modern Database Management 6 Edition: Jeffrey A. Hoffer, Mary B. Prescott, Fred R. Mcfadden
SQL
1
© Prentice Hall, 2002
SQL Is:
Structured Query Language
The standard for relational database management
systems (RDBMS)
SQL-92 Standard -- Purpose:
– Specify syntax/semantics for data definition and
manipulation
– Define data structures
Chapter 7 2
© Prentice Hall, 2002
SQL Environment
Schema
– The structure that contains descriptions of objects created by a user (base
tables, views, constraints)
Data Definition Language (DDL):
– Commands that define a database, including creating, altering, and
dropping tables and establishing constraints
Data Manipulation Language (DML)
– Commands that maintain and query a database
Data Control Language (DCL)
– Commands that control a database, including administering privileges and
committing data
Chapter 7 3
© Prentice Hall, 2002
SQL Data types (from Oracle8)
String types
– CHAR(n) – fixed-length character data, n characters long Maximum
length = 2000 bytes
– VARCHAR2(n) – variable length character data, maximum 4000 bytes
– LONG – variable-length character data, up to 4GB. Maximum 1 per table
Numeric types
– NUMBER(p,q) – general purpose numeric data type
– INTEGER(p) – signed integer, p digits wide
– FLOAT(p) – floating point in scientific notation with p binary digits
precision
Date/time type
– DATE – fixed-length date/time in dd-mm-yy form
Chapter 7 4
© Prentice Hall, 2002
Figure 7-4:
DDL, DML, DCL, and the database development process
Chapter 7 5
© Prentice Hall, 2002
SQL Database Definition
Data Definition Language (DDL)
Major CREATE statements:
– CREATE TABLE – defines a table and its
columns
Other CREATE statements: CHARACTER
SET, COLLATION, TRANSLATION,
ASSERTION, DOMAIN
Chapter 7 6
© Prentice Hall, 2002
Table Creation Steps in table creation:
1. Identify data types for
Figure 7-5: General syntax for CREATE TABLE
attributes
2. Identify columns that can
and cannot be null
3. Identify columns that must
be unique (candidate keys)
4. Identify primary key-
foreign key mates
5. Determine default values
6. Identify constraints on
columns (domain
specifications)
7. Create the table and
associated indexes
Chapter 7 7
© Prentice Hall, 2002
Figure 7-3: Sample Pine Valley Furniture data
customers
orders
order lines
products
Chapter 7 8
© Prentice Hall, 2002
Figure 7-6: SQL database definition commands for Pine Valley Furniture
Chapter 7 9
© Prentice Hall, 2002
Figure 7-6: SQL database definition commands for Pine Valley Furniture
Defining
attributes and
their data types
Chapter 7 10
© Prentice Hall, 2002
Figure 7-6: SQL database definition commands for Pine Valley Furniture
Non-nullable
specifications
Note: primary
keys should not
be null
Chapter 7 11
© Prentice Hall, 2002
Figure 7-6: SQL database definition commands for Pine Valley Furniture
Identifying
primary keys
This is a composite
primary key
Chapter 7 12
© Prentice Hall, 2002
Figure 7-6: SQL database definition commands for Pine Valley Furniture
Identifying
foreign keys and
establishing
relationships
Chapter 7 13
© Prentice Hall, 2002
Figure 7-6: SQL database definition commands for Pine Valley Furniture
Default values
and domain
constraints
Chapter 7 14
© Prentice Hall, 2002
Figure 7-6: SQL database definition commands for Pine Valley Furniture
Overall table
definitions
Chapter 7 15
© Prentice Hall, 2002
Changing and Removing
Tables
ALTER TABLE statement allows you to
change column specifications:
– ALTER TABLE CUSTOMER_T ADD (TYPE
VARCHAR(2))
DROP TABLE statement allows you to
remove tables from your schema:
– DROP TABLE CUSTOMER_T
Chapter 7 16
© Prentice Hall, 2002
Creating indexes
– Speed up random/sequential access to base
table data
– Example
CREATE INDEX NAME_IDX ON
CUSTOMER_T(CUSTOMER_NAME)
This makes an index for the
Chapter 7 17
© Prentice Hall, 2002
Insert Statement
Adds data to a table
Inserting into a table
– INSERT INTO CUSTOMER_T VALUES (001, ‘CONTEMPORARY
Casuals’, 1355 S. Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601);
Inserting a record that has some null attributes requires identifying the
fields that actually get data
– INSERT INTO PRODUCT_T (PRODUCT_ID,
PRODUCT_DESCRIPTION,PRODUCT_FINISH, STANDARD_PRICE,
PRODUCT_ON_HAND) VALUES (1, ‘End Table’, ‘Cherry’, 175, 8);
Inserting from another table
– INSERT INTO CA_CUSTOMER_T SELECT * FROM CUSTOMER_T WHERE
STATE = ‘CA’;
Chapter 7 18
© Prentice Hall, 2002
Delete Statement
Removes rows from a table
Delete certain rows
– DELETE FROM CUSTOMER_T WHERE
STATE = ‘HI’;
Delete all rows
– DELETE FROM CUSTOMER_T;
Chapter 7 19
© Prentice Hall, 2002
Update Statement
Modifies data in existing rows
Chapter 7 20
© Prentice Hall, 2002
The SELECT Statement
Used for queries on single or multiple tables
Clauses of the SELECT statement:
– SELECT
List the columns (and expressions) that should be returned from the query
– FROM
Indicate the table(s) or view(s) from which data will be obtained
– WHERE
Indicate the conditions under which a row will be included in the result
– GROUP BY
Indicate categorization of results
– HAVING
Indicate the conditions under which a category (group) will be included
– ORDER BY
Sorts the result according to specified criteria
Chapter 7 21
© Prentice Hall, 2002
Figure 7-8: SQL
statement
processing order
(adapted from
van der Lans,
p.100)
Chapter 7 22
© Prentice Hall, 2002
SELECT Example
Find products with standard price less than $275
Chapter 7 23
© Prentice Hall, 2002
SELECT Example with ALIAS
Alias is an alternative column or table name
Chapter 7 24
© Prentice Hall, 2002
SELECT Example
Using a Function
Using the COUNT aggregate function to find
totals
Chapter 7 25
© Prentice Hall, 2002
SELECT Example – Boolean Operators
AND, OR, and NOT Operators for customizing
conditions in WHERE clause
SELECT PRODUCT_DESCRIPTION,
PRODUCT_FINISH, STANDARD_PRICE
FROM PRODUCT_V
WHERE (PRODUCT_DESCRIPTION LIKE ‘%Desk’
OR PRODUCT_DESCRIPTION LIKE ‘%Table’)
AND UNIT_PRICE > 300;
Note: the LIKE operator allows you to compare strings using wildcards. For
example, the % wildcard in ‘%Desk’ indicates that all strings that have any
number of characters preceding the word “Desk” will be allowed
Chapter 7 26
© Prentice Hall, 2002
SELECT Example –
Sorting Results with the ORDER BY Clause
Sort the results first by STATE, and within a state
by CUSTOMER_NAME
Note: the IN operator in this example allows you to include rows whose
STATE value is either FL, TX, CA, or HI. It is more efficient than separate
OR conditions
Chapter 7 27
© Prentice Hall, 2002
SELECT Example –
Categorizing Results Using the GROUP BY Clause
For use with aggregate functions
– Scalar aggregate: single value returned from SQL query with
aggregate function
– Vector aggregate: multiple values returned from SQL query with
aggregate function (via GROUP BY)
Chapter 7 28
© Prentice Hall, 2002
SELECT Example –
Qualifying Results by Categories
Using the HAVING Clause
For use with GROUP BY
Chapter 7 29
© Prentice Hall, 2002