LECTURE 04:
INTRODUCTION TO SQL
Modern Database Management
1
OBJECTIVES
Define terms
Define a database using SQL data
definition language
Write single and multi- table queries
using SQL
Establish referential integrity and
other constraints using SQL
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 2
SQL OVERVIEW
Structured Query Language
The standard for relational database
management systems (RDBMS)
RDBMS: A database management
system that manages data as a
collection of tables in which all
relationships are represented by
common values in related tables
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3
SQL ENVIRONMENT
Catalog
A set of schemas that constitute the description of a database
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 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 4
A simplified schematic of a typical SQL environment, as
described by the SQL: 2008 standard
5
SQL DATA TYPES
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 6
DDL, DML, DCL, and the database development process
7
SQL DATABASE DEFINITION
Data Definition Language (DDL)
Major CREATE statements:
CREATE SCHEMA–defines a portion of the
database owned by a particular user
CREATE TABLE–defines a new table and
its columns
CREATE VIEW–defines a logical table from
one or more tables or views
Other CREATE statements: CHARACTER
SET, COLLATION, TRANSLATION, ASSERTION,
DOMAIN
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 8
STEPS IN TABLE CREATION
1. Identify data types for 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 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 9
General syntax for CREATE TABLE statement used in
data definition language
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 10
THE FOLLOWING SLIDES CREATE TABLES
FOR THIS ENTERPRISE DATA MODEL
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall
11
SQL database definition commands for Pine Valley Furniture Company
(Oracle 11g)
Overall table
definitions
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 12
Defining attributes and their data types
13
Non-nullable specification
Primary keys
can never have
NULL values
Identifying primary key
14
Non-nullable specifications
Primary key
Some primary keys are composite–
composed of multiple attributes
15
Controlling the values in attributes
Default value
Domain constraint
16
Identifying foreign keys and establishing relationships
Primary key of
parent table
Foreign key of dependent table
17
DATA INTEGRITY CONTROLS
Referential integrity–
constraint that ensures that
foreign key values of a table
must match primary key
values of a related table in 1:M
relationships
Restricting:
Deletes of primary records
Updates of primary records
Chapter 6Inserts ofEducation,
© 2013 Pearson dependentInc. Publishingrecords
as Prentice Hall 18
Ensuring data integrity through updates
Referential
integrity is
enforced via
the primary-
key to foreign-
key match
19
CHANGING TABLES
ALTER TABLE statement allows you to
change column specifications:
Table Actions:
Example (adding a new column with a default value) :
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 20
REMOVING TABLES
DROP TABLE statement allows
you to remove tables from your
schema:
DROP TABLE CUSTOMER_T
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 21
INSERT STATEMENT
Adds one or more rows to a table
Inserting into a table
Inserting a record that has some null attributes
requires identifying the fields that actually get
data
Inserting from another table
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 22
CREATING TABLES WITH IDENTITY COLUMNS
Introduced with SQL:2008
Inserting into a table does not require explicit customer ID
entry or field list
INSERT INTO CUSTOMER_T VALUES ( ‘Contemporary
Casuals’, ‘1355 S. Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601);
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall
23
DELETE STATEMENT
Removes rows from a table
Delete certain rows
DELETE FROM CUSTOMER_T WHERE
CUSTOMERSTATE = ‘HI’;
Delete all rows
DELETE FROM CUSTOMER_T;
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 24
UPDATE STATEMENT
Modifies data in existing rows
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 25
MERGE STATEMENT
Makes it easier to update a table…allows combination of
Insert and Update in one statement
Useful for updating master tables with new data
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 26
SELECT STATEMENT
Used for queries on single or multiple tables
Clauses of the SELECT statement:
SELECT
List the columns (and expressions) to 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
Chapter
ORDER 6 BY© 2013 Pearson Education, Inc. Publishing as Prentice Hall 27
SQL statement
processing
order (based
on van der
Lans, 2006
p.100)
28
SELECT EXAMPLE
Find products with standard price less
than $275
Table 6-3: Comparison Operators in SQL
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 29
SELECT EXAMPLE USING ALIAS
Alias is an alternative column or
table name
SELECT CUST.CUSTOMERNAME AS
NAME,
CUST.CUSTOMERADDRESS
FROM CUSTOMER_V CUST
WHERE NAME = ‘Home
Furnishings’;
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall
30
SELECT EXAMPLE USING A FUNCTION
Using the COUNT aggregate function to
find totals
SELECT COUNT(*) FROM ORDERLINE_T
WHERE ORDERID = 1004;
Note: With aggregate functions you can’t have
single-valued columns included in the SELECT
clause, unless they are included in the GROUP
BY clause.
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 31
SELECT EXAMPLE–BOOLEAN OPERATORS
AND, OR, and NOT Operators for customizing
conditions in WHERE clause
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 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 32
Boolean query A without use of parentheses
By default,
processing
order of
Boolean
operators is
NOT, then
AND, then OR
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall
33
SELECT EXAMPLE–BOOLEAN OPERATORS
With parentheses…these override the normal
precedence of Boolean operators
With parentheses, you can override normal
precedence rules. In this case parentheses make the
OR take place before the AND.
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 34
Boolean query B with use of parentheses
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall
35
SORTING RESULTS WITH ORDER BY CLAUSE
Sort the results first by STATE, and
within a state by the CUSTOMER NAME
Note: The IN operator in this example allows you to include
rows whose CustomerState value is either FL, TX, CA, or HI. It
is more efficient than separate OR conditions.
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 36
CATEGORIZING RESULTS USING 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)
You can use single-value fields with aggregate
functions if they are included in the GROUP
BY clause
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 37
QUALIFYING RESULTS BY CATEGORIES
USING THE HAVING CLAUSE
For use with GROUP BY
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 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 38
END OF LECTURE 04
Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 39