Database Systems:
Design, Implementation, and
Management
Tenth Edition
Chapter 7
Introduction to Structured Query
Language (SQL)
Objectives
In this chapter, students will learn:
 The basic commands and functions of SQL
 How to use SQL for data administration (to
create tables and indexes)
 How to use SQL for data manipulation (to add,
modify, delete, and retrieve data)
 How to use SQL to query a database for useful
information
Database Systems, 10th Edition
Introduction to SQL
 SQL functions fit into two broad categories:
 Data definition language
 Data manipulation language
 Basic command set has vocabulary of fewer
than 100 words
 American National Standards Institute (ANSI)
prescribes a standard SQL
 Several SQL dialects exist
Database Systems, 10th Edition
Database Systems, 10th Edition
Database Systems, 10th Edition
Data Definition Commands
 The database model
 In this chapter, a simple database with these
tables is used to illustrate commands:
CUSTOMER
INVOICE
LINE
PRODUCT
VENDOR
 Focus on PRODUCT and VENDOR tables
Database Systems, 10th Edition
Database Systems, 10th Edition
Creating the Database
 Two tasks must be completed:
 Create database structure
 Create tables that will hold end-user data
 First task:
 RDBMS creates physical files that will hold
database
 Differs substantially from one RDBMS to another
Database Systems, 10th Edition
Creating the Database (contd.)
 Authentication
 DBMS verifies that only registered users are
able to access database
 Log on to RDBMS using user ID and password
created by database administrator
Database Systems, 10th Edition
The Database Schema
 Schema
 Group of database objects that are related to
each other
 CREATE SCHEMA AUTHORIZATION {creator};
 Command is seldom used directly
Database Systems, 10th Edition
10
Data Types
 Data type selection is usually dictated by nature
of data and by intended use
 Supported data types:
Number(L,D), Integer, Smallint, Decimal(L,D)
Char(L), Varchar(L), Varchar2(L)
Date, Time, Timestamp
Real, Double, Float
Interval day to hour
Many other types
Database Systems, 10th Edition
11
Database Systems, 10th Edition
12
Database Systems, 10th Edition
13
Creating Table Structures
 Use one line per column (attribute) definition
 Use spaces to line up attribute characteristics
and constraints
 Table and attribute names are capitalized
 NOT NULL specification
 UNIQUE specification
Database Systems, 10th Edition
14
Creating Table Structures (contd.)
 Primary key attributes contain both a NOT
NULL and a UNIQUE specification
 RDBMS will automatically enforce referential
integrity for foreign keys
 Command sequence ends with semicolon
Database Systems, 10th Edition
15
SQL Constraints
 NOT NULL constraint
 Ensures that column does not accept nulls
 UNIQUE constraint
 Ensures that all values in column are unique
 DEFAULT constraint
 Assigns value to attribute when a new row is
added to table
 CHECK constraint
 Validates data when attribute value is entered
Database Systems, 10th Edition
16
SQL Indexes
 When primary key is declared, DBMS
automatically creates unique index
 Often need additional indexes
 Using CREATE INDEX command, SQL indexes
can be created on basis of any selected
attribute
 Composite index
 Index based on two or more attributes
 Often used to prevent data duplication
Database Systems, 10th Edition
17
Data Manipulation Commands
INSERT
SELECT
COMMIT
UPDATE
ROLLBACK
DELETE
Database Systems, 10th Edition
18
Adding Table Rows
 INSERT
 Used to enter data into table
 Syntax:
 INSERT INTO columnname
VALUES (value1, value2,  , valueN);
Database Systems, 10th Edition
19
Adding Table Rows (contd.)
 When entering values, notice that:
 Row contents are entered between parentheses
 Character and date values are entered between
apostrophes
 Numerical entries are not enclosed in
apostrophes
 Attribute entries are separated by commas
 A value is required for each column
 Use NULL for unknown values
Database Systems, 10th Edition
20
Saving Table Changes
 Changes made to table contents are not
physically saved on disk until:
 Database is closed
 Program is closed
 COMMIT command is used
 Syntax:
 COMMIT [WORK];
 Will permanently save any changes made to
any table in the database
Database Systems, 10th Edition
21
Listing Table Rows
 SELECT
 Used to list contents of table
 Syntax:
SELECT columnlist
FROM tablename;
 Columnlist represents one or more attributes,
separated by commas
 Asterisk can be used as wildcard character to
