Anda di halaman 1dari 84

7

Chapter 7
Introduction to Structured Query Language (SQL)
Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel
1

In this chapter, you will learn:


The basic commands and functions of SQL
How to use SQL for data administration (to create tables, indexes, and views) How to use SQL for data manipulation (to add, modify, delete, and retrieve data)

How to use SQL to query a database to extract useful information


Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

Introduction to SQL
SQL functions fit into two broad categories: Data definition language
SQL includes commands to create
Database objects such as tables, indexes, and views Commands to define access rights to those database objects

Data manipulation language


Includes commands to insert, update, delete, and retrieve data within the database tables
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

Introduction to SQL (continued)


SQL is relatively easy to learn
Basic command set has a vocabulary of less than 100 words

Nonprocedural language
American National Standards Institute (ANSI) prescribes a standard SQL Several SQL dialects exist
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

SQL Data Definition Commands

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

Data Manipulation Commands

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

Data Definition Commands


Examine the simple database model and the database tables that will form the basis for the many SQL examples
Understand the data environment

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

The Database Model

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

Creating the Database


Two tasks must be completed
create the database structure create the tables that will hold the end-user data

First task
RDBMS creates the physical files that will hold the database Tends to differ substantially from one RDBMS to another
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

The Database Schema


Authentication
Process through which the DBMS verifies that only registered users are able to access the database Log on to the RDBMS using a user ID and a password created by the database administrator

Schema
Group of database objectssuch as tables and indexesthat are related to each other
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

10

Data Types
Data type selection is usually dictated by the nature of the data and by the intended use
Pay close attention to the expected use of attributes for sorting and data retrieval purposes

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

11

Some Common SQL Data Types

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

12

Creating Table Structures


Use one line per column (attribute) definition Use spaces to line up the attribute characteristics and constraints Table and attribute names are capitalized NOT NULL specification UNIQUE specification Primary key attributes contain both a NOT NULL and a UNIQUE specification RDBMS will automatically enforce referential integrity for foreign keys Command sequence ends with a semicolon
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

13

Other SQL Constraints


NOT NULL constraint
Ensures that a column does not accept nulls

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
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

14

SQL Indexes
When a primary key is declared, DBMS automatically creates a unique index Often need additional indexes Using the CREATE INDEX command, SQL indexes can be created on the basis of any selected attribute Composite index
Index based on two or more attributes Often used to prevent data duplication
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

15

A Duplicated TEST Record

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

16

Creating Table Structures - Example


Attribute (Field) Name EMP_NUM EMP_LNAME EMP_FNAME EMP_INITIAL Data Declaration INTEGER VARCHAR(15) VARCHAR(15) CHAR(1)

EMP_HIREDATE
JOB_CODE

DATE
CHAR(3)

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

17

Creating Table Structures - Example


CREATE TABLE EMP( EMP_NUM INTEGER PRIMARY KEY, EMP_LNAME VARCHAR(15) NOT NULL, EMP_FNAME VARCHAR(15) NOT NULL, EMP_INITIAL CHAR(1), EMP_HIREDATE DATE, JOB_CODE CHAR(3) DEFAULT 000, FOREIGN KEY (JOB_CODE) REFERENCES JOB);

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

18

Creating Table Structures - Example


CREATE TABLE EMP( EMP_NUM INTEGER NOT NULL, EMP_LNAME VARCHAR(15) NOT NULL, EMP_FNAME VARCHAR(15) NOT NULL, EMP_INITIAL CHAR(1), EMP_HIREDATE DATE, JOB_CODE CHAR(3) DEFAULT 000, PRIMARY KEY (EMP_NUM), FOREIGN KEY (JOB_CODE) REFERENCES JOB), CONSTRAINT JAYZSA UNIQUE (EMP_NUM);

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

19

Data Manipulation Commands


Adding table rows Saving table changes Listing table rows

Updating table rows


Restoring table contents

Deleting table rows


Inserting table rows with a select subquery
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

20

Common SQL Data Manipulation Commands

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

21

A Data View and Entry Form

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

22

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]

Will permanently save any changes made to any table in the database
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

23

Listing Table Rows


SELECT
Used to list contents of table

