Title: Chapter 3 Single Table Queries
1Chapter 3Single Table Queries
2Objectives
- Retrieve data from a database using SQL commands
- Use compound conditions
- Use computed columns
- Use the SQL LIKE operator
- Use the SQL IN operator
3Objectives
- Sort data using the ORDER BY command
- Sort data using multiple keys and in ascending
and descending order - Use SQL functions
- Use nested subqueries
- Group data using the GROUP BY command
4Objectives
- Select individual groups using the HAVING clause
- Retrieve columns with null values
5Simple Queries
- Query - a question represented in a way that the
DBMS can understand - Basic format
- SELECT-FROM
- Optional
- SELCT-FROM-WHERE
6SELECT Command
- SELECT clause
- Followed by the columns to be included in the
query. - FROM clause
- followed by name of the table that contains the
data to query - WHERE clause (optional)
- followed by conditions that apply to the data to
be retrieved
7SELECT Command
- There are no special formatting rules for SQL
- FROM command and WHERE command appear on separate
lines for readability and understanding only
8Example 1
- List the customer number, last name, and balance
of every customer
9SELECT Command to Select Certain Columns
10Example 2
- List the complete PART table
11SELECT Command to Select All Customers
12Use of the WHERE Clause Simple Conditions
- A simple condition has the form
- column name, comparison operator, either another
column name or a value
13Example 3
- What is the name of customer number 124?
14SELECT Command With a Condition
15Comparison Operators
16Example 4
- Find the customer number for every customer whose
last name is Adams
17SELECT Command With a Condition That Retrieves
Multiple Rows
18Note
- Generally SQL is not case sensitive
- Exception
- Values within quotation marks
- Use the correct case for these values.
- Example
- WHERE LAST adams will not select any rows if
the stored value is Adams
19Example 5
- Find the customer number, last name, first name,
and current balance for every customer whose
balance exceeds the credit limit
20SELECT Command Involving a Comparison
21Compound Conditions
- Compound conditions
- Formed by connecting two or more simple
conditions - Uses AND, OR, and NOT operators
- AND all conditions must be true
- OR any one of conditions is true
- NOT reverses the truth of the original condition
22Example 6
- List the description of every part that is in
warehouse number 3 and that has more than 100
units on hand
23SELECT Command Involving an AND Condition
24SELECT Command With WHERE Clause and AND
Condition on a Single Line
25Example 7
- List the description of every part that is in
warehouse number 3 or that has more than 100
units on hand
26SELECT Command Involving an OR Condition
27Example 8
- List the description of every part that is not in
warehouse number 3
28SELECT Command Involving a NOT Condition
29Example 9
- List the customer number, last name, first name,
and balance for every customer whose balance is
between 500 and 1000
30SELECT Command Involving an AND Condition on a
Single Column
31Use of BETWEEN
- BETWEEN operator
- Not an essential feature
- Can arrive at same answer without it using AND
- Does make certain SELECT commands simpler
32SELECT Command Involving a BETWEEN Condition
33Computed Columns
- Computed columns
- Do not exist in the database
- Can be computed using data in existing columns
- Use arithmetic operators
34Arithmetic Operators
35Example 10
- Find the customer number, last name, first name,
and available credit for every customer who has a
credit limit of at least 1,500
36SELECT Column Involving a Computed Column
37Example 11
- Find the customer number, last name, first name,
and available credit for every customer who has
at least 1,000 of available credit
38SELECT Command With a Computation in the Condition
39Use of LIKE
- LIKE operator is used when exact matches will not
work - Use LIKE with a wildcard symbol
40Example 12
- List the customer number, last name, first name,
and complete address of every customer who lives
on Pine that is, whose address contains the
letters Pine
41SELECT Command With Wildcards
42Wildcard Symbols
- Percent symbol ()
- represents any collection of characters
- Pine
- Underscore (_)
- Represents any individual character
- T_m
43Use of IN
- The IN clause provides concise way of phrasing
certain conditions
44Example 13
- List the customer number, last name, and first
name for every customer with a credit limit of
1,000, 1,500, or 2,000
45SELECT Command Involving an IN Condition
46Sorting
- Generally, the order of rows is immaterial to the
DBMS - There is no defined order in which results are
displayed - Rows can displayed in the order in which they
were entered
47Use of ORDER BY
- Use the ORDER BY command to list data in a
specific order - The column on which data is to be sorted is
called a sort key or simply key
48Example 14
- List the customer number, last name, first name,
and balance of every customer - Order the output in ascending (increasing) order
by balance
49SELECT Command to Order Rows
50Sorting with Multiple Keys in Descending Order
- When sorting more than one column
- the more important column is called the major key
(or primary sort key) - the less important column is called the minor key
(or secondary sort key) - List keys in the order of importance in the ORDER
BY clause - Sort descending by using the DESC operator
51Example 15
- List the customer number, last name, first name,
and credit limit of every customer, ordered by
credit liming in descending order and by last
name within credit limit - The output should be sorted by credit limit in
descending order - Sort the output by last name within each group of
customers with the same credit limit
52SELECT Command With Multiple Sort Keys
53Using Functions
- SQL has functions to calculate
- Sums
- Averages
- Counts
- Maximum values
- Minimum values
54SQL Functions
55Use of COUNT Function
- Count function counts the number of rows in a
table - The specific row to be counted is not important
because each count should provide the same answer - Most implementations of SQL allow the use of the
asterisk () to represent any column
56Example 16
- How many parts are in item class HW?
57SELECT Command to Count Rows
58Count without the Asterisk
- SELECT COUNT(PART_NUMBER)
- FROM PART
- WHERE ITEM_CLASS HW
59Use of the SUM Function
- The SUM function is used to calculate totals
- The column to be totaled must be specified
- The column to be totaled must be numeric
60Example 17
- Find the number of customers and the total of
their balance
61SELECT Command to Calculate a COUNT and a SUM
62Using AVG, MAX, and MIN
- AVG, MAX and MIN functions are similar to the SUM
- SUM, AVG, MAX and MIN functions ignore
(eliminate) null values - Null values can cause strange results when
calculated
63SELECT Command With Several Functions
64Use of DISTINCT
- DISTINCT operator is not a function
- Useful when used in conjunction with COUNT
function
65Example 18
- Find the customer number of every customer who
currently has an open order (that is, an order
currently in the ORDERS table).
66Results With Repeated Customer Numbers
67Example 19
- Find the customer number of every customer who
currently has an open order - List each customer only once
68Results Without Repeated Customer Numbers
69Example 20
- Count the number of customers who currently have
open orders
70Count That Includes Repeated Customer Numbers
71Count Without Repeated Customer Numbers
72Nesting Queries
- Sometimes obtaining the results you need is a
two-step process (or more).
73Example 21
- What is the largest credit limit given to any
customer of sales rep 06?
74Selecting the Maximum Credit Limit
75Example 22
- Display the customer number, last name, and first
name of every customer in the Premiere Products
database who has the credit limit found in
Example 21
76Query Using Previous Result
77Subqueries
- It is possible to place one query inside another
- Inner query is called a subquery and it is
evaluated first - Outer query can use the results of the subquery
to find its results
78Example 23
- Find the answer to Examples 21 and 22 in one step
79Using IN and a Subquery
80Query Using an EQUAL Condition and a Subquery
81Example 24
- List the customer number, first name, last name,
and balance for every customer whose balance is
greater than the average balance
82Query Using Greater Than Operator and a Subquery
83Note
- SQL will not allow the use of the condition
BALANCE gt AVG(BALANCE) in the WHERE clause - A subquery must be used to obtain the average
balance - Results of the subquery can be used in the
condition as shown in Figure 3.29
84Grouping
- Grouping creates groups of rows that share some
common characteristics - Calculations are performed for the entire group
- Use the GROUP BY command
85Using GROUP BY
- GROUP BY command allows data to be grouped in a
particular order - Statistics are calculated on the groups
86Example 25
- List the total for each order
87Grouping Column
88HAVING
- HAVING command is used for groups
89Example 26
- List the total for those orders over 200
90Query Using a HAVING Clause
91HAVING vs. WHERE
- WHERE clause limits rows
- HAVING clause limits groups
92Example 27
- List each credit limit and the number of
customers having each credit limit
93Counting the Rows in a Group
94Example 28
- Repeat Example 27, but list only those credit
limits held by more than one customer
95Displaying Groups That Contain More Than One Row
96Example 29
- List each credit limit and the total number of
customers of sales rep 03 who have this limit
97Restricting the Rows to Be Grouped
98Example 30
- Repeat Example 29, but list only those credit
limits held by more than one customer
99Restricting the Rows and Groups
100Example 31
- List the customer number, last name, and first
name of every customer whose street value is null
(unknown)
101Selecting Rows Containing Null Values
102SQL Query Clauses and Operators
103Summary
- The basic form of a SQL command is SELECT-FROM.
Specify the columns to be listed after the word
SELECT (or type to select all columns), and
then specify the table name that contains these
columns after the word FROM. Optionally, you can
include conditions after the word WHERE - Simple conditions are written in the form column
name, comparison operator, column name or value.
Simple conditions can involve any of the
comparison operators , gt, gt, lt, lt, or ltgt or
! (not equal to).
104Summary
- You can form compound conditions by combining in
simple conditions, using the operators AND, OR,
or NOT. - Use the BETWEEN operator to indicate a range of
values in a condition - Use computed columns in SQL commands by using
arithmetic operators and writing the computation
in place of a column name
105Summary
- To check for a value in a character column that
is similar to a particular string of characters,
use the LIKE clause - The wildcard represents any collection of
characters - The _ wildcard represents any single character
- To check whether a column contains one of a
particular set of values, use the IN clause - Use the ORDER BY clause to sort data
- List sort keys in order of importance
- To sort in descending order, follow the sort key
with DESC
106Summary
- SQL contains the functions COUNT, SUM, AVG, MAX,
AND MIN - To avoid duplicates, either when listing or
counting values, precede the column name with the
DISTINCT operator - When one SQL query is placed inside another, it
is called a nested query - The inner query, called a subquery, is evaluated
first. - Use the GROUP BY clause to group data
107Summary
- Use the HAVING clause to restrict the output to
certain groups - Use the phrase IS NULL in the WHERE clause to
find rows containing a null value in some column