list all attributes
Database Systems, 10th Edition
22
Updating Table Rows
 UPDATE
 Modify data in a table
 Syntax:
UPDATE tablename
SET columnname = expression [, columnname =
expression]
[WHERE conditionlist];
 If more than one attribute is to be updated in
row, separate corrections with commas
Database Systems, 10th Edition
23
Restoring Table Contents
 ROLLBACK
 Undoes changes since last COMMIT
 Brings data back to prechange values
 Syntax:
ROLLBACK;
 COMMIT and ROLLBACK only work with
commands to add, modify, or delete table rows
Database Systems, 10th Edition
24
Deleting Table Rows
 DELETE
 Deletes a table row
 Syntax:
DELETE FROM tablename
[WHERE conditionlist ];
 WHERE condition is optional
 If WHERE condition is not specified, all rows
from specified table will be deleted
Database Systems, 10th Edition
25
Inserting Table Rows with a
SELECT Subquery
 INSERT
 Inserts multiple rows from another table (source)
 Uses SELECT subquery
 Subquery: query embedded (or nested or inner)
inside another query
 Subquery executed first
 Syntax:
INSERT INTO tablename SELECT columnlist
FROM tablename;
Database Systems, 10th Edition
26
SELECT Queries
 Fine-tune SELECT command by adding
restrictions to search criteria using:
Conditional restrictions
Arithmetic operators
Logical operators
Special operators
Database Systems, 10th Edition
27
Selecting Rows with
Conditional Restrictions
 Select partial table contents by placing
restrictions on rows to be included in output
 Add conditional restrictions to SELECT
statement, using WHERE clause
 Syntax:
SELECT columnlist
FROM tablelist
[ WHERE conditionlist ] ;
Database Systems, 10th Edition
28
Database Systems, 10th Edition
29
Database Systems, 10th Edition
30
Selecting Rows with
Conditional Restrictions (contd.)
 Using comparison operators on dates
 Date procedures are often more softwarespecific than other SQL procedures
 Using computed columns and column aliases
 SQL accepts any valid expressions (or formulas)
in the computed columns
 Alias
 Alternate name given to a column or table in any
SQL statement
Database Systems, 10th Edition
31
Arithmetic Operators:
The Rule of Precedence
Perform operations within parentheses
Perform power operations
Perform multiplications and divisions
Perform additions and subtractions
Database Systems, 10th Edition
32
Logical Operators: AND, OR, and NOT
 Searching data involves multiple conditions
 Logical operators: AND, OR, and NOT
 Can be combined
 Parentheses enforce precedence order
 Conditions in parentheses are always executed
first
 Boolean algebra: mathematical field dedicated
to use of logical operators
 NOT negates result of conditional expression
Database Systems, 10th Edition
33
Special Operators
 BETWEEN: checks whether attribute value is
within a range
 IS NULL: checks whether attribute value is null
 LIKE: checks whether attribute value matches
given string pattern
 IN: checks whether attribute value matches any
value within a value list
 EXISTS: checks if subquery returns any rows
Database Systems, 10th Edition
34
Advanced Data Definition Commands
 All changes in table structure are made by
using ALTER command
 Three options:
 ADD adds a column
 MODIFY changes column characteristics
 DROP deletes a column
 Can also be used to:
 Add table constraints
 Remove table constraints
Database Systems, 10th Edition
35
Changing a Columns Data Type
 ALTER can be used to change data type
 Some RDBMSs do not permit changes to data
types unless column is empty
Database Systems, 10th Edition
36
Changing a Columns Data
Characteristics
 Use ALTER to change data characteristics
 Changes in columns characteristics are
permitted if changes do not alter the existing
data type
Database Systems, 10th Edition
37
Adding a Column
Dropping a Column
 Use ALTER to add column
 Do not include the NOT NULL clause for new
column
 Use ALTER to drop column
 Some RDBMSs impose restrictions on the
deletion of an attribute
Database Systems, 10th Edition
38
Advanced Data Updates
 UPDATE command updates only data in
existing rows
 If relationship between entries and existing
columns, can assign values to slots
 Arithmetic operators are useful in data updates
 In Oracle, ROLLBACK command undoes
changes made by last two UPDATE statements
Database Systems, 10th Edition
39
Copying Parts of Tables
 SQL permits copying contents of selected table
columns
 Data need not be reentered manually into newly