Syntax
SELECT columnlist FROM tablename

Columnlist represents one or more attributes, separated by commas Asterisk can be used as wildcard character to list all attributes
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

24

Updating Table Rows


UPDATE
Modify data in a table

Syntax
UPDATE tablename SET columnname = expression [, columname = expression] [WHERE conditionlist];

If more than one attribute is to be updated in the row, separate corrections with commas
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

25

Updating Table Rows - Example

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

26

Updating Table Rows - Example


UPDATE SET WHERE
UPDATE SET WHERE UPDATE SET WHERE

EMP EMP_PCT = 3.85 EMP_NUM = '103';


EMP EMP_PCT = 5.00 EMP_NUM = 101; EMP EMP_PCT = 8.00 EMP_NUM = 102;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

27

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;

COMMIT and ROLLBACK only work with data manipulation commands that are used to add, modify, or delete table rows
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

28

Deleting Table Rows


DELETE
Deletes a table row

Syntax
DELETE FROM tablename [WHERE conditionlist ];

WHERE condition is optional If WHERE condition is not specified, all rows from the specified table will be deleted
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

29

Deleting Table Rows Example


DELETE WHERE AND AND AND FROM EMP EMP_LNAME = 'Smithfield' EMP_FNAME = 'William' EMP_HIREDATE = '22-June-02' JOB_CODE = '500';

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

30

Inserting Table Rows - Example

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

31

Inserting Table Rows - Example


INSERT INTO EMP_1 VALUES (101, News, John, G, 08-Nov98, 502);
INSERT INTO EMP_1 VALUES (102, Senior, David, H, 12-Jul87, 501);

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

32

Inserting Table Rows with a Select Subquery


INSERT
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
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

33

Inserting Table Rows with a Select Subquery - Example


INSERT INTO PART (PART_CODE, PART_DESCRIPT, PART_PRICE)
SELECT P_CODE, P_DESCRIPT, P_PRICE FROM PRODUCT;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

34

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 ] ;
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

35

Selected PRODUCT Table Attributes for VENDOR Code 21344

SELECT P_DESCRIPT, P_INDATE, P_PRICE, V_CODE FROM PRODUCT WHERE V_CODE = 21344;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

36

The Microsoft Access QBE and its SQL

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

37

Comparison Operators

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

38

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;
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

39

Selected PRODUCT Table Attributes with a P_PRICE Restriction

SELECT P_DESCRIPT, P_ONHAND, P_MIN, P_PRICE FROM PRODUCT WHERE P_PRICE <= 10;
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

40

Selected PRODUCT Table Attributes: The ASCII Code Effect

SELECT P_CODE, P_DESCRIPT, P_ONHAND, P_MIN, P_PRICE FROM PRODUCT WHERE P_CODE < 1558QW1;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

41

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;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

42

SELECT Statement with a Computed Column

SELECT P_DESCRIPT, P_ONHAND, P_PRICE, P_ONHAND * P_PRICE FROM PRODUCT;


Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

43

SELECT Statement with a Computed Column and an Alias

SELECT P_DESCRIPT, P_ONHAND, P_PRICE, P_ONHAND * P_PRICE AS TOTVALUE FROM PRODUCT;


Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

44

Arithmetic Operators: The Rule of Precedence


Perform operations within parentheses
Perform power operations Perform multiplications and divisions Perform additions and subtractions

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

45

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;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

46

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;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

47

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;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

48

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
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

49

Advanced Data Definition Commands


All changes in the table structure are made by using the ALTER command
Followed by a keyword that produces specific change Three options are available
ADD

MODIFY
DROP
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

50

Changing a Columns Data Type


ALTER can be used to change data type
Some RDBMSs (such as Oracle) do not permit changes to data types unless the column to be changed is empty

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

51

Changing a Columns Data Characteristics


Use ALTER to change data characteristics
If the column to be changed already contains data, changes in the columns characteristics are permitted if those changes do not alter the data type

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

52

Adding or Dropping a Column


Use ALTER to add a column
Do not include the NOT NULL clause for new column

Use ALTER to drop a column


Some RDBMSs impose restrictions on the deletion of an attribute
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

53

The Effect of Data Entry into the New P_SALECODE Column

UPDATE PRODUCT SET P_SALECODE = 1 WHERE P_CODE = 1546-QQ2;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

54

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;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

55

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;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

56

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)
First create the PART table structure Next add rows to new PART table using PRODUCT table rows
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

57

PART Attributes Copied from the PRODUCT Table

INSERT INTO PART (PART_CODE, PART_DESCRIPT, PART_PRICE) SELECT P_CODE, P_DESCRIPT, P_PRICE FROM PRODUCT;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

58

Advanced Select Queries


SQL provides useful functions
Count Find minimum and maximum values Calculate averages

SQL allows the user to limit queries to only those entries having no duplicates or entries whose duplicates may be grouped
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

59

Selected PRODUCT Table Attributes: Ordered by (Ascending) P_PRICE

SELECT P_CODE, P_DESRIPT, P_INDATE, P_PRICE FROM PRODUCT ORDER BY P_PRICE;


Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

60

Partial Listing of EMPLOYEE Table Contents

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

61

Telephone List Query Results

SELECT EMP_LNAME, EMP_LNAME, EMP_FNAME, EMP_INITIAL, EMP_AREACODE, EMP_PHONE FROM EMPLOYEE ORDER BY EMP_LNAME, EMP_FNAME, EMP_INITIAL;
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

62

A Query Based on Multiple Restrictions

SELECT P_DESCRIPT, V_CODE, P_INDATE, P_PROCE FROM PRODUCT WHERE P_INDATE < 21Jan-2004 AND P_PRICE <= 50.00 ORDER BY V_CODE, P_PROCE DESC;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

63

A Listing of Distinct (Different) V_CODE Values in the PRODUCT Table

SELECT DISTINCT V_CODE FROM PRODUCT;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

64

Some Basic SQL Aggregate Functions

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

65

COUNT Function Output Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

66

MAX and MIN Function Output Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

67

The Total Value of All Items in the PRODUCT Table

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

68

AVG Function Output Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

69

GROUP BY Clause Output Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

70

Incorrect and Correct Use of the GROUP BY Clause

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

71

An Application of the HAVING Clause

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

72

Joining Database Tables


Ability to combine (join) tables on common attributes is most important distinction between a relational database and other databases

Join is performed when data are retrieved from more than one table at a time
Join is generally composed of an equality comparison between the foreign key and the primary key of related tables
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

73

Creating Links Through Foreign Keys

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

74

The Results of a Join

SELECT PRODUCT.P_DESCRIPT, PRODUCT.P_PRICE, VENDOR.V_NAME, VENDOR.V_CONTACT, VENDOR.V_AREACODE, VENDOR.V_PHONE FROM PRODUCT, VENDOR WHERE PRODUCT.V_CODE = VENDOR.V_CODE;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

75

An Ordered and Limited Listing After a JOIN

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-Jan2004;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

76

The Contents of the EMP Table

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

77

Using an Alias to Join a Table to Itself

SELECT E.EMP_NUM, E.EMP_LNAME, E.EMP_MGR, M.EMP_LNAME, FROM EMP E, EMP M WHERE E.EMP_MGR = M.EMP_NUM ORDER BY E.EMP_MGR;

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

78

Converting an ER Model into a Database Structure


Requires following specific rules that govern such a conversion
Decisions made by the designer to govern data integrity are reflected in the foreign key rules Implementation decisions vary according to the problem being addressed
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

79

The Ch06_Artist Database ERD and Tables

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

80

A Data Dictionary for the Ch06_Artist Database

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

81

A Summary of Foreign Key Rules

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

82

Summary
SQL commands can be divided into two overall categories:
Data definition language commands Data manipulation language commands

Basic data definition commands allow you to create tables, indexes, and views Many SQL constraints can be used with columns Aggregate functions
Special functions that perform arithmetic computations over a set of rows
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

83

Summary (continued)
ORDER BY clause
Used to sort output of a SELECT statement Can sort by one or more columns and use either an ascending or descending order

Join output of multiple tables with SELECT statement Natural join uses join condition to match only rows with equal values in specified columns Right outer join and left outer join used to select rows that have no matching values in other related table
Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

84