Chapter 7 - Structured Query Language
Chapter 7 - Structured Query Language
QUERY LANGUAGE
PREPARED BY: PUAN SRI YUSMAWATI MOHD YUNUS
FSKM UiTMCNS
Learning Objectives
Nonprocedural language
First task
Authentication Schema
• Process through which the • Group of database objects—
DBMS verifies that only such as tables and indexes—
registered users are able to that are related to each other
access the database
• Log on to the RDBMS using a
user ID and a password created
by the database administrator
Creating Table Structures
Use one line per column (attribute) definition
UNIQUE specification
UNIQUE constraint
• Ensures that all values in a column are unique
DEFAULT constraint
• Assigns a value to an attribute when a new row is
added to a table
CHECK constraint
• Validates data when an attribute value is entered
SQL Indexes
When a primary key is declared, DBMS automatically creates a
unique index
Composite index
Inserting table
rows with a select
subquery
Common SQL Data Manipulation
Commands
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]
Syntax
• SELECT columnlist
FROM tablename
Columnlist represents one or more attributes, separated by
commas
◦ UPDATE
UPDATEEMP tablename
SET columnnameEMP_PCT
SET = expression [, columname =
= 5.00
WHERE EMP_NUM = ‘101’;
expression]
[WHERE conditionlist];
UPDATE EMP
If SET
more than oneEMP_PCT
attribute is to
= 8.00 be updated in
WHERE EMP_NUM = ‘102’;
the row, separate corrections with commas
Restoring Table Contents
ROLLBACK
• Used restore the database to its previous condition
• Only applicable if COMMIT command has not been used to permanently
store the changes in the database
Syntax
• ROLLBACK;
INSERT
• INSERT INTO EMP_1 VALUES (‘102’, ‘Senior’, ‘David’, ‘H’, ’12-
Jul-87’, ‘501’);
• Inserts multiple rows from another table (source)
• Uses SELECT subquery
• Query that is embedded (or nested) inside another query
• Executed first
• Syntax
• INSERT INTO tablename SELECT columnlist FROM
tablename
INSERT INTO PART (PART_CODE, PART_DESCRIPT,
PART_PRICE)
SELECT P_CODE, P_DESCRIPT, P_PRICE FROM PRODUCT;
Selecting Rows with Conditional
Restrictions
Select partial table contents by placing restrictions
on rows to be included in output
◦ Add conditional restrictions to the SELECT statement,
using WHERE clause
Syntax
◦ SELECT columnlist
FROM tablelist
[ WHERE conditionlist ] ;
SELECT P_DESCRIPT,
P_INDATE, P_PRICE,
V_CODE FROM
PRODUCT WHERE
V_CODE = 21344;
Comparison Operators
Selected PRODUCT Table Attributes for
VENDOR Codes Other than 21344
SELECT P_DESCRIPT,
P_INDATE, P_PRICE,
V_CODE FROM
PRODUCT WHERE
V_CODE <>
21344;
Selected PRODUCT Table Attributes
with a P_PRICE Restriction
SELECT
P_DESCRIPT,
P_ONHAND,
P_MIN,
P_PRICE
FROM PRODUCT
WHERE P_PRICE <=
10;
Selected PRODUCT Table Attributes: Date
Restriction
SELECT P_DESCRIPT,
P_ONHAND, P_MIN,
P_PRICE, P_INDATE
FROM PRODUCT WHERE
P_INDATE >= ’20 – Jan
– 2004’;
SELECT Statement with a Computed
Column
SELECT P_DESCRIPT,
P_ONHAND, P_PRICE,
P_ONHAND * P_PRICE
FROM PRODUCT;
SELECT Statement with a Computed
Column and an Alias
SELECT P_DESCRIPT,
P_ONHAND, P_PRICE,
P_ONHAND * P_PRICE
AS TOTVALUE FROM
PRODUCT;
Arithmetic Operators: The Rule of
Precedence
Perform
Perform power
operations within
operations
parentheses
Perform Perform
multiplications additions and
and divisions subtractions
Selected PRODUCT Table Attributes:
The Logical OR
SELECT P_DESCRIPT,
P_INDATE, P_PRICE,
V_CODE FROM
PRODUCT WHERE
V_CODE = 21344 OR
V_CODE = 24288;
Selected PRODUCT Table Attributes:
The Logical AND
SELECT P_DESCRIPT,
P_INDATE, P_PRICE,
V_CODE FROM
PRODUCT WHERE
PRICE < 50 AND
P_INDATE > ’15 – Jan
– 2004’;
Selected PRODUCT Table Attributes:
The Logical AND and OR
SELECT P_DESCRIPT,
P_INDATE, P_PRICE,
V_CODE FROM
PRODUCT WHERE
(P_PRICE < 50 AND
P_INDATE > ’15 – Jan
– 2004’) OR V_CODE =
24288;
Special Operators
BETWEEN
• Used to check whether attribute value is within a range
IS NULL
• Used to check whether attribute value is null
LIKE
• Used to check whether attribute value matches a given string pattern
IN
• Used to check whether attribute value matches any value within a value list
EXISTS
• Used to check if a subquery returns any rows
Advanced Data Definition Commands
UPDATE PRODUCT
SET P_SALECODE = ‘1’
WHERE P_CODE = ‘1546-QQ2’;
Update of the P_SALECODE Column in
Multiple Data Rows
UPDATE PRODUCT
SET P_SALECODE = ‘1’
WHERE P_CODE =
‘2232/QWE’
OR P_CODE = ‘2232/QTY’;
The Effect of Multiple Data Updates in
the PRODUCT Table (MS Access)
UPDATE PRODUCT
SET P_SALECODE = ‘2’
WHERE P_INDATE <
’25-Dec-2003’;
UPDATE PRODUCT
SET P_SALECODE = ‘1’
WHERE P_INDATE >=
’16-Jan-2004’;
AND P_INDATE <=
’10-Feb-2004’;
Copying Parts of Tables
SQL permits copying contents of selected table
columns so that the data need not be reentered
manually into newly created table(s)
• Count
• Find minimum and maximum values
• Calculate averages
SELECT P_CODE,
P_DESRIPT, P_INDATE,
P_PRICE FROM
PRODUCT ORDER BY
P_PRICE;
Some Basic SQL Aggregate Functions
COUNT
AVG
GROUP BY
Joining Database Tables
Ability to combine (join) tables on common
attributes is most important distinction between a
relational database and other databases
SELECT P_DESCRIPT,
P_PRICE, V_NAME,
V_CONTACT,
V_AREACODE, V_PHONE
FROM PRODUCT,
VENDOR WHERE
PRODUCT.V_CODE =
VENDOR.V_CODE AND
P_INDATE > ’15-Jan-
2004’;
Converting an ER Model
into a Database Structure
Requires following specific rules that govern
such a conversion