created table(s)
 First create the table structure
 Next add rows to new table using table rows
from another table
Database Systems, 10th Edition
40
Adding Primary and Foreign Key
Designations
 When table is copied, integrity rules do not
copy
 Primary and foreign keys are manually defined
on new table
 User ALTER TABLE command
 Syntax:
 ALTER TABLE tablename ADD PRIMARY
KEY(fieldname);
 For foreign key, use FOREIGN KEY in place of
PRIMARY KEY
Database Systems, 10th Edition
41
Deleting a Table from the Database
 DROP
 Deletes table from database
 Syntax:
 DROP TABLE tablename;
 Can drop a table only if it is not the one side
of any relationship
 Otherwise, RDBMS generates an error message
 Foreign key integrity violation
Database Systems, 10th Edition
42
Additional SELECT Query Keywords
 Logical operators work well in the query
environment
 SQL provides useful functions that:
 Count
 Find minimum and maximum values
 Calculate averages, etc.
 SQL allows user to limit queries to:
 Entries having no duplicates
 Entries whose duplicates may be grouped
Database Systems, 10th Edition
43
Ordering a Listing
 ORDER BY clause is useful when listing order
is important
 Syntax:
SELECT columnlist
FROM tablelist
[WHERE conditionlist]
[ORDER BY columnlist [ASC | DESC]];
 Ascending order by default
Database Systems, 10th Edition
44
Listing Unique Values
 DISTINCT clause produces list of only values
that are different from one another
 Example:
SELECT DISTINCT V_CODE
FROM PRODUCT;
 Access places nulls at the top of the list
Oracle places it at the bottom
Placement of nulls does not affect list contents
Database Systems, 10th Edition
45
Aggregate Functions
 COUNT function tallies number of non-null values
of an attribute
 Takes one parameter: usually a column name
 MAX and MIN find highest (lowest) value in a table
 Compute MAX value in inner query
 Compare to each value returned by the query
 SUM computes total sum for any specified
attribute
 AVG function format is similar to MIN and MAX
Database Systems, 10th Edition
46
Grouping Data
 Frequency distributions created by GROUP BY
clause within SELECT statement
 Syntax:
SELECT
FROM
[WHERE
[GROUP BY
[HAVING
[ORDER BY
Database Systems, 10th Edition
columnlist
tablelist
conditionlist]
columnlist]
conditionlist]
columnlist [ASC | DESC] ] ;
47
Database Systems, 10th Edition
48
Joining Database Tables
 Joining tables is the most important distinction
between relational database and other DBs
 Join is performed when data are retrieved from
more than one table at a time
 Equality comparison between foreign key and
primary key of related tables
 Join tables by listing tables in FROM clause of
SELECT statement
 DBMS creates Cartesian product of every table
Database Systems, 10th Edition
49
Joining Tables with an Alias
 Alias identifies the source table from which data
are taken
 Alias can be used to identify source table
 Any legal table name can be used as alias
 Add alias after table name in FROM clause
 FROM tablename alias
Database Systems, 10th Edition
50
Recursive Joins
 Alias is especially useful when a table must be
joined to itself
 Recursive query
 Use aliases to differentiate the table from itself
Database Systems, 10th Edition
51
Summary
 SQL commands can be divided into two overall
categories:
 Data definition language commands
 Data manipulation language commands
 The ANSI standard data types are supported by
all RDBMS vendors in different ways
 Basic data definition commands allow you to
create tables and indexes
Database Systems, 10th Edition
52
Summary (contd.)
 DML commands allow you to add, modify, and
delete rows from tables
 The basic DML commands:
 SELECT, INSERT, UPDATE, DELETE,
COMMIT, and ROLLBACK
 SELECT statement is main data retrieval
command in SQL
Database Systems, 10th Edition
53
Summary (contd.)
 WHERE clause can be used with SELECT,
UPDATE, and DELETE statements
 Aggregate functions
 Special functions that perform arithmetic
computations over a set of rows
 ORDER BY clause
 Used to sort output of SELECT statement
 Can sort by one or more columns
 Ascending or descending order
Database Systems, 10th Edition
54
Summary (contd.)
 Join output of multiple tables with SELECT
statement
 Join performed every time you specify two or
more tables in FROM clause
 If no join condition is specified, DBMX performs
Cartesian product
 Natural join uses join condition to match only
rows with equal values in specified columns
Database Systems, 10th Edition
55