0% found this document useful (0 votes)
452 views29 pages

Modern Database Management 6 Edition: Jeffrey A. Hoffer, Mary B. Prescott, Fred R. Mcfadden

Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
452 views29 pages

Modern Database Management 6 Edition: Jeffrey A. Hoffer, Mary B. Prescott, Fred R. Mcfadden

Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Chapter 7:

SQL

Modern Database Management


6th Edition
Jeffrey A. Hoffer, Mary B. Prescott, Fred R.
McFadden

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

CUSTOMER_NAME field of the


CUSTOMER_T table

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

 UPDATE PRODUCT_T SET UNIT_PRICE = 775


WHERE PRODUCT_ID = 7;

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

 SELECT PRODUCT_NAME, STANDARD_PRICE


 FROM PRODUCT_V
 WHERE STANDARD_PRICE < 275

Table 7-3: Comparison Operators in SQL

Chapter 7 23
© Prentice Hall, 2002
SELECT Example with ALIAS
 Alias is an alternative column or table name

SELECT CUST.CUSTOMER AS NAME,


CUST.CUSTOMER_ADDRESS
FROM CUSTOMER_V CUST
WHERE NAME = ‘Home Furnishings’;

Chapter 7 24
© Prentice Hall, 2002
SELECT Example
Using a Function
 Using the COUNT aggregate function to find
totals

 SELECT COUNT(*) FROM ORDER_LINE_V


 WHERE ORDER_ID = 1004;

Note: with aggregate functions you can’t have single-


valued columns included in the SELECT clause

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

 SELECT CUSTOMER_NAME, CITY, STATE


 FROM CUSTOMER_V
 WHERE STATE IN (‘FL’, ‘TX’, ‘CA’, ‘HI’)
 ORDER BY STATE, 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)

SELECT STATE, COUNT(STATE)


FROM CUSTOMER_V
GROUP BY STATE;

Note: you can use single-value fields with aggregate


functions if they are included in the GROUP BY clause

Chapter 7 28
© Prentice Hall, 2002
SELECT Example –
Qualifying Results by Categories
Using the HAVING Clause
 For use with GROUP BY

SELECT STATE, COUNT(STATE)


FROM CUSTOMER_V
GROUP BY STATE
HAVING COUNT(STATE) > 1;

Like a WHERE clause, but it operates on groups (categories), not on


individual rows. Here, only those groups with total numbers
greater than 1 will be included in final result

Chapter 7 29
© Prentice Hall, 2002

You might also like