Title: Chapter 11 Slides
1IT238 Data Modeling and Database Design
Unit 7Data Manipulation Relational Algebra and
SQL
Instructor Qing Yan, M.D., Ph.D.
2Unit 7 Objectives
- Use comparison and logical operators in the WHERE
clause of an SQL query - Analyze how to handle null values in SQL queries
3Unit 7 To-Do List
- Complete the reading Textbook and Web
- Participate in the discussion board30 points
- Attend the introductory seminar or complete FLA
quiz20 points - Complete the unit assignment50 points
4(No Transcript)
5(No Transcript)
6Key Concepts
- Unary operator- A relational algebra operator
that operates on a single relation. - Select operator- The unary relational algebra
operator used to select a horizontal subset of
the tuples that satisfy a selection condition
from a relation. - Cartesian product operator- The binary relational
algebra operator that combines tuples from any
two relations in a combinatorial fashion.
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
7Key Concepts
- DISTINCT qualifier- When specified as part of the
SELECT statement, causes duplicate rows in
queries to be removed. - LIKE operator- The SQL-92 operator used in
conjunction with pattern matching. - VARCHAR() data type- A data type, where
represents the length of the column, has a
maximum size of 2000 characters in most DBMSs.
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
8Key Concepts
- IN NOT IN operator- When used in conjunction
with a subquery, evaluates if rows processed by
the outer query are equal not equal to any of
the values returned by the subquery. - ANY operator- When used in conjunction with a
subquery, specifies that the condition be true
for at least one value from the set of values. - ALL operator- When used in conjunction with a
subquery, specifies that the condition be true
for all values from the set of values.
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
9Querying Using SQL
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
10The SELECT-FROM-WHERE Block
- SELECT ltcolumn listgt
- FROM lttable listgt
- WHERE ltconditiongt lt-- WHERE clause is
optional - ltcolumn listgt is a list of column names whose
values are to be retrieved by the query - lttable listgt is a list of the table names
required to process the query - ltconditiongt is a conditional (Boolean) expression
that identifies the rows to be retrieved by the
query.
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
11Optional Add-ons To SELECT Clause
- GROUP BY group_by expression
- HAVING group_condition
- ORDER BY column name(s)
- group_by_expression forms groups of rows with the
same value - group_condition filters the groups subject to
some condition - column name(s) specifies the order of the output.
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
12COURSE Relation
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
13SECTION Relation
Se_section Se_qtr Se_year Se_time Se_maxst
Se_room Se_co_course Se_pr_profid --------
--- ------ ------- ------- --------
-------------- ------------- ------------
101 A 2007 T1015 25
22QA375 HT54347 901 A 2006
W1800 35 Rhodes 611 22IS270
SK85977 902 A 2006 H1700
25 Lindner 108 22IS270 SK85977
101 S 2006 T1045 29 Lindner 110
22IS330 SK85977 102 S 2006
H1045 29 Lindner 110 22IS330
CC49234 701 W 2007 M1000
33 Braunstien 211 22IS832 CC49234
101 A 2007 W1800 Baldwin 437
20ECES212 RR79345 101 U 2007
T1015 33 22QA375
HT54347 101 A 2007 H1700
29 Lindner 108 22IS330 SK85977
101 S 2007 T1015 30
22QA375 HT54347 101 W 2007
T1015 20 22QA375
HT54347
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
14Which courses are three-hour courses?
- SELECT COURSE.CO_NAME, COURSE.CO_COURSE,
COURSE.CO_CREDIT, COURSE.CO_COLLEGE,
COURSE.CO_HRS, COURSE.CO_DPT_DCODE - FROM COURSE
- WHERE COURSE.CO_HRS 3
- SELECT FROM COURSE WHERE COURSE.CO_HRS 3
Co_name Co_course Co_credit
Co_college Co_hrs Co_dpt_dcode --------
-------------- ---------- ---------
-------------------- ------- ------------ Intro
to Economics 15ECON112 U Arts and
Sciences 3 1 Supply Chain
Analysis 22QA411 U Business
3 3 Principles of IS
22IS270 G Business 3
7 Programming in C 20ECES212 G
Engineering 3
6 Optimization 22QA888 G
Business 3
3 Financial Accounting 18ACCT801 G
Education 3
4 Database Principles 22IS832 G
Business 3 7 Systems
Analysis 22IS430 G Business
3 7
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
15Which courses offered by Department 7 are
three-hour courses?
- SELECT
- FROM COURSE
- WHERE COURSE.CO_DPT_DCODE 7 AND
- COURSE.CO_HRS 3
Result Co_name Co_course
Co_credit Co_college Co_hrs
Co_dpt_dcode ---------------------- ----------
--------- -------------------- -------
--------------- Principles of IS 22IS270
G Business 3
7 Database Principles 22IS832 G
Business 3
7 Systems Analysis 22IS430 G
Business 3 7
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
16Which sections have a maximum number of students
greater than 30 or are offered in Linder 110?
- SELECT
- FROM SECTION
- WHERE SECTION.SE_MAXST gt 30 OR SECTION.SE_ROOM
'Lindner 110'
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
17Use of AND and/or OR
- When AND and OR appear in the same WHERE clause,
all the ANDs are performed first - ExampleWHERE COURSE.CO_CREDIT 'U' and
COURSE.CO_COLLEGE 'Business' or
COURSE.CO_COLLEGE 'Engineering - Every condition yields either true or false
- NOT operator
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
18Use of IN and NOT IN
- IN or NOT IN can also be used as comparison
operators. - IN is evaluated in the context of being equal to
any member of a set of values - A nested query can follow the IN/NOT IN operator
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
19Use of IN and NOT IN (continued)
- SELECT
- FROM COURSE
- WHERE COURSE.CO_CREDIT 'U AND
(COURSE.CO_COLLEGE 'Business' OR
COURSE.CO_COLLEGE 'Engineering') - SELECT
- FROM COURSE
- WHERE COURSE.CO_CREDIT 'U AND
COURSE.CO_COLLEGE IN ('Business', 'Engineering')
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
20Which professors earn more than 6,000?
- SELECT
- FROM PROFESSOR
- WHERE PROFESSOR.PR_SALARY/12 gt 6000
- Also TRUNC, ROUND
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
21Use of AS in Column Aliases
- SELECT PROFESSOR.PR_NAME, PROFESSOR.PR_SALARY/12
AS "Monthly Salary" - FROM PROFESSOR
- WHERE PROFESSOR.PR_SALARY/12 gt 6000
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
22Use of BETWEEN and NOT BETWEEN
- SELECT PROFESSOR.PR_NAME, PROFESSOR.PR_SALARY/12
AS "Monthly Salary" - FROM PROFESSOR
- WHERE PROFESSOR.PR_SALARY/12 BETWEEN 6000 AND
7000 - Note BETWEEN is inclusive
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
23Which colleges offer courses?
- SELECT COURSE.CO_COLLEGE
- FROM COURSE
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
24Use of DISTINCT (Versus ALL)
- SELECT DISTINCT COURSE.CO_COLLEGE FROM COURSE
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
25What is the age (in years) of each professor in
Department 3 when hired?
- SELECT PROFESSOR.PR_NAME, TRUNC((PROFESSOR.PR_DATE
HIRED - PROFESSOR.PR_BIRTHDATE)/365.25,0) "Age
When Hired" - FROM PROFESSOR
- WHERE PROFESSOR.PR_DPT_DCODE 3
- 365.25 accounts for leap years
- ,0 indicates the decimals
- AS is optional, here it is left out
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
26NULL Values
- Please note that two ways of inserting null
values exist (1) use the word NULL, or (2)
define a character sting that is zero characters
long - ExampleINSERT INTO Textbook VALUES
(111-11111111, Null Publisher 1, 2004,
null)INSERT INTO Textbook VALUES
(222-22222222, Null Publisher 2, 2004, )
INSERT INTO Textbook VALUES (333-33333333,
Single Space Publisher, 2004, ) - What does the following SQL statement do?
- SELECT TEXTBOOK.TX_PUBLISHER
- FROM TEXTBOOK
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
27TEXTBOOK Relation
space
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
28NULL Values Example
- SELECT TEXTBOOK.TX_PUBLISHER
- FROM TEXTBOOK
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
29IS NULL and IS NOT NULL
- Instead
- SELECT TEXTBOOK.TX_PUBLISHER
- FROM TEXTBOOK
- WHERE TEXTBOOK.TX_PUBLISHER IS NOT NULL
- Note that the only operator that can be used with
null values IS NULL and IS NOT NULL! Do not use
, gt, lt, etc.
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
30Pattern Matching
- Use the LIKE operator in conjunction with the two
wildcard characters percent sign () and the
underscore symbol (_) - The percent sign represents a series of one or
more unspecified characters while the underscore
symbol represents exactly one character.
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
31The LIKE Operator
- SELECT TEXTBOOK.TX_TITLE
- FROM TEXTBOOK
- WHERE TEXTBOOK.TX_TITLE LIKE '_i'
- Remember that character strings are
case-sensitive!
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
32The LIKE Operator (continued)
- SELECT TEXTBOOK.TX_TITLE
- FROM TEXTBOOK
- WHERE TEXTBOOK.TX_TITLE LIKE ''
- Note that varchar and char can make a difference
when e.g., searching for a string that ends in a
particular character (e.g., s)
From Umanath, N.S., Scamell, R. (2007). Data
Modeling and Database Design. Boston Thomson
Course Technology.
33Summary
- SELECT-WHERE-FROM clause of an SQL query
- AND, OR
- IN, NOT IN
- BETWEEN, NOT BETWEEN
- IS NULL, IS NOT NULL
- LIKE, , _
34Q A
35(No Transcript)
36(No Transcript)