Chapter 3

advertisement
Concepts of Database Management
Sixth Edition
Chapter 3
The Relational Model 2: SQL
Objectives
•
•
•
•
•
Introduce Structured Query Language (SQL)
Use simple and compound conditions in SQL
Use computed fields in SQL
Use built-in SQL functions
Use subqueries in SQL
Concepts of Database Management
2
Objectives (continued)
•
•
•
•
•
Group records in SQL
Join tables using SQL
Perform union operations in SQL
Use SQL to update database data
Use an SQL query to create a table in a database
Concepts of Database Management
3
Introduction
• SQL (Structured Query Language)
– Allows users to query a relational database
– Must enter commands to obtain the desired results
– Standard language for relational database
manipulation
Concepts of Database Management
4
Getting Started with SQL
• If you are completing the work in this chapter using
Microsoft Office Access 2003, Microsoft Office
Access 2007, or MySQL version 4.1 or higher, the
following sections contain specific information
about your DBMS
Concepts of Database Management
5
Getting Started with Microsoft Office
Access 2003 and 2007
• If you are using the Access 2003 or 2007 version of
the Premiere Products database provided with the
Data Files for this text:
– Tables in the database have already been created
– You will not need to execute the CREATE TABLE
commands to create the tables or the INSERT
commands to add records to the tables
Concepts of Database Management
6
Getting Started with Microsoft Office
Access 2003 and 2007 (continued)
• To execute the SQL commands shown in the
figures in Access 2003
– Open the Premiere Products database
– Click Queries on the Objects bar in the Database
window, and then double-click the “Create query in
Design view” option
– Click the Close button in the Show Table dialog box
– Click the View button list arrow on the Query Design
toolbar, and then click SQL View
– The query opens in SQL view, ready for you to type
your SQL commands
Concepts of Database Management
7
Getting Started with Microsoft Office
Access 2003 and 2007 (continued)
• To execute SQL commands shown in the figures in
Access 2007:
–
–
–
–
–
Open the Premiere Products database
Click the Create tab on the Ribbon
Click the Query Design button in the Other group
Click the Close button in the Show Table dialog box
Click the View button arrow in the Results group on
the Query Design Tools tab, then click SQL View
– The Query1 tab displays the query in SQL view,
ready for you to type your SQL commands
Concepts of Database Management
8
Getting Started with MySQL
• MySQL-Premiere script provided with the Data
Files for this text will:
– Activate the database
– Create the tables
– Insert the records
• To run a script in MySQL:
– Type the SOURCE command followed by the name
of the file
– Press the Enter key
Concepts of Database Management
9
Getting Started with MySQL
(continued)
• Before typing commands in MySQL, you must
activate the database by typing the USE command
followed by the name of the database
• The most recent command entered in MySQL is
stored in a special area of memory called the
statement history
Concepts of Database Management
10
Table Creation
• SQL CREATE TABLE command
– Creates a table by describing its layout
• Typical restrictions placed on table and column
names by DBMS
– Names cannot exceed 18 characters
– Names must start with a letter
– Names can contain only letters, numbers, and
underscores (_)
– Names cannot contain spaces
Concepts of Database Management
11
Table Creation (continued)
• INTEGER
– Numbers without a decimal point
• SMALLINT
– Uses less space than INTEGER
• DECIMAL(p,q)
– P number of digits; q number of decimal places
• CHAR(n)
– Character string n places long
• DATE
– Dates in DD-MON-YYYY or MM/DD/YYYY form
Concepts of Database Management
12
Simple Retrieval
• SELECT-FROM-WHERE: SQL retrieval command
– SELECT clause: lists fields to display
– FROM clause: lists table or tables that contain data
to display in query results
– WHERE clause (optional): lists any conditions to be
applied to the data to retrieve
• Simple condition: field name, a comparison
operator, and either another field name or a value
Concepts of Database Management
13
Simple Retrieval (continued)
FIGURE 3-5: SQL query with WHERE condition
Concepts of Database Management
14
Simple Retrieval (continued)
FIGURE 3-6: Query results
Concepts of Database Management
15
Simple Retrieval (continued)
FIGURE 3-7: Comparison operators used in SQL commands
Concepts of Database Management
16
Compound Conditions
• Compound condition
– Connecting two or more simple conditions using one
or both of the following operators: AND and OR
– Preceding a single condition with the NOT operator
• Connecting simple conditions using AND operator
– All of the simple conditions must be true for the
compound condition to be true
• Connecting simple conditions using OR operator
– Any of the simple conditions must be true for the
compound condition to be true
Concepts of Database Management
17
Compound Conditions (continued)
FIGURE 3-14: Compound condition that uses the AND operator
FIGURE 3-15: Query results
Concepts of Database Management
18
Compound Conditions (continued)
FIGURE 3-16: Compound condition that uses the OR operator
FIGURE 3-17: Query results
Concepts of Database Management
19
Compound Conditions (continued)
• Preceding a condition by NOT operator
– Reverses the truth or falsity of the original condition
• BETWEEN operator
– Value must be between the listed numbers
Concepts of Database Management
20
Computed Fields
• Computed field or calculated field
– Field whose values you derive from existing fields
– Can involve:
•
•
•
•
Addition (+)
Subtraction (-)
Multiplication (*)
Division (/)
Concepts of Database Management
21
Computed Fields (continued)
FIGURE 3-24: SQL query with a computed field and condition
FIGURE 3-25: Query results
Concepts of Database Management
22
Using Special Operators (LIKE and IN)
• Wildcards in Access SQL
– Asterisk (*): collection of characters
– Question mark (?): any individual character
• Wildcards in MySQL
– Percent sign (%): any collection of characters
– Underscore (_): any individual character
• To use a wildcard, include the LIKE operator in the
WHERE clause
• IN operator provides a concise way of phrasing
certain conditions
Concepts of Database Management
23
Using Special Operators (LIKE and IN)
(continued)
FIGURE 3-26: SQL query with a LIKE operator
FIGURE 3-27: Query results
Concepts of Database Management
24
Using Special Operators (LIKE and IN)
(continued)
FIGURE 3-28: SQL query with an IN operator
FIGURE 3-29: Query results
Concepts of Database Management
25
Sorting
• Sort data using the ORDER BY clause
• Sort key: field on which to sort data
• When sorting data on two fields:
– Major sort key (or primary sort key): more important
sort key
– Minor sort key (or secondary sort key): less
important sort key
Concepts of Database Management
26
Sorting (continued)
FIGURE 3-32: SQL query to sort data on multiple fields
FIGURE 3-33: Query results
Concepts of Database Management
27
Built-in Functions
• Built-in functions (aggregate functions) in SQL
– COUNT: calculates number of entries
– SUM or AVG: calculates sum or average of all
entries in a given column
– MAX or MIN: calculates largest or smallest values
respectively
Concepts of Database Management
28
Built-in Functions (continued)
FIGURE 3-34: SQL query to count records
FIGURE 3-35: Query results
Concepts of Database Management
29
Subqueries
• Subquery: inner query
• Subquery is evaluated first
• Outer query is evaluated after the subquery
Concepts of Database Management
30
Subqueries (continued)
FIGURE 3-40: SQL query with a subquery
FIGURE 3-41: Query results
Concepts of Database Management
31
Grouping
• Create groups of records that share a common
characteristic
• GROUP BY clause indicates grouping in SQL
• HAVING clause is to groups what the WHERE
clause is to rows
Concepts of Database Management
32
Grouping (continued)
FIGURE 3-44: SQL query to restrict the groups that are included
FIGURE 3-45: Query results
Concepts of Database Management
33
Joining Tables
•
•
•
Queries can locate data from more than one table
Enter appropriate conditions in the WHERE clause
To join tables, construct the SQL command as:
1. SELECT clause: list all fields you want to display
2. FROM clause: list all tables involved in the query
3. WHERE clause: give the condition that will restrict
the data to be retrieved to only those rows from the
two tables that match
Concepts of Database Management
34
Joining Tables (continued)
FIGURE 3-48: SQL query to join tables
Concepts of Database Management
35
Joining Tables (continued)
FIGURE 3-49: Query results
Concepts of Database Management
36
Union
• Union of two tables is a table containing all rows in
the first table, the second table, or both tables
• Two tables involved must be union compatible
– Same number of fields
– Corresponding fields must have same data types
Concepts of Database Management
37
Union (continued)
FIGURE 3-54: SQL query to perform a union
FIGURE 3-55: Query results
Concepts of Database Management
38
Updating Tables
• UPDATE command makes changes to existing data
• INSERT command adds new data to a table
• DELETE command deletes data from the database
Concepts of Database Management
39
Updating Tables (continued)
FIGURE 3-56: SQL query to update data
FIGURE 3-57: SQL query to insert a row
Concepts of Database Management
40
Updating Tables (continued)
FIGURE 3-58: SQL query to delete rows
Concepts of Database Management
41
Creating a Table from a Query
• INTO clause
– Saves the results of a query as a table
– Specified before FROM and WHERE clauses
• MySQL
– Create the new table using a CREATE TABLE
command
– Use an INSERT command to insert the appropriate
data into the new table
Concepts of Database Management
42
Creating a Table from a Query
(continued)
FIGURE 3-59a: Query to create a new table (Access)
Concepts of Database Management
43
Creating a Table from a Query
(continued)
FIGURE 3-59b: Query to create a new table (MySQL)
Concepts of Database Management
44
Summary of SQL Commands
• Generic versions of SQL commands for every
example presented in this chapter
• In most cases, commands in Access are identical
to the generic versions
• For those commands that differ, both the generic
version and the Access version are included
Concepts of Database Management
45
Summary
• Structured Query Language (SQL) is a language
that is used to manipulate relational databases
• Basic form of an SQL query: SELECT-FROMWHERE
• Use CREATE TABLE command to describe table
layout to the DBMS, which creates the table
• In SQL retrieval commands, fields are listed after
SELECT, tables are listed after FROM, and
conditions are listed after WHERE
• In conditions, character values must be enclosed in
single quotation marks
Concepts of Database Management
46
Summary (continued)
• Compound conditions are formed by combining
simple conditions using either or both of the
following operators: AND and OR
• Sorting is accomplished using ORDER BY clause
• When the data is sorted in more than one field, can
have a major and minor sort keys
• Grouping: use the GROUP BY clause
• HAVING clause: restricts the rows to be displayed
Concepts of Database Management
47
Summary (continued)
• Joining tables: use a condition that relates
matching rows in the tables to be joined
• Built-in (aggregate) functions: COUNT, SUM, AVG,
MAX, and MIN
• One SQL query can be placed inside another; the
subquery is evaluated first
• UNION operator: unifies the results of two queries
Concepts of Database Management
48
Summary (continued)
• Calculated fields: include the calculation, the word
AS, the name of the calculated field
• INSERT command adds a new row to a table
• UPDATE command changes existing data
• DELETE command deletes records
• INTO clause is used in a SELECT command to
create a table containing the results of the query
Concepts of Database Management
49
Download