0% found this document useful (0 votes)
82 views55 pages

Kroenke Dbc6e PP Ch03

Uploaded by

jeremy saputra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views55 pages

Kroenke Dbc6e PP Ch03

Uploaded by

jeremy saputra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 55

DAVID M. KROENKE and DAVID J.

AUER
DATABASE CONCEPTS, 6th Edition

Chapter Three
Structured Query Language
All rights reserved. No part of this publication may be reproduced, stored
in a retrieval system, or transmitted, in any form or by any means,
electronic, mechanical, photocopying, recording, or otherwise, without
the prior written permission of the publisher. Printed in the United States
of America.

Copyright © 2013 Pearson Education, Inc.  


Publishing as Prentice Hall
Chapter Objectives
• Learn basic SQL statements for creating
database structures
• Learn basic SQL statements for adding data to a
database
• Learn basic SQL SELECT statements and
options for processing a single table
• Learn basic SQL SELECT statements for
processing multiple tables with subqueries
• Learn basic SQL SELECT statements for
processing multiple tables with joins
• Learn basic SQL statements for modifying and
deleting data from a database
• Learn basic SQL statements for modifying and
deleting database tables and constraints
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-3
Structured Query Language
• Structured Query Language
– Acronym: SQL
– Pronounced as “S-Q-L” [“Ess-Que-El”]
– Originally developed by IBM as the
SEQUEL language in the 1970s
– SQL-92 is an ANSI national standard
adopted in 1992.
– SQL:2008 is current standard.

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-4
SQL Defined
• SQL is not a programming language, but
rather a data sublanguage.
• SQL is comprised of
– A data definition language (DDL)
• Used to define database structures
– A data manipulation language (DML)
• Data definition and updating
• Data retrieval (Queries)
– There are other SQL functions not covered in
this chapter.
• Concurrency control [See Chapter 6]
• Transaction control [See Chapter 6]

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-5
SQL for Data Definition
• The SQL data definition statements
include:
– CREATE
• To create database objects
– ALTER
• To modify the structure and/or
characteristics of database objects
– DROP
• To delete database objects
– TRUNCATE
• To delete table data while keeping structure
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-6
SQL for Data Definition:
CREATE
• Creating database tables
– The SQL CREATE TABLE statement

CREATE TABLE EMPLOYEE(


EmpID Integer PRIMARY KEY,
EmpName Char(25) NOT NULL
);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-7
SQL for Data Definition:
CREATE with CONSTRAINT I
• Creating database tables with
PRIMARY KEY constraints
– The SQL CREATE TABLE statement
– The SQL CONSTRAINT keyword

CREATE TABLE EMPLOYEE(


EmpID Integer NOT NULL,
EmpName Char(25) NOT NULL
CONSTRAINT Emp_PK PRIMARY KEY(EmpID)
);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-8
SQL for Data Definition:
CREATE with CONSTRAINT II
• Creating database tables with composite
primary keys using PRIMARY KEY
constraints
– The SQL CREATE TABLE statement
– The SQL CONSTRAINT keyword

CREATE TABLE EMP_SKILL(


EmpID Integer NOT NULL,
SkillID Integer NOT NULL,
SkillLevel Integer NULL,
CONSTRAINT EmpSkill_PK PRIMARY KEY
(EmpID, SkillID)
);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-9
SQL for Data Definition:
CREATE with CONSTRAINT III
• Creating database tables using PRIMARY KEY
and FOREIGN KEY constraints
– The SQL CREATE TABLE statement
– The SQL CONSTRAINT keyword

CREATE TABLE EMP_SKILL(


EmpID Integer NOT NULL,
SkillID Integer NOT NULL,
SkillLevel Integer NULL,
CONSTRAINT EmpSkill_PK PRIMARY KEY
(EmpID, SkillID),
CONSTRAINT Emp_FK FOREIGN KEY(EmpID)
REFERENCES EMPLOYEE(EmpID),
CONSTRAINT Skill_FK FOREIGN KEY(SkillID)
REFERENCES SKILL(SkillID)
);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-10
SQL for Data Definition:
CREATE with CONSTRAINT IV
• Creating database tables using PRIMARY KEY and FOREIGN
KEY constraints
– The SQL CREATE TABLE statement
– The SQL CONSTRAINT keyword
– ON UPDATE CASCADE and ON DELETE CASCADE

CREATE TABLE EMP_SKILL(


EmpID Integer NOT NULL,
SkillID Integer NOT NULL,
SkillLevel Integer NULL,
CONSTRAINT EmpSkill_PK PRIMARY KEY(EmpID, SkillID),
CONSTRAINT Emp_FK FOREIGN KEY(EmpID)
REFERENCES EEMPLOYEE(EmpID)
ON DELETE CASCADE,
CONSTRAINT Skill_FK FOREIGN KEY(SkillID)
REFERENCES SKILL(SkillID)
ON UPDATE CASCADE
);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-11
Process SQL CREATE TABLE Statements:
Microsoft SQL Server 2012

Table 3-8:
Processing the CREATE TABLE Statements Using SQL Server 2012
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-12
Process SQL CREATE TABLE Statements:
Oracle Database 11g Release 2

Figure 3-9: Processing the CREATE TABLE Statements


Using Oracle Database 11g Release 2
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-13
Process SQL CREATE TABLE Statements:
Oracle MySQL 5.5

Figure 3-10:
Processing the CREATE TABLE Statements Using MySQL 5.5
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-14
Database Diagram in the
Microsoft SQL Server Management Studio

Figure 3-11:
Database Diagram in the Microsoft SQL Server Management Studio
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-15
Primary Key Constraint:
ALTER I
• Adding primary key constraints to
an existing table
– The SQL ALTER statement

ALTER TABLE EMPLOYEE


ADD CONSTRAINT Emp_PK PRIMARY KEY(EmpID);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-16
Composite Primary Key Constraints:
ALTER II
• Adding a composite primary key constraint
to an existing table
– The SQL ALTER statement

ALTER TABLE EMP_SKILL


ADD CONSTRAINT EmpSkill_PK
PRIMARY KEY(EmpID, SkillID);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-17
Foreign Key Constraint:
ALTER III
• Adding foreign key constraints to an
existing table
– The SQL ALTER statement

ALTER TABLE EMPLOYEE ADD


CONSTRAINT Emp_FK FOREIGN KEY(DeptID)
REFERENCES DEPARTMENT(DeptID);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-18
Adding Data:
INSERT
• To add a row to an existing table, use
the INSERT statement.
• Non-numeric data must be enclosed
in straight ( ' ) single quotes.
INSERT INTO EMPLOYEE VALUES(91, 'Smither', 12);

INSERT INTO EMPLOYEE (EmpID, SalaryCode)


VALUES (62, 11);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-19
SQL for Data Retrieval:
Queries
• SELECT is the best known SQL
statement.
• SELECT will retrieve information
from the database that matches the
specified criteria using the
SELECT/FROM/WHERE framework.
SELECT EmpName
FROM EMPLOYEE
WHERE EmpID = 2010001;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-20
SQL for Data Retrieval:
The Results of a Query Is a Relation
• A query pulls information from one or
more relations and creates
(temporarily) a new relation.
• This allows a query to:
– Create a new relation
– Feed information to another query (as a
“sub-query”)

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-21
SQL for Data Retrieval:
Displaying All Columns
• To show all of the column values for
the rows that match the specified
criteria, use an asterisk ( * ).

SELECT *
FROM EMPLOYEE;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-22
SQL for Data Retrieval:
Showing Each Row Only Once
• The DISTINCT keyword may be
added to the SELECT statement to
inhibit duplicate rows from displaying.

SELECT DISTINCT DeptID


FROM EMPLOYEE;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-23
SQL for Data Retrieval:
Specifying Search Criteria
• The WHERE clause stipulates the
matching criteria for the record that is
to be displayed.

SELECT EmpName
FROM EMPLOYEE
WHERE DeptID = 15;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-24
Processing SQL Query Statements:
Microsoft SQL Server 2012

Figure 3-13:
SQL Query Results in the Microsoft SQL Server Management Studio
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-25
Processing SQL Query Statements:
Oracle Database 11g Release 2

Figure 3-14: SQL Query Results in the Oracle SQL Developer


KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-26
Processing SQL Query Statements:
Oracle MySQL 5.5

Figure 3-15: SQL Query Results in the MySQL Workbench


KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-27
SQL for Data Retrieval:
Match Criteria
• The WHERE clause match criteria
may include
– Equals “=”
– Not Equals “<>”
– Greater than “>”
– Less than “<”
– Greater than or Equal to “>=”
– Less than or Equal to “<=”

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-28
SQL for Data Retrieval:
Match Operators
• Multiple matching criteria may be
specified using
– AND
• Representing an intersection of the data
sets
– OR
• Representing a union of the data sets

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-29
SQL for Data Retrieval:
Operator Examples
SELECT EmpName
FROM EMPLOYEE
WHERE DeptID < 7
OR DeptID > 12;

SELECT EmpName
FROM EMPLOYEE
WHERE DeptID = 9
AND SalaryCode <= 23;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-30
SQL for Data Retrieval:
A List of Values
• The WHERE clause may include the IN
keyword to specify that a particular column
value must be included in a list of values.

SELECT EmpName
FROM EMPLOYEE
WHERE DeptID IN (4, 8, 9);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-31
SQL for Data Retrieval:
The Logical NOT Operator
• Any criteria statement may be
preceded by a NOT operator, which
is to say that all information will be
shown except that information
matching the specified criteria
SELECT EmpName
FROM EMPLOYEE
WHERE DeptID NOT IN (4, 8, 9);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-32
SQL for Data Retrieval:
Finding Data in a Range of Values
• SQL provides a BETWEEN keyword that
allows a user to specify a minimum and
maximum value on one line.

SELECT EmpName
FROM EMPLOYEE
WHERE SalaryCode BETWEEN 10 AND 45;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-33
SQL for Data Retrieval:
Allowing for Wildcard Searches
• The SQL LIKE keyword allows
searches on partial data values.
• LIKE can be paired with wildcards to
find rows matching a string value.
– Multiple character wildcard character is
a percent sign (%).
– Single character wildcard character is
an underscore (_).

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-34
SQL for Data Retrieval:
Wildcard Search Examples

SELECT EmpID
FROM EMPLOYEE
WHERE EmpName LIKE 'Kr%';

SELECT EmpID
FROM EMPLOYEE
WHERE Phone LIKE '616-___-____';

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-35
SQL for Data Retrieval:
Sorting the Results
• Query results may be sorted using
the ORDER BY clause.

SELECT *
FROM EMPLOYEE
ORDER BY EmpName;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-36
SQL for Data Retrieval:
Built-in SQL Functions
• SQL provides several built-in
functions:
– COUNT
• Counts the number of rows that match the
specified criteria
– MIN
• Finds the minimum value for a specific
column for those rows matching the criteria
– MAX
• Finds the maximum value for a specific
column for those rows matching the criteria
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-37
SQL for Data Retrieval:
Built-in SQL Functions (Cont’d)
• SUM
– Calculates the sum for a specific
column for those rows matching the
criteria
• AVG
– Calculates the numerical average of a
specific column for those rows
matching the criteria

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-38
SQL for Data Retrieval:
Built-in Function Examples

SELECT COUNT(DeptID)
FROM EMPLOYEE;

SELECT MIN(Hours) AS MinimumHours,


MAX(Hours) AS MaximumHours,
AVG(Hours) AS AverageHours
FROM PROJECT
WHERE ProjID > 7;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-39
SQL for Data Retrieval:
Providing Subtotals: GROUP BY
• Subtotals may be calculated by using
the GROUP BY clause.
• The HAVING clause may be used to
restrict which data is displayed.
SELECT DeptID,
COUNT(*) AS NumOfEmployees
FROM EMPLOYEE
GROUP BY DeptID
HAVING COUNT(*) > 3;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-40
SQL for Data Retrieval:
Retrieving Information from Multiple Tables

• Subqueries
– As stated earlier, the result of a query is a
relation. As a result, a query may feed
another query. This is called a subquery.
• Joins
– Another way of combining data is by using a
join .
• Join [also called an Inner Join]
• Left Outer Join
• Right Outer Join

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-41
SQL for Data Retrieval:
Subquery Example
SELECT EmpName
FROM EMPLOYEE
WHERE DeptID in
(SELECT DeptID
FROM DEPARTMENT
WHERE DeptName LIKE 'Account%');

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-42
SQL for Data Retrieval:
Join Example

SELECT EmpName
FROM EMPLOYEE AS E, DEPARTMENT AS D
WHERE E.DeptID = D.DeptID
AND D.DeptName LIKE 'Account%';

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-43
SQL for Data Retrieval:
JOIN…ON Example
• The JOIN…ON syntax can be used
in joins.
• It has the advantage of moving the
JOIN syntax into the FROM clause.
SELECT EmpName
FROM EMPLOYEE AS E JOIN DEPARTMENT AS D
ON E.DeptID = D.DeptID
WHERE D.DeptName LIKE 'Account%';

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-44
SQL for Data Retrieval:
LEFT OUTER JOIN Example
• The OUTER JOIN syntax can be
used to obtain data that exists in
one table without matching data in
the other table.
SELECT EmpName
FROM EMPLOYEE AS E
LEFT JOIN DEPARTMENT AS D
ON E.DeptID = D.DeptID
WHERE D.DeptName LIKE 'Account%';

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-45
SQL for Data Retrieval:
RIGHT OUTER JOIN Example
• The unmatched data displayed can
be from either table, depending on
whether RIGHT JOIN or LEFT JOIN
is used.
SELECT EmpName
FROM EMPLOYEE AS E
RIGHT JOIN DEPARTMENT AS D
ON E.DeptID = D.DeptID
WHERE D.DeptName LIKE 'Account%';

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-46
Modifying Data using SQL
• Insert
– Will add a new row in a table (already
discussed above)
• Update
– Will update the data in a table that
matches the specified criteria
• Delete
– Will delete the data in a table that
matches the specified criteria
KROENKE and AUER - DATABASE CONCEPTS (6th Edition)
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-47
Modifying Data using SQL:
Changing Data Values: UPDATE
• To change the data values in an existing
row (or set of rows) use the Update
statement.
UPDATE EMPLOYEE
SET Phone '791-555-1234'
WHERE EmpID = 29;

UPDATE EMPLOYEE
SET DeptID = 44
WHERE EmpName LIKE 'Kr%';

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-48
Modifying Data using SQL:
MERGE
• SQL:2003 introduced the MERGE
statement.
– Combines INSERT and UPDATE into one
statement
– Uses the equivalent of IF-THEN-ELSE logic to
decide whether to use INSERT or UPDATE
– An advanced feature—learn to use INSERT
and UPDATE separately first, then consult
DBMS documentation

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-49
Modifying Data using SQL:
Deleting Data: DELETE
• To delete a row or set of rows from a
table use the DELETE statement.

DELETE FROM EMPLOYEE


WHERE EmpID = 29;

DELETE FROM EMPLOYEE


WHERE EmpName LIKE 'Kr%';

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-50
Modifying Data using SQL:
Deleting Database Objects: DROP
• To remove unwanted database
objects from the database, use the
SQL DROP statement.
• Warning… The DROP statement will
permanently remove the object and
all data.
DROP TABLE EMPLOYEE;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-51
Modifying Data using SQL:
Removing a Constraint: ALTER & DROP

• To change the constraints on existing


tables, you may need to remove the
existing constraints before adding
new constraints.
ALTER TABLE EMPLOYEE DROP CONSTRAINT EmpFK;

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-52
Modifying Data Using SQL:
The CHECK Constraint
• The CHECK constraint can be used
to create sets of values to restrict the
values that can be used in a column.
ALTER TABLE PROJECT
ADD CONSTRAINT PROJECT_Check_Dates
CHECK (StartDate < EndDate);

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-53
SQL Views

• A SQL View is a virtual table created


by a DBMS-stored SELECT
statement that can combine access
to data in multiple tables and even in
other views.
• SQL views are discussed online in
Appendix E.

KROENKE and AUER - DATABASE CONCEPTS (6th Edition)


Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall 3-54
DAVID M. KROENKE and DAVID J. AUER
DATABASE CONCEPTS, 6th Edition

End of Presentation on Chapter Three


Structured Query Language

You might also like