Review of Structured Query Language
(SQL)
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 2
Database Systems, 10th Edition 3
Database Systems, 10th Edition 4
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 5
Database Systems, 10th Edition 6
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 7
Creating the Database (cont’d.)
• 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 8
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 9
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 10
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 11
Creating Table Structures (cont’d.)
• 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 12
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 13
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 14
Data Manipulation Commands
• INSERT
• SELECT
• COMMIT
• UPDATE
• ROLLBACK
• DELETE
Database Systems, 10th Edition 15
Adding Table Rows
• INSERT
• Used to enter data into table
• Syntax:
• INSERT INTO tablename (columnnames)
VALUES (value1, value2, … , valueN);
Database Systems, 10th Edition 16
Adding Table Rows (cont’d.)
• 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 17
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 18
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 19
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 20
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 21
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 22
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 23
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 24
Database Systems, 10th Edition 25
Selecting Rows with
Conditional Restrictions (cont’d.)
• Using comparison operators on dates
• Date procedures are often more software-specific 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 26
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 27
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 28
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 29
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 30
Changing a Column’s 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 31
Changing a Column’s Data
Characteristics
• Use ALTER to change data characteristics
• Changes in column’s characteristics are permitted if
changes do not alter the existing data type
Database Systems, 10th Edition 32
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 33
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 34
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 35
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 36
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 37
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 38
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 39
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 40
Grouping Data
• Frequency distributions created by GROUP BY clause
within SELECT statement
• Syntax:
SELECT columnlist
FROM tablelist
[WHERE conditionlist]
[GROUP BY columnlist]
[HAVING conditionlist]
[ORDER BY columnlist [ASC | DESC] ] ;
Database Systems, 10th Edition 41
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 42
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 43
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 44