Top Banner
DB2 SQL Workshop (Course Code CF12) Instructor Exercises Guide ERC 4.1 IBM Certified Course Material V3.1.0.1 cover
104
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 24-InstructorExercise_cf124xinst

V3.1.0.1

cover

���

Front cover

DB2 SQL Workshop (Course Code CF12)

Instructor Exercises GuideERC 4.1

IBM Certified Course Material

Page 2: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Trademarks

IBM® is a registered trademark of International Business Machines Corporation.

The following are trademarks of International Business Machines Corporation in the United States, or other countries, or both:

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Windows is a trademark of Microsoft Corporation in the United States, other countries, or both.

UNIX® is a registered trademark of The Open Group in the United States and other countries.

Linux® is a registered trademark of Linus Torvalds in the United States, other countries, or both.

Other company, product, or service names may be trademarks or service marks of others.

AIX DB2 iSeriesOS/390 POWER QMFWebSphere z/OS 400

February 2007 Edition

The information contained in this document has not been submitted to any formal IBM test and is distributed on an “as is” basis without any warranty either express or implied. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer’s ability to evaluate and integrate them into the customer’s operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee that the same or similar results will result elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk.

© Copyright International Business Machines Corporation 1999, 2007. All rights reserved.This document may not be reproduced in whole or in part without the prior written permission of IBM.Note to U.S. Government Users — Documentation related to restricted rights — Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp.

Page 3: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

TOC

Contents

Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Instructor Exercises Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

Exercises Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixGeneral Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xGeneral Information for z/OS Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiGeneral Information for Workstation Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiiTable Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvTable Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiExercise Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii

Exercise 1. Simple SQL Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1Problem List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2Problem List with Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12

Exercise 2. Retrieving Data from Multiple Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1Problem List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2Problem List With Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10

Exercise 3. Scalar Functions and Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1Problem List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2Problem List with Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11

Exercise 4. Column Functions and Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1Problem List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2Problem List with Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6

Exercise 5. UNION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1Problem List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2Problem List with Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7

Exercise 6. Using Subqueries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1Problem List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2Problem List with Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5

Exercise 7. Maintaining Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Contents iii

Page 4: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2Problem List with Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

iv DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 5: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

TMK

Trademarks

The reader should recognize that the following terms, which appear in the content of this training document, are official trademarks of IBM or other companies:

IBM® is a registered trademark of International Business Machines Corporation.

The following are trademarks of International Business Machines Corporation in the United States, or other countries, or both:

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Windows is a trademark of Microsoft Corporation in the United States, other countries, or both.

UNIX® is a registered trademark of The Open Group in the United States and other countries.

Linux® is a registered trademark of Linus Torvalds in the United States, other countries, or both.

Other company, product, or service names may be trademarks or service marks of others.

AIX® DB2® iSeries™OS/390® POWER™ QMF™WebSphere® z/OS® 400®

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Trademarks v

Page 6: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

vi DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 7: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Instructor Exercises Overview

Students are not required to do all of the problems in an exercise. They should complete as many problems as they can within the time allotted.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Instructor Exercises Overview vii

Page 8: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

viii DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 9: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercises Description

Read the General Information section and the description of the lab tables before attempting the exercises.

Feel free to consult with the instructor if you need a hint or encounter difficulties while you are formulating a query.

Problem List — Contains a listing of the problems for that exercise. You may complete the lab problems from this listing.

Expected Results — repeats the problem and shows the results from the completed query. In most cases, the complete result is shown. In cases where the result set is too large, an ellipsis (...) is shown to indicate that there are additional rows in the result. The number of rows for the result set is shown so you may verify your results.

Solutions — contains the query that solves the problem. There are sometimes several possible solutions. Your solution may differ from the one shown. If you have any doubts about whether your solution is correct or if it is as good as the given solution from a performance point of view, please consult your instructor.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description ix

Page 10: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

General Information

This Exercise Guide provides the information necessary to complete the labs for the DB2 SQL Workshop course.

In environments that provide several query tools for each environment, this lab guide may be supplemented by additional documentation describing the basics of each query tool.

The exercises for this course may be done in z/OS or in a workstation environment. The workstation environment will normally use Windows 2000 or XP, but any environment supported by DB2 UDB for Linux, UNIX, and Windows can be used.

You may use any of the query tools installed on the operating system. Please note that the emphasis of this course is on teaching SQL, not on tool use. Therefore, only the basics of the tool use are covered. For additional information about these tools, ask the instructor for recommendations on manuals to read or courses to take for this purpose.

Although saving your queries is not required, feel free to comment out or save your solutions.

Full solutions are provided for every question, but if you wish to save your own solutions to diskette or another medium, or to print them, ask your instructor when you begin the first exercise. Diskettes, other media, or printers may not be available in every class.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

x DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 11: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

General Information for z/OS Users

There are a variety of query tools that can work with DB2 for z/OS, including SPUFI, QMF, and others. You may use any of the tools that are installed to do the labs. The following query tools are available for this course:

• ___________________________________________________

• ___________________________________________________

• ___________________________________________________

The instructor will tell you how to log on to the z/OS system and what specific userid and password to use. In addition, you will be given a team number: this number will be used occasionally during the exercises so that you can distinguish your files or objects from those of other students.

Your logon ID is ____________________________________.

Your password is ____________________________________.

Your team number is _________________________________.

The instructor will give you brief verbal or written instructions on how to use the query tool you choose. For more information about a tool, for example how to save a query, be sure to ask the instructor.

For SPUFI, you will need a partitioned data set in order to complete the exercises. This data set already exists. The data set name is:

_____________________________________________________

Each of the tables described in the Table Relationships section of this document already exists and will be accessed through views owned by your userid.

Within your SQL it is not necessary to prefix the table names with its qualifier.

When you create TESTEMP table during exercise 7, you may need to add an IN clause to your CREATE TABLE statements that identifies where the table is being created. The IN clause you need to add is:

IN ____________.______

On the US ESSMVS1 system it is DBCF12xx.TSxx (where xx is your team number), but you should check with your instructor.

You are not required to save your SQL, but if you want to save it, you may put it in your partitioned data set.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description xi

Page 12: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

General Information for Workstation Users

There are a variety of query tools that can work with DB2 on the workstation platforms including Command Editor, CLP, QMF for Windows, and others. You may use any of the installed tools to do the labs. The following query tools are available for this course:

• __________________________________________________

• __________________________________________________

• __________________________________________________

Students doing the exercises on workstation platforms do not need a team number. Each workstation student has a complete standalone environment and will not share any files or tables with other students. Each student will need to sign on with the following information:

USERID is ____________________________________________

PASSWORD is __________________________________________

The instructor will give you brief verbal or written instructions on how to use the tool you choose so that you know enough to get started. If you want to know more about a tool, for example how to save a query, be sure to ask the instructor.

A database named sample has already been created for you.

• To connect in a single-user environment, enter the following at a command prompt:

db2 connect to sample

• To connect in a client/server environment, enter the following at a command prompt, substituting the userid and password you were assigned:

db2 connect to sample user userid using password

Each of the tables described in the Table Relationships section of this document already exists and has the same qualifier.

The qualifier is ____________________________________.

When you refer to these tables in your SQL, you may need to prefix the table names with the qualifier identified above, if you are connected to the database using a different ID than the qualifier. Please ask your instructor to see if this is the case.

For example, if you want to display the complete contents of the EMPLOYEE table, you may have to enter the following, substituting the qualifier you were given:

SELECT * FROM qualifier.EMPLOYEE

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

xii DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 13: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

In cases where you are using your TESTEMP table you need to omit the qualifier or use your logon ID as qualifier. For example, if you are trying to read the TESTEMP table, you will need to write:

SELECT * FROM TESTEMP

or:

SELECT * FROM logon ID.TESTEMP

If you choose to do the labs in CLP, you may create your SQL in files in a specific directory. You may already have a \CF12 directory; if not, create a directory of your choice.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description xiii

Page 14: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Figure 0-1. Table Relationships CF124.1

Notes:

This diagram illustrates the relationships between the tables used in the exercises for this course. The lines show the connection between the tables.

© Copyright IBM Corporation 2007

DEPARTMENT Table

DEPTNO MGRNO

EMPLOYEE Table

EMPNO WORKDEPT

EMP_ACT Table

EMPNO PROJNO

PROJECT Table

PROJNO DEPTNO RESPEMP

Table Relationship

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

xiv DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 15: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Table Descriptions

The tables are described in hierarchical order, as shown in Table Relationships on the previous page.

DEPARTMENT

There is one row in the DEPARTMENT table for each department in the company.

EMPLOYEE

There is one row in the EMPLOYEE table for each of the employees in the company.

Column Name Meaning Data Type NULLS allowedDEPTNO Department Number CHAR(3) NDEPTNAME Department Name VARCHAR(36) N

MGRNOEmployee Number of the Responsible Manager

CHAR(6) Y

ADMRDEPT

Department Number of the Department to which the Department reports

CHAR(3) N

LOCATION Location Number CHAR(5) Y

Column Name Meaning Data Type NULLS allowedEMPNO Employee Number CHAR(6) NFIRSTNME First Name VARCHAR(20) NMIDINIT Middle Initial CHAR(1) NLASTNAME Last Name VARCHAR(15) N

WORKDEPTDepartment in which the Employee Works

CHAR(3) Y

PHONENO Phone Number CHAR(4) YHIREDATE Date of Hire DATE YJOB Job CHAR(8) Y

EDLEVELNumber of Years of Formal Education

SMALLINT Y

SEXSex (M male, F female)

CHAR(1) Y

BIRTHDATE Date of Birth DATE YSALARY Yearly Salary DECIMAL(9, 2) YBONUS Yearly Bonus DECIMAL(9, 2) YCOMM Yearly Commission DECIMAL(9, 2) Y

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description xv

Page 16: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

PROJECT

There is one row in the PROJECT table for each project.

EMP_ACT

There are many rows in the EMP_ACT table for any employee or any project.

Column Name Meaning Data Type NULLS allowedPROJNO Project Number CHAR(6) NPROJNAME Project Name VARCHAR(24) N

DEPTNOResponsible Department

CHAR(3) N

RESPEMPEmployee Number of the Responsible Employee

CHAR(6) N

PRSTAFFEstimated Mean Staffing

DECIMAL(5, 2) Y

PRSTDATE Estimated Start Date DATE YPRENDATE Estimated End Date DATE Y

MAJPROJMajor Project for a Subproject

CHAR(6) Y

Column Name Meaning Data Type NULLS allowed

EMPNOEmployee Number of Employee Performing the Activity

CHAR(6) N

PROJNO Project Number CHAR(6) NACTNO Activity Number SMALLINT N

EMPTIMEProportion of Employee's Time Spent on Project

DECIMAL(5, 2) Y

EMSTDATE Date Activity Starts DATE YEMENDATE Date Activity Ends DATE Y

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

xvi DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 17: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Table Content

DEPARTMENT table

DEPTNO DEPTNAME MGRNO ADMRDEPT LOCATION------ ------------------------------ ------ -------- --------A00 SPIFFY COMPUTER SERVICE DIV. 000010 A00B01 PLANNING 000020 A00C01 INFORMATION CENTER 000030 A00D01 DEVELOPMENT CENTER - A00D11 MANUFACTURING SYSTEMS 000060 D01D21 ADMINISTRATION SYSTEMS 000070 D01E01 SUPPORT SERVICES 000050 A00E11 OPERATIONS 000090 E01E21 SOFTWARE SUPPORT 000100 E01

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description xvii

Page 18: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

EMPLOYEE table

EMPNO FIRSTNME MIDINIT LASTNAME WORKDEPT PHONENO HIREDATE------ ---------- ------- ---------- -------- ------- ----------000010 CHRISTINE I HAAS A00 3978 1965-01-01000020 MICHAEL L THOMPSON B01 3476 1973-10-10000030 SALLY A KWAN C01 4738 1975-04-05000050 JOHN B GEYER E01 6789 1949-08-17000060 IRVING F STERN D11 6423 1973-09-14000070 EVA D PULASKI D21 7831 1980-09-30000090 EILEEN W HENDERSON E11 5498 1970-08-15000100 THEODORE Q SPENSER E21 0972 1980-06-19000110 VINCENZO G LUCCHESI A00 3490 1958-05-16000120 SEAN O'CONNELL A00 2167 1963-12-05000130 DOLORES M QUINTANA C01 4578 1971-07-28000140 HEATHER A NICHOLLS C01 1793 1976-12-15000150 BRUCE ADAMSON D11 4510 1972-02-12000160 ELIZABETH R PIANKA D11 3782 1977-10-11000170 MASATOSHI J YOSHIMURA D11 2890 1978-09-15000180 MARILYN S SCOUTTEN D11 1682 1973-07-07000190 JAMES H WALKER D11 2986 1974-07-26000200 DAVID BROWN D11 4501 1966-03-03000210 WILLIAM T JONES D11 0942 1979-04-11000220 JENNIFER K LUTZ D11 0672 1968-08-29000230 JAMES J JEFFERSON D21 4265 1966-11-21000240 SALVATORE M MARINO D21 3780 1979-12-05000250 DANIEL S SMITH D21 0961 1969-10-30000260 SYBIL V JOHNSON D21 8953 1975-09-11000270 MARIA L PEREZ D21 9001 1980-09-30000280 ETHEL R SCHNEIDER E11 8997 1967-03-24000290 JOHN R PARKER E11 4502 1980-05-30000300 PHILIP X SMITH E11 2095 1972-06-19000310 MAUDE F SETRIGHT E11 3332 1964-09-12000320 RAMLAL V MEHTA E21 9990 1965-07-07000330 WING LEE E21 2103 1976-02-23000340 JASON R GOUNOT E21 5698 1947-05-05

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

xviii DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 19: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

EMPLOYEE table (continued)

JOB EDLEVEL SEX BIRTHDATE SALARY BONUS COMM--------- ------- --- ---------- --------- -------- --------PRES 18 F 1933-08-14 52750.00 1000.00 4220.00MANAGER 18 M 1948-02-02 41250.00 800.00 3300.00MANAGER 20 F 1941-05-11 38250.00 800.00 3060.00MANAGER 16 M 1925-09-15 40175.00 800.00 3214.00MANAGER 16 M 1945-07-07 32250.00 600.00 2580.00MANAGER 16 F 1953-05-26 36170.00 700.00 2893.00MANAGER 16 F 1941-05-15 29750.00 600.00 2380.00MANAGER 14 M 1956-12-18 26150.00 500.00 2092.00SALESREP 19 M 1929-11-05 46500.00 900.00 3720.00CLERK 14 M 1942-10-18 29250.00 600.00 2340.00ANALYST 16 F 1925-09-15 23800.00 500.00 1904.00ANALYST 18 F 1946-01-19 28420.00 600.00 2274.00DESIGNER 16 M 1947-05-17 25280.00 500.00 2022.00DESIGNER 17 F 1955-04-12 22250.00 400.00 1780.00DESIGNER 16 M 1951-01-05 24680.00 500.00 1974.00DESIGNER 17 F 1949-02-21 21340.00 500.00 1707.00DESIGNER 16 M 1952-06-25 20450.00 400.00 1636.00DESIGNER 16 M 1941-05-29 27740.00 600.00 2217.00DESIGNER 17 M 1953-02-23 18270.00 400.00 1462.00DESIGNER 18 F 1948-03-19 29840.00 600.00 2387.00CLERK 14 M 1935-05-30 22180.00 400.00 1774.00CLERK 17 M 1954-03-31 28760.00 600.00 2301.00CLERK 15 M 1939-11-12 19180.00 400.00 1534.00CLERK 16 F 1936-10-05 17250.00 300.00 1380.00CLERK 15 F 1953-05-26 27380.00 500.00 2190.00OPERATOR 17 F 1936-03-28 26250.00 500.00 2100.00OPERATOR 12 M 1946-07-09 15340.00 300.00 1227.00OPERATOR 14 M 1936-10-27 17750.00 400.00 1420.00OPERATOR 12 F 1931-04-21 15900.00 300.00 1272.00FIELDREP 16 M 1932-08-11 19950.00 400.00 1596.00FIELDREP 14 M 1941-07-18 25370.00 500.00 2030.00FIELDREP 16 M 1926-05-17 23840.00 500.00 1907.00

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description xix

Page 20: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

PROJECT table

DEPT PRPROJNO PROJNAME NO RESPEMP STAFF PRSTDATE PRENDATE MAJPROJ------ -------------------- ---- ------- ----- ---------- ---------- -------AD3100 ADMIN SERVICES D01 000010 6.50 1982-01-01 1983-02-01 -AD3110 GENERAL AD SYSTEMS D21 000070 6.00 1982-01-01 1983-02-01 AD3100AD3111 PAYROLL PROGRAMMING D21 000230 2.00 1982-01-01 1983-02-01 AD3110AD3112 PERSONNEL PROGRAMMG D21 000250 1.00 1982-01-01 1983-02-01 AD3110AD3113 ACCOUNT.PROGRAMMING D21 000270 2.00 1982-01-01 1983-02-01 AD3110IF1000 QUERY SERVICES C01 000030 2.00 1982-01-01 1983-02-01 -IF2000 USER EDUCATION C01 000030 1.00 1982-01-01 1983-02-01 -MA2100 WELD LINE AUTOMATION D01 000010 12.00 1982-01-01 1983-02-01 -MA2110 W L PROGRAMMING D11 000060 9.00 1982-01-01 1983-02-01 MA2100MA2111 W L PROGRAM DESIGN D11 000220 2.00 1982-01-01 1982-12-01 MA2110MA2112 W L ROBOT DESIGN D11 000150 3.00 1982-01-01 1982-12-01 MA2110MA2113 W L PROD CONT PROGS D11 000160 3.00 1982-02-15 1982-12-01 MA2110OP1000 OPERATION SUPPORT E01 000050 6.00 1982-01-01 1983-02-01 -OP1010 OPERATION E11 000090 5.00 1982-01-01 1983-02-01 OP1000OP2000 GEN SYSTEMS SERVICES E01 000050 5.00 1982-01-01 1983-02-01 -OP2010 SYSTEMS SUPPORT E21 000100 4.00 1982-01-01 1983-02-01 OP2000OP2011 SCP SYSTEMS SUPPORT E21 000320 1.00 1982-01-01 1983-02-01 OP2010OP2012 APPLICATIONS SUPPORT E21 000330 1.00 1982-01-01 1983-02-01 OP2010OP2013 DB/DC SUPPORT E21 000340 1.00 1982-01-01 1983-02-01 OP2010PL2100 WELD LINE PLANNING B01 000020 1.00 1982-01-01 1982-09-15 MA2100

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

xx DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 21: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

EMP_ACT table

EMPNO PROJNO ACTNO EMPTIME EMSTDATE EMENDATE------ ------ ------ -------- ---------- ----------000010 AD3100 10 0.50 1982-01-01 1982-07-01000070 AD3110 10 1.00 1982-01-01 1983-02-01000230 AD3111 60 1.00 1982-01-01 1982-03-15000230 AD3111 60 0.50 1982-03-15 1982-04-15000230 AD3111 70 0.50 1982-03-15 1982-10-15000230 AD3111 80 0.50 1982-04-15 1982-10-15000230 AD3111 180 1.00 1982-10-15 1983-01-01000240 AD3111 70 1.00 1982-02-15 1982-09-15000240 AD3111 80 1.00 1982-09-15 1983-01-01000250 AD3112 60 0.50 1982-02-01 1982-03-15000250 AD3112 60 1.00 1982-01-01 1982-02-01000250 AD3112 60 1.00 1983-01-01 1983-02-01000250 AD3112 60 0.50 1982-12-01 1983-01-01000250 AD3112 70 1.00 1982-03-15 1982-08-15000250 AD3112 70 0.50 1982-02-01 1982-03-15000250 AD3112 70 0.25 1982-08-15 1982-10-15000250 AD3112 80 0.25 1982-08-15 1982-10-15000250 AD3112 80 0.50 1982-10-15 1982-12-01000250 AD3112 180 0.50 1982-08-15 1983-01-01000260 AD3113 70 0.50 1982-06-15 1982-07-01000260 AD3113 70 1.00 1982-07-01 1983-02-01000260 AD3113 80 1.00 1982-01-01 1982-03-01000260 AD3113 80 0.50 1982-03-01 1982-04-15000260 AD3113 180 0.50 1982-03-01 1982-04-15000260 AD3113 180 0.50 1982-06-01 1982-07-01000260 AD3113 180 1.00 1982-04-15 1982-06-01000270 AD3113 60 0.25 1982-09-01 1982-10-15000270 AD3113 60 1.00 1982-04-01 1982-09-01000270 AD3113 60 0.50 1982-03-01 1982-04-01000270 AD3113 70 0.75 1982-09-01 1982-10-15000270 AD3113 70 1.00 1982-10-15 1983-02-01000270 AD3113 80 1.00 1982-01-01 1982-03-01000270 AD3113 80 0.50 1982-03-01 1982-04-01000030 IF1000 10 0.50 1982-06-01 1983-01-01000130 IF1000 90 1.00 1982-01-01 1982-10-01000130 IF1000 100 0.50 1982-10-01 1983-01-01000140 IF1000 90 0.50 1982-10-01 1983-01-01

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description xxi

Page 22: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

EMP_ACT table (continued)

EMPNO PROJNO ACTNO EMPTIME EMSTDATE EMENDATE------ ------ ------ -------- ---------- ----------000030 IF2000 10 0.50 1982-01-01 1983-01-01000140 IF2000 100 1.00 1982-01-01 1982-03-01000140 IF2000 100 0.50 1982-03-01 1982-07-01000140 IF2000 110 0.50 1982-03-01 1982-07-01000140 IF2000 110 0.50 1982-10-01 1983-01-01000010 MA2100 10 0.50 1982-01-01 1982-11-01000110 MA2100 20 1.00 1982-01-01 1982-03-01000010 MA2110 10 1.00 1982-01-01 1983-02-01000200 MA2111 50 1.00 1982-01-01 1982-06-15000200 MA2111 60 1.00 1982-06-15 1983-02-01000220 MA2111 40 1.00 1982-01-01 1983-02-01000150 MA2112 60 1.00 1982-01-01 1982-07-15000150 MA2112 180 1.00 1982-07-15 1983-02-01000170 MA2112 60 1.00 1982-01-01 1983-06-01000170 MA2112 70 1.00 1982-06-01 1983-02-01000190 MA2112 70 1.00 1982-02-01 1982-10-01000190 MA2112 80 1.00 1982-10-01 1983-10-01000160 MA2113 60 1.00 1982-07-15 1983-02-01000170 MA2113 80 1.00 1982-01-01 1983-02-01000180 MA2113 70 1.00 1982-04-01 1982-06-15000210 MA2113 80 0.50 1982-10-01 1983-02-01000210 MA2113 180 0.50 1982-10-01 1983-02-01000050 OP1000 10 0.25 1982-01-01 1983-02-01000090 OP1010 10 1.00 1982-01-01 1983-02-01000280 OP1010 130 1.00 1982-01-01 1983-02-01000290 OP1010 130 1.00 1982-01-01 1983-02-01000300 OP1010 130 1.00 1982-01-01 1983-02-01000310 OP1010 130 1.00 1982-01-01 1983-02-01000050 OP2010 10 0.75 1982-01-01 1983-02-01000100 OP2010 10 1.00 1982-01-01 1983-02-01000320 OP2011 140 0.75 1982-01-01 1983-02-01000320 OP2011 150 0.25 1982-01-01 1983-02-01000330 OP2012 140 0.25 1982-01-01 1983-02-01000330 OP2012 160 0.75 1982-01-01 1983-02-01000340 OP2013 140 0.50 1982-01-01 1983-02-01000340 OP2013 170 0.50 1982-01-01 1983-02-01000020 PL2100 30 1.00 1982-01-01 1982-09-15

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

xxii DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 23: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise Instructions

Each exercise in this course is divided into sections as described below. Select the section that best fits your method of performing labs. You may elect to use a combination of these sections as appropriate.

Problem List — This section contains what you should accomplish. There are no definitive details on how to perform the tasks. You are given the opportunity to work through the exercise given what you learned in the unit presentation, utilizing the unit Student Notebook, your past experience and maybe a little intuition.

Problem List With Expected Results — This section is an exact duplicate of the Problem List section except that it includes the expected result of the query you are to write.

Feel free to use the Problem List or the Problem List with Expected Results when doing your lab problems.

Solutions — Follow the Problem List With Expected Results.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercises Description xxiii

Page 24: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

xxiv DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 25: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise 1. Simple SQL Queries

What This Exercise Is About

This exercise provides an opportunity to write and execute basic SQL statements.

What You Should Be Able to Do

At the end of the lab, you should be able to:

• Code SELECT statements using four clauses of an SQL SELECT statement.

• Use a SELECT statement to: - Retrieve all rows of a table - Retrieve specific columns - Retrieve rows based on comparisons to numeric or

alphanumeric data - Retrieve rows based on specific columns containing NULL

values • Code SELECT statements using keywords BETWEEN, IN, LIKE

and DISTINCT • Produce a result table whose rows are sorted in a desired

sequence

Introduction

See the data model at the start of this exercise guide to get the column names and descriptions for each table.

Required Materials

• Student handout • SQL Reference

Instructor Exercise Overview

The students are not required to finish all problems. The student's experience and skill level will affect the number of problems they can complete. Hopefully there are more problems than can be completed within the time allotted so the experienced students will be as challenged as the novice.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 1. Simple SQL Queries 1-1

Page 26: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List

Problem 1

List employee number, last name, date of birth, and salary for all employees who make more than $30,000 a year. Sequence the results in descending order by salary.

Problem 2

List last name, first name, and the department number for all employees. The listing should be ordered by descending department numbers. Within the same department, the last names should be sorted in descending order.

Problem 3

List the different education levels in the company in descending order. List only one occurrence of duplicate result rows.

Problem 4

List employees, by employee number, and their assigned projects, by project number. Display only those employees with an employee number less than or equal to 100. List only one occurrence of duplicate rows. Sort the result rows by employee number.

(Use the EMP_ACT table.)

Problem 5

List last name, salary, and bonus of all male employees.

Problem 6

List last name, salary, and commission for all employees with a salary greater than $20,000 and hired after 1979.

Problem 7

List last name, salary, bonus, and commission for all employees with a salary greater than $22,000 and a bonus of $400, or for all employees with a bonus of $500 and a commission lower than $1,900. The list should be ordered by last name.

Problem 8

List last name, salary, bonus, and commission for all employees with a salary greater than $22,000, a bonus of $400 or $500, and a commission less than $1,900. The list should be ordered by last name.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

1-2 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 27: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 9

Using the EMP_ACT table, for all projects that have a project number beginning with AD and have activities 10, 80, and 180 associated with them, list the following:

• Project number • Activity number • Starting date for activity • Ending date for activity

Order the list by activity number within project number.

Problem 10

List manager number and department number for all departments to which a manager has been assigned.

The list should be ordered by manager number.

Problem 11

List employee number, last name, salary, and bonus for all employees that have a bonus ranging from $800 to $1,000.

Sort the report by employee number within bonus, lowest bonus first.

Problem 12

List employee number, last name, salary, and department number for all employees in departments A00 through C01 (inclusive).

Order the results alphabetically by last name and employee number.

Problem 13

List all projects that have SUPPORT as part of the project name. Order the results by project number.

Problem 14

List all departments that have a 1 as the middle character in the department number.

Order the results by department number.

Problem 15

List the last name, first name, middle initial, and salary of the five highest paid non-manager, non-president employees.

Order the results by highest salary first.

END OF LAB

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 1. Simple SQL Queries 1-3

Page 28: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List with Expected Results

Problem 1

List employee number, last name, date of birth, and salary for all employees who make more than $30,000 a year. Sequence the results in descending order by salary.

Result

EMPNO LASTNAME BIRTHDATE SALARY ---------+---------+---------+---------+-------- 000010 HAAS 1933-08-14 52750.00 000110 LUCCHESI 1929-11-05 46500.00 000020 THOMPSON 1948-02-02 41250.00 000050 GEYER 1925-09-15 40175.00 000030 KWAN 1941-05-11 38250.00 000070 PULASKI 1953-05-26 36170.00 000060 STERN 1945-07-07 32250.00

Problem 2

List last name, first name, and the department number for all employees. The listing should be ordered by descending department numbers. Within the same department, the last names should be sorted in descending order.

Result

LASTNAME FIRSTNME WORKDEPT ---------+---------+---------+---------+ SPENSER THEODORE E21 MEHTA RAMLAL E21 LEE WING E21 GOUNOT JASON E21 SMITH PHILIP E11 SETRIGHT MAUDE E11 SCHNEIDER ETHEL E11 PARKER JOHN E11 HENDERSON EILEEN E11 GEYER JOHN E01 ...... ...... ...

The complete result set contains 32 rows.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

1-4 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 29: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 3

List the different education levels in the company in descending order. List only one occurrence of duplicate result rows.

Result

EDLEVEL ------- 20 19 18 17 16 15 14 12

Problem 4

List employees, by employee number, and their assigned projects, by project number. Display only those employees with an employee number less than or equal to 100. List only one occurrence of duplicate rows. Sort the result rows by employee number.

(Use the EMP_ACT table.)

Result

EMPNO PROJNO ---------+---- 000010 AD3100 000010 MA2100 000010 MA2110 000020 PL2100 000030 IF1000 000030 IF2000 000050 OP1000 000050 OP2010 000070 AD3110 000090 OP1010 000100 OP2010

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 1. Simple SQL Queries 1-5

Page 30: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 5

List last name, salary, and bonus of all male employees.

Result

LASTNAME SALARY BONUS ---------+---------+---------+---------+- THOMPSON 41250.00 800.00 GEYER 40175.00 800.00 STERN 32250.00 600.00 SPENSER 26150.00 500.00 LUCCHESI 46500.00 900.00 O'CONNELL 29250.00 600.00 ADAMSON 25280.00 500.00 YOSHIMURA 24680.00 500.00 WALKER 20450.00 400.00 BROWN 27740.00 600.00 JONES 18270.00 400.00 JEFFERSON 22180.00 400.00 MARINO 28760.00 600.00 SMITH 19180.00 400.00 PARKER 15340.00 300.00 SMITH 17750.00 400.00 MEHTA 19950.00 400.00 LEE 25370.00 500.00 GOUNOT 23840.00 500.00

Problem 6

List last name, salary, and commission for all employees with a salary greater than $20,000 and hired after 1979.

Result

LASTNAME SALARY COMM ---------+---------+---------+---------+- PULASKI 36170.00 2893.00 SPENSER 26150.00 2092.00 PEREZ 27380.00 2190.00

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

1-6 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 31: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 7

List last name, salary, bonus, and commission for all employees with a salary greater than $22,000 and a bonus of $400, or for all employees with a bonus of $500 and a commission lower than $1,900. The list should be ordered by last name.

Result

LASTNAME SALARY BONUS COMM ---------+---------+---------+---------+---------+---- JEFFERSON 22180,00 400,00 1774,00 PIANKA 22250,00 400,00 1780,00 SCOUTTEN 21340,00 500,00 1707,00

Problem 8

List last name, salary, bonus, and commission for all employees with a salary greater than $22,000, a bonus of $400 or $500, and a commission less than $1,900. The list should be ordered by last name.

Result

LASTNAME SALARY BONUS COMM ---------+---------+---------+---------+---------+---- JEFFERSON 22180.00 400.00 1774.00 PIANKA 22250.00 400.00 1780.00

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 1. Simple SQL Queries 1-7

Page 32: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 9

Using the EMP_ACT table, for all projects that have a project number beginning with AD and have activities 10, 80, and 180 associated with them, list the following:

• Project number • Activity number • Starting date for activity • Ending date for activity

Order the list by activity number within project number.

Result

PROJNO ACTNO EMSTDATE EMENDATE ---------+---------+---------+-------- AD3100 10 1982-01-01 1982-07-01 AD3110 10 1982-01-01 1983-02-01 AD3111 80 1982-04-15 1982-10-15 AD3111 80 1982-09-15 1983-01-01 AD3111 180 1982-10-15 1983-01-01 AD3112 80 1982-08-15 1982-10-15 AD3112 80 1982-10-15 1982-12-01 AD3112 180 1982-08-15 1983-01-01 AD3113 80 1982-01-01 1982-03-01 AD3113 80 1982-01-01 1982-03-01 AD3113 80 1982-03-01 1982-04-15 AD3113 80 1982-03-01 1982-04-01 AD3113 180 1982-03-01 1982-04-15 AD3113 180 1982-04-15 1982-06-01 AD3113 180 1982-06-01 1982-07-01

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

1-8 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 33: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 10

List manager number and department number for all departments to which a manager has been assigned.

The list should be ordered by manager number.

Result

MGRNO DEPTNO ---------+---- 000010 A00 000020 B01 000030 C01 000050 E01 000060 D11 000070 D21 000090 E11 000100 E21

Problem 11

List employee number, last name, salary, and bonus for all employees that have a bonus ranging from $800 to $1,000.

Sort the report by employee number within bonus, lowest bonus first.

Result

EMPNO LASTNAME SALARY BONUS ------ --------------- ------------ ------------ 000020 THOMPSON 41250.00 800.00 000030 KWAN 38250.00 800.00 000050 GEYER 40175.00 800.00 000110 LUCCHESSI 46500.00 900.00 000010 HAAS 52750.00 1000.00

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 1. Simple SQL Queries 1-9

Page 34: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 12

List employee number, last name, salary, and department number for all employees in departments A00 through C01 (inclusive).

Order the results alphabetically by last name and employee number.

Result

EMPNO LASTNAME SALARY WORKDEPT ---------+---------+---------+---------+---------+ 000010 HAAS 52750.00 A00 000030 KWAN 38250.00 C01 000110 LUCCHESI 46500.00 A00 000140 NICHOLLS 28420.00 C01 000120 O'CONNELL 29250.00 A00 000130 QUINTANA 23800.00 C01 000020 THOMPSON 41250.00 B01

Problem 13

List all projects that have SUPPORT as part of the project name. Order the results by project number.

Result

PROJNO PROJNAME ---------+---------+---------+--------- OP1000 OPERATION SUPPORT OP2010 SYSTEMS SUPPORT OP2011 SCP SYSTEMS SUPPORT OP2012 APPLICATIONS SUPPORT OP2013 DB/DC SUPPORT

Problem 14

List all departments that have a 1 as the middle character in the department number.

Order the results by department number.

Result

DEPTNO DEPTNAME ---------+---------+---------+---------+ D11 MANUFACTURING SYSTEMS E11 OPERATIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

1-10 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 35: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 15

List the last name, first name, middle initial, and salary of the five highest paid non-manager, non-president employees.

Order the results by highest salary first.

Result

LASTNAME FIRSTNME MIDINIT SALARY --------------- ------------ ------- ------------ LUCCHESSI VINCENZO G 46500.00 LUTZ JENNIFER K 29840.00 O'CONNELL SEAN 29250.00 MARINO SALVATORE M 28760.00 NICHOLLS HEATHER A 28420.00

END OF Problem List With Expected Results

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 1. Simple SQL Queries 1-11

Page 36: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Solutions

Problem 1

SELECT EMPNO, LASTNAME, BIRTHDATE, SALARY FROM EMPLOYEE WHERE SALARY > 30000 ORDER BY SALARY DESC

Problem 2

SELECT LASTNAME, FIRSTNME, WORKDEPT FROM EMPLOYEE ORDER BY WORKDEPT DESC, LASTNAME DESC

Problem 3

SELECT DISTINCT EDLEVEL FROM EMPLOYEE ORDER BY EDLEVEL DESC

Problem 4

SELECT DISTINCT EMPNO, PROJNO FROM EMP_ACT WHERE EMPNO <= '000100' ORDER BY EMPNO

Problem 5

SELECT LASTNAME, SALARY, BONUS FROM EMPLOYEE WHERE SEX = 'M'

Problem 6

SELECT LASTNAME, SALARY, COMM FROM EMPLOYEE WHERE HIREDATE >= '1980-01-01' AND SALARY > 20000

Problem 7

SELECT LASTNAME, SALARY, BONUS, COMM FROM EMPLOYEE WHERE SALARY > 22000 AND BONUS = 400 OR BONUS = 500 AND COMM < 1900 ORDER BY LASTNAME

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

1-12 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 37: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 8

SELECT LASTNAME, SALARY, BONUS, COMM FROM EMPLOYEE WHERE SALARY > 22000 AND ( BONUS = 400 OR BONUS = 500 ) AND COMM < 1900 ORDER BY LASTNAME

Problem 9

SELECT PROJNO, ACTNO, EMSTDATE, EMENDATE FROM EMP_ACT WHERE ACTNO IN (10, 80, 180) AND PROJNO LIKE 'AD%' ORDER BY PROJNO, ACTNO

Problem 10

SELECT MGRNO, DEPTNO FROM DEPARTMENT WHERE MGRNO IS NOT NULL ORDER BY MGRNO

Problem 11

SELECT EMPNO, LASTNAME, SALARY, BONUS FROM EMPLOYEE WHERE BONUS BETWEEN 800 AND 1000 ORDER BY BONUS, EMPNO

Problem 12

SELECT EMPNO, LASTNAME, SALARY, WORKDEPT FROM EMPLOYEE WHERE WORKDEPT BETWEEN 'A00' AND 'C01' ORDER BY LASTNAME, EMPNO

Problem 13

SELECT PROJNO, PROJNAME FROM PROJECT WHERE PROJNAME LIKE '%SUPPORT%' ORDER BY PROJNO

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 1. Simple SQL Queries 1-13

Page 38: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 14

SELECT DEPTNO, DEPTNAME FROM DEPARTMENT WHERE DEPTNO LIKE '_1_' ORDER BY DEPTNO

Problem 15

SELECT LASTNAME, FIRSTNME, MIDINIT, SALARY FROM EMPLOYEE WHERE JOB NOT IN ('PRES', 'MANAGER') ORDER BY SALARY DESC FETCH FIRST 5 ROWS ONLY

END OF SOLUTIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

1-14 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 39: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise 2. Retrieving Data from Multiple Tables

What This Exercise Is About

This exercise provides an opportunity to write queries that retrieve data from more than one table.

What You Should Be Able to Do

At the end of the lab, you should be able to:

• Code SELECT statements referencing multiple tables or views.

Introduction

See the data model at the start of this exercise guide to get the column names and descriptions for each table.

Required Materials

• Student handout • SQL Reference

Instructor Exercise Overview

Remind the students to complete as many of the problems as they can within the allotted time. It is not necessary that they complete all of the problems.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-1

Page 40: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List

Problem 1

Produce a report that lists employees' last names, first names, and department names. Sequence the report on first name within last name, within department name.

Problem 2

Modify the previous query to include job. Also, list data for only departments between A02 and D22, and exclude managers from the list. Sequence the report on first name within last name, within job, within department name.

Problem 3

List the name of each department and the lastname and first name of its manager. Sequence the list by department name. Use the EMPNO and MGRNO columns to relate the two tables. Sequence the result rows by department name.

Problem 4

Try the following: modify the previous query using WORKDEPT and DEPTNO as the join predicate. Include a local predicate that looks for people whose job is manager.

Are the results from both queries the same? __________________

Why?

__________________________________________________________________ __________________________________________________________________ __________________________________________________________________

Problem 5

For all projects that have a project number beginning with AD, list project number, project name, and activity number. List identical rows once. Order the list by project number and then by activity number.

Problem 6

Which employees are assigned to project number AD3113? List employee number, last name, and project number. Order the list by employee number and then by project number. List only one occurrence of duplicate result rows.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-2 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 41: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 7

Which activities began on October 1, 1982? For each of these activities, list the employee number of the person performing the activity, the project number, project name, activity number, and starting date of the activity. Order the list by project number, then by employee number, and then by activity number.

Problem 8

Display department number, last name, project name, and activity number for activities performed by the employees in department A00.

Sequence the results first by project name and then by activity number.

Problem 9

List department number, last name, project name, and activity number for those employees in work departments A00 through C01. Suppress identical rows.

Sort the list by department number, last name, and activity number.

Problem 10

The second line manager needs a list of activities which began on October 15, 1982 or thereafter.

For these activities, list the activity number, the manager number of the manager of the department assigned to the project, the starting date for the activity, the project number, and the last name of the employee performing the activity.

The list should be ordered by the activity number and then by the activity start date.

Problem 11

Which employees in department A00 were hired before their manager?

List department number, the manager's last name, the employee's last name, and the hiring dates of both the manager and the employee.

Order the list by the employee's last name.

END OF LAB

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-3

Page 42: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List With Expected Results

Problem 1

Produce a report that lists employees' last names, first names, and department names. Sequence the report on first name within last name, within department name.

Result

LASTNAME FIRSTNME DEPTNAME --------------- ------------ ----------------------------- JEFFERSON JAMES ADMINISTRATION SYSTEMS JOHNSON SYBIL ADMINISTRATION SYSTEMS MARINO SALVATORE ADMINISTRATION SYSTEMS PEREZ MARIA ADMINISTRATION SYSTEMS PULASKI EVA ADMINISTRATION SYSTEMS SMITH DANIEL ADMINISTRATION SYSTEMS KWAN SALLY INFORMATION CENTER NICHOLLS HEATHER INFORMATION CENTER QUINTANA DOLORES INFORMATION CENTER ADAMSON BRUCE MANUFACTURING SYSTEMS BROWN DAVID MANUFACTURING SYSTEMS JONES WILLIAM MANUFACTURING SYSTEMS LUTZ JENNIFER MANUFACTURING SYSTEMS PIANKA ELIZABETH MANUFACTURING SYSTEMS SCOUTTEN MARILYN MANUFACTURING SYSTEMS STERN IRVING MANUFACTURING SYSTEMS WALKER JAMES MANUFACTURING SYSTEMS YOSHIMURA MASATOSHI MANUFACTURING SYSTEMS HENDERSON EILEEN OPERATIONS PARKER JOHN OPERATIONS SCHNEIDER ETHEL OPERATIONS SETRIGHT MAUDE OPERATIONS SMITH PHILIP OPERATIONS THOMPSON MICHAEL PLANNING GOUNOT JASON SOFTWARE SUPPORT LEE WING SOFTWARE SUPPORT MEHTA RAMLAL SOFTWARE SUPPORT SPENSER THEODORE SOFTWARE SUPPORT HAAS CHRISTINE SPIFFY COMPUTER SERVICE DIV. LUCCHESSI VINCENZO SPIFFY COMPUTER SERVICE DIV. O'CONNELL SEAN SPIFFY COMPUTER SERVICE DIV. GEYER JOHN SUPPORT SERVICES

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-4 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 43: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 2

Modify the previous query to include job. Also, list data for only departments between A02 and D22, and exclude managers from the list. Sequence the report on first name within last name, within job, within department name.

Result

LASTNAME FIRSTNME DEPTNAME JOB -------------- ----------- --------------------------- -------- JEFFERSON JAMES ADMINISTRATION SYSTEMS CLERK JOHNSON SYBIL ADMINISTRATION SYSTEMS CLERK MARINO SALVATORE ADMINISTRATION SYSTEMS CLERK PEREZ MARIA ADMINISTRATION SYSTEMS CLERK SMITH DANIEL ADMINISTRATION SYSTEMS CLERK NICHOLLS HEATHER INFORMATION CENTER ANALYST QUINTANA DOLORES INFORMATION CENTER ANALYST ADAMSON BRUCE MANUFACTURING SYSTEMS DESIGNER BROWN DAVID MANUFACTURING SYSTEMS DESIGNER JONES WILLIAM MANUFACTURING SYSTEMS DESIGNER LUTZ JENNIFER MANUFACTURING SYSTEMS DESIGNER PIANKA ELIZABETH MANUFACTURING SYSTEMS DESIGNER SCOUTTEN MARILYN MANUFACTURING SYSTEMS DESIGNER WALKER JAMES MANUFACTURING SYSTEMS DESIGNER YOSHIMURA MASATOSHI MANUFACTURING SYSTEMS DESIGNER

Problem 3

List the name of each department and the lastname and first name of its manager. Sequence the list by department name. Use the EMPNO and MGRNO columns to relate the two tables. Sequence the result rows by department name.

Result

DEPTNAME LASTNAME FIRSTNME ----------------------------- --------------- ------------ ADMINISTRATION SYSTEMS PULASKI EVA INFORMATION CENTER KWAN SALLY MANUFACTURING SYSTEMS STERN IRVING OPERATIONS HENDERSON EILEEN PLANNING THOMPSON MICHAEL SOFTWARE SUPPORT SPENSER THEODORE SPIFFY COMPUTER SERVICE DIV. HAAS CHRISTINE SUPPORT SERVICES GEYER JOHN

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-5

Page 44: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 4

Try the following: modify the previous query using WORKDEPT and DEPTNO as the join predicate. Include a local predicate that looks for people whose job is manager.

Are the results from both queries the same? __________________

Why?

__________________________________________________________________ __________________________________________________________________ __________________________________________________________________

Result

DEPTNAME LASTNAME FIRSTNME ----------------------------- --------------- ------------ ADMINISTRATION SYSTEMS PULASKI EVA INFORMATION CENTER KWAN SALLY MANUFACTURING SYSTEMS STERN IRVING OPERATIONS HENDERSON EILEEN PLANNING THOMPSON MICHAEL SOFTWARE SUPPORT SPENSER THEODORE SUPPORT SERVICES GEYER JOHN

Problem 5

For all projects that have a project number beginning with AD, list project number, project name, and activity number. List identical rows once. Order the list by project number and then by activity number.

Result

PROJNO PROJNAME ACTNO ---------+---------+---------+---------+- AD3100 ADMIN SERVICES 10 AD3110 GENERAL AD SYSTEMS 10 AD3111 PAYROLL PROGRAMMING 60 AD3111 PAYROLL PROGRAMMING 70 AD3111 PAYROLL PROGRAMMING 80 AD3111 PAYROLL PROGRAMMING 180 AD3112 PERSONNEL PROGRAMMG 60 AD3112 PERSONNEL PROGRAMMG 70 AD3112 PERSONNEL PROGRAMMG 80 AD3112 PERSONNEL PROGRAMMG 180 AD3113 ACCOUNT.PROGRAMMING 60 AD3113 ACCOUNT.PROGRAMMING 70 AD3113 ACCOUNT.PROGRAMMING 80 AD3113 ACCOUNT.PROGRAMMING 180

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-6 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 45: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 6

Which employees are assigned to project number AD3113? List employee number, last name, and project number. Order the list by employee number and then by project number. List only one occurrence of duplicate result rows.

Result

EMPNO LASTNAME PROJNO ---------+---------+---------+-- 000260 JOHNSON AD3113 000270 PEREZ AD3113

Problem 7

Which activities began on October 1, 1982? For each of these activities, list the employee number of the person performing the activity, the project number, project name, activity number, and starting date of the activity. Order the list by project number, then by employee number, and then by activity number.

Result

EMPNO PROJNO PROJNAME ACTNO EMSTDATE ---------+---------+---------+---------+---------+---------+ 000130 IF1000 QUERY SERVICES 100 1982-10-01 000140 IF1000 QUERY SERVICES 90 1982-10-01 000140 IF2000 USER EDUCATION 110 1982-10-01 000190 MA2112 W L ROBOT DESIGN 80 1982-10-01 000210 MA2113 W L PROD CONT PROGS 80 1982-10-01 000210 MA2113 W L PROD CONT PROGS 180 1982-10-01

Problem 8

Display department number, last name, project name, and activity number for activities performed by the employees in department A00.

Sequence the results first by project name and then by activity number.

Result

WORKDEPT LASTNAME PROJNAME ACTNO ---------+---------+---------+---------+---------+--------- A00 HAAS ADMIN SERVICES 10 A00 HAAS W L PROGRAMMING 10 A00 HAAS WELD LINE AUTOMATION 10 A00 LUCCHESI WELD LINE AUTOMATION 20

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-7

Page 46: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 9

List department number, last name, project name, and activity number for those employees in work departments A00 through C01. Suppress identical rows.

Sort the list by department number, last name, and activity number.

Result

WORKDEPT LASTNAME PROJNAME ACTNO ---------+---------+---+---------+---------+--------- A00 HAAS ADMIN SERVICES 10 A00 HAAS W L PROGRAMMING 10 A00 HAAS WELD LINE AUTOMATION 10 A00 LUCCHESI WELD LINE AUTOMATION 20 B01 THOMPSON WELD LINE PLANNING 30 C01 KWAN QUERY SERVICES 10 C01 KWAN USER EDUCATION 10 C01 NICHOLLS QUERY SERVICES 90 C01 NICHOLLS USER EDUCATION 100 C01 NICHOLLS USER EDUCATION 110 C01 QUINTANA QUERY SERVICES 90 C01 QUINTANA QUERY SERVICES 100

Problem 10

The second line manager needs a list of activities which began on October 15, 1982 or thereafter.

For these activities, list the activity number, the manager number of the manager of the department assigned to the project, the starting date for the activity, the project number, and the last name of the employee performing the activity.

The list should be ordered by the activity number and then by the activity start date.

Result

ACTNO MGRNO EMSTDATE PROJNO LASTNAME --------+---------+---------+---------+------ 60 000070 1982-12-01 AD3112 SMITH 60 000070 1983-01-01 AD3112 SMITH 70 000070 1982-10-15 AD3113 PEREZ 80 000070 1982-10-15 AD3112 SMITH 180 000070 1982-10-15 AD3111 JEFFERSON

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-8 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 47: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 11

Which employees in department A00 were hired before their manager?

List department number, the manager's last name, the employee's last name, and the hiring dates of both the manager and the employee.

Order the list by the employee's last name.

Result

DEPTNO MANAGER EMPLOYEE M_HIREDATE E_HIREDATE ---------+---------+---------+---------+---------+------- A00 HAAS LUCCHESI 1965-01-01 1958-05-16 A00 HAAS O'CONNELL 1965-01-01 1963-12-05

END OF Problem List with Expected Results

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-9

Page 48: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Solutions

Problem 1

SELECT E.LASTNAME, E.FIRSTNME, D.DEPTNAME FROM EMPLOYEE E, DEPARTMENT D WHERE E.WORKDEPT = D.DEPTNO ORDER BY D.DEPTNAME, E.LASTNAME, E.FIRSTNME OR SELECT E.LASTNAME, E.FIRSTNME, D.DEPTNAME FROM EMPLOYEE E JOIN DEPARTMENT D ON E.WORKDEPT = D.DEPTNO ORDER BY D.DEPTNAME, E.LASTNAME, E.FIRSTNME

Problem 2

SELECT E.LASTNAME, E.FIRSTNME, D.DEPTNAME, E.JOB FROM EMPLOYEE E, DEPARTMENT D WHERE E.WORKDEPT = D.DEPTNO AND E.WORKDEPT BETWEEN 'A02' AND 'D22' AND JOB <> 'MANAGER' ORDER BY D.DEPTNAME, E.LASTNAME, E.FIRSTNME OR SELECT E.LASTNAME, E.FIRSTNME, D.DEPTNAME, E.JOB FROM EMPLOYEE E JOIN DEPARTMENT D ON E.WORKDEPT = D.DEPTNO WHERE E.WORKDEPT BETWEEN 'A02' AND 'D22' AND JOB <> 'MANAGER' ORDER BY D.DEPTNAME, E.LASTNAME, E.FIRSTNME

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-10 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 49: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 3

SELECT D.DEPTNAME, E.LASTNAME, E.FIRSTNME FROM DEPARTMENT D, EMPLOYEE E WHERE D.MGRNO = E.EMPNO ORDER BY D.DEPTNAME OR SELECT D.DEPTNAME, E.LASTNAME, E.FIRSTNME FROM DEPARTMENT D JOIN EMPLOYEE E ON D.MGRNO = E.EMPNO ORDER BY D.DEPTNAME

Problem 4

SELECT D.DEPTNAME, E.LASTNAME, E.FIRSTNME FROM DEPARTMENT D, EMPLOYEE E WHERE D.DEPTNO = E.WORKDEPT AND JOB = 'MANAGER' ORDER BY D.DEPTNAME OR SELECT D.DEPTNAME, E.LASTNAME, E.FIRSTNME FROM DEPARTMENT D JOIN EMPLOYEE E ON D.DEPTNO = E.WORKDEPT WHERE JOB = 'MANAGER' ORDER BY D.DEPTNAME The results of the queries in problem 3 and 4 are not the same. The department named Spiffy Computer Services Div. is not in the second report. The reason: the job title of that department's manager is PRES. Our WHERE clause only allows qualified persons with a job of MANAGER to be joined with their department rows. It is very important to learn the data within your tables!

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-11

Page 50: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 5

SELECT DISTINCT A.PROJNO, PROJNAME, ACTNO FROM PROJECT P, EMP_ACT A WHERE P.PROJNO = A.PROJNO AND A.PROJNO LIKE 'AD%' ORDER BY A.PROJNO, ACTNO

or

SELECT DISTINCT A.PROJNO, PROJNAME, ACTNO FROM PROJECT AS P JOIN EMP_ACT AS A ON P.PROJNO = A.PROJNO WHERE A.PROJNO LIKE 'AD%' ORDER BY A.PROJNO, ACTNO

Problem 6

SELECT DISTINCT A.EMPNO, LASTNAME, PROJNO FROM EMPLOYEE E, EMP_ACT A WHERE A.EMPNO = E.EMPNO AND A.PROJNO = 'AD3113' ORDER BY A.EMPNO, PROJNO

or

SELECT DISTINCT A.EMPNO,LASTNAME, PROJNO FROM EMPLOYEE AS E JOIN EMP_ACT AS A ON E.EMPNO = A.EMPNO WHERE A.PROJNO = 'AD3113' ORDER BY A.EMPNO, PROJNO

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-12 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 51: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 7

SELECT A.EMPNO, A.PROJNO, PROJNAME, ACTNO, EMSTDATE FROM PROJECT P, EMP_ACT A WHERE A.PROJNO = P.PROJNO AND EMSTDATE = '1982-10-01' ORDER BY A.PROJNO, A.EMPNO, ACTNO

or

SELECT A.EMPNO, A.PROJNO, PROJNAME, ACTNO, EMSTDATE FROM PROJECT AS P JOIN EMP_ACT AS A ON P.PROJNO = A.PROJNO WHERE A.EMSTDATE = '1982-10-01' ORDER BY A.PROJNO, A.EMPNO, ACTNO

Problem 8

SELECT E.WORKDEPT, E.LASTNAME, P.PROJNAME, A.ACTNO FROM EMPLOYEE E, PROJECT P, EMP_ACT A WHERE E.EMPNO = A.EMPNO AND A.PROJNO = P.PROJNO AND E.WORKDEPT = 'A00' ORDER BY P.PROJNAME, A.ACTNO

OR

SELECT E.WORKDEPT, E.LASTNAME, P.PROJNAME, A.ACTNO FROM EMPLOYEE AS E JOIN EMP_ACT AS A ON E.EMPNO = A.EMPNO JOIN PROJECT AS P ON A.PROJNO = P.PROJNO WHERE E.WORKDEPT = 'A00' ORDER BY P.PROJNAME, A.ACTNO

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-13

Page 52: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 9

SELECT DISTINCT E.WORKDEPT, E.LASTNAME, P.PROJNAME, A.ACTNO FROM EMPLOYEE E, PROJECT P, EMP_ACT A WHERE E.EMPNO = A.EMPNO AND A.PROJNO = P.PROJNO AND E.WORKDEPT BETWEEN 'A00' AND 'C01' ORDER BY E.WORKDEPT, E.LASTNAME, A.ACTNO

OR

SELECT DISTINCT E.WORKDEPT, E.LASTNAME, P.PROJNAME, A.ACTNO FROM EMPLOYEE E JOIN EMP_ACT A ON E.EMPNO = A.EMPNO JOIN PROJECT P ON A.PROJNO = P.PROJNO WHERE E.WORKDEPT BETWEEN 'A00' AND 'C01' ORDER BY E.WORKDEPT, E.LASTNAME, A.ACTNO

Problem 10

SELECT A.ACTNO, D.MGRNO, A.EMSTDATE, P.PROJNO, E.LASTNAME FROM DEPARTMENT D, EMPLOYEE E, PROJECT P, EMP_ACT A WHERE E.EMPNO = A.EMPNO AND A.PROJNO = P.PROJNO AND E.WORKDEPT = D.DEPTNO AND A.EMSTDATE >= '1982-10-15' ORDER BY A.ACTNO, A.EMSTDATE

OR

SELECT A.ACTNO, D.MGRNO, A.EMSTDATE, E.LASTNAME FROM EMPLOYEE AS E JOIN EMP_ACT AS A ON E.EMPNO = A.EMPNO JOIN PROJECT AS P ON A.PROJNO = P.PROJNO JOIN DEPARTMENT AS D ON E.WORKDEPT = D.DEPTNO WHERE A.EMSTDATE >= '1982-10-15' ORDER BY A.ACTNO, A.EMSTDATE

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-14 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 53: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 11

SELECT D.DEPTNO, M.LASTNAME AS MANAGER, E.LASTNAME AS EMPLOYEE, M.HIREDATE AS M_HIREDATE, E.HIREDATE AS E_HIREDATE FROM EMPLOYEE M, EMPLOYEE E, DEPARTMENT D WHERE D.MGRNO = M.EMPNO AND E.WORKDEPT = D.DEPTNO AND M.HIREDATE > E.HIREDATE AND E.WORKDEPT = 'A00' ORDER BY EMPLOYEE

OR SELECT D.DEPTNO, M.LASTNAME AS MANAGER, E.LASTNAME AS EMPLOYEE, M.HIREDATE AS M_HIREDATE, E.HIREDATE AS E_HIREDATE FROM EMPLOYEE AS E JOIN DEPARTMENT AS D ON E.WORKDEPT = D.DEPTNO JOIN EMPLOYEE AS M ON M.EMPNO = D.MGRNO WHERE M.HIREDATE > E.HIREDATE AND E.WORKDEPT = 'A00' ORDER BY E.LASTNAME

END OF SOLUTIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 2. Retrieving Data from Multiple Tables 2-15

Page 54: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

2-16 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 55: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise 3. Scalar Functions and Arithmetic

What This Exercise Is About

This exercise provides an opportunity to work with scalar functions and arithmetic expressions.

What You Should Be Able to Do

At the end of the lab, you should be able to:

• Code queries that use scalar functions • Code queries by using calculated expressions in the select list and

in the WHERE clause • Use basic scalar functions • Use the CONCAT operator

Introduction

See the data model at the start of this exercise guide to get the column names and descriptions for each table.

Required Materials

• Student handout • SQL Reference

Instructor Exercise Overview

Remind the students they are not expected to complete all problems within the allotted time.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 3. Scalar Functions and Arithmetic 3-1

Page 56: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List

Problem 1

For employees whose salary, increased by 5 percent, is less than or equal to $20,000, list the following:

• Last name • Current Salary • Salary increased by 5 percent • Monthly salary increased by 5 percent

Use the following column names for the two generated columns:

INC-Y-SALARY and INC-M-SALARY Use the proper conversion function to display the increased salary and monthly salary with two of the digits to the right of the decimal point. Sort the results by annual salary.

Problem 2

All employees with an education level of 18 or 20 will receive a salary increase of $1,200 and their bonus will be cut in half. List last name, education level, new salary, and new bonus for these employees. Display the new bonus with two digits to the right of the decimal point.

Use the column names NEW-SALARY and NEW-BONUS for the generated columns.

Employees with an education level of 20 should be listed first. For employees with the same education level, sort the list by salary.

Problem 3

The salary will be decreased by $1,000 for all employees matching the following criteria:

• They belong to department D11 • Their salary is more than or equal to 80 percent of $20,000 • Their salary is less than or equal to 120 percent of $20,000

Use the name DECR-SALARY for the generated column.

List department number, last name, salary, and decreased salary. Sort the result by salary.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

3-2 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 57: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 4

Produce a list of all employees in department D11 that have an income (sum of salary, commission, and bonus) that is greater than their salary increased by 10 percent.

Name the generated column INCOME.

List department number, last name, and income. Sort the result in descending order by income.

For this problem assume that all employees have non-null salaries, commissions, and bonuses.

Problem 5

List all departments that have no manager assigned. List department number, department name, and manager number. Replace unknown manager numbers with the word UNKNOWN and name the column MGRNO.

Problem 6

List the project number and major project number for all projects that have a project number beginning with MA. If the major project number is unknown, display the text 'MAIN PROJECT.'

Name the derived column MAJOR PROJECT.

Sequence the results by PROJNO.

Problem 7

List all employees who were younger than 25 when they joined the company.

List their employee number, last name, and age when they joined the company.

Name the derived column AGE.

Sort the result by age and then by employee number.

Problem 8

Provide a list of all projects which ended on December 1, 1982. Display the year and month of the starting date and the project number. Sort the result by project number.

Name the derived columns YEAR and MONTH.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 3. Scalar Functions and Arithmetic 3-3

Page 58: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 9

List the project number and duration, in weeks, of all projects that have a project number beginning with MA. The duration should be rounded and displayed with one decimal position.

Name the derived column WEEKS.

Order the list by the project number.

Problem 10

For projects that have a project number beginning with MA, list the project number, project ending date, and a modified ending date assuming the projects will be delayed by 10 percent.

Name the column containing PRENDATE, ESTIMATED. Name the derived column EXPECTED.

Order the list by project number.

Problem 11

How many days are between the first manned landing on the moon (July 20, 1969) and the first day of the year 2000?

Since no columns from a specific table are used in this problem, you can use any table in the FROM clause but you should indicate a WHERE condition that derives a single result row (unique key). You may also select from the SYSIBM.SYSDUMMY1 table which produces a one row result.

Name the derived column DAYS.

END OF LAB

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

3-4 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 59: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem List with Expected Results

Problem 1

For employees whose salary, increased by 5 percent, is less than or equal to $20,000, list the following:

• Last name • Current Salary • Salary increased by 5 percent • Monthly salary increased by 5 percent

Use the following column names for the two generated columns:

INC-Y-SALARY and INC-M-SALARY Use the proper conversion function to display the increased salary and monthly salary with two of the digits to the right of the decimal point. Sort the results by annual salary.

Result

LASTNAME SALARY INC-Y-SALARY INC-M-SALARY ---------+---------+---------+---------+---------+---------+--- PARKER 15340.00 16107.00 1342.25 SETRIGHT 15900.00 16695.00 1391.25 JOHNSON 17250.00 18112.50 1509.37 SMITH 17750.00 18637.50 1553.12 JONES 18270.00 19183.50 1598.62

Problem 2

All employees with an education level of 18 or 20 will receive a salary increase of $1,200 and their bonus will be cut in half. List last name, education level, new salary, and new bonus for these employees. Display the new bonus with two digits to the right of the decimal point.

Use the column names NEW-SALARY and NEW-BONUS for the generated columns.

Employees with an education level of 20 should be listed first. For employees with the same education level, sort the list by salary.

Result

LASTNAME EDLEVEL NEW-SALARY NEW-BONUS ---------+---------+---------+---------+---------+-- KWAN 20 39450.00 400.00 NICHOLLS 18 29620.00 300.00 LUTZ 18 31040.00 300.00 THOMPSON 18 42450.00 400.00 HAAS 18 53950.00 500.00

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 3. Scalar Functions and Arithmetic 3-5

Page 60: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 3

The salary will be decreased by $1,000 for all employees matching the following criteria:

• They belong to department D11 • Their salary is more than or equal to 80 percent of $20,000 • Their salary is less than or equal to 120 percent of $20,000

Use the name DECR-SALARY for the generated column.

List department number, last name, salary, and decreased salary. Sort the result by salary.

Result

WORKDEPT LASTNAME SALARY DECR-SALARY ---------+---------+---------+---------+---------+-- D11 JONES 18270.00 17270.00 D11 WALKER 20450.00 19450.00 D11 SCOUTTEN 21340.00 20340.00 D11 PIANKA 22250.00 21250.00

Problem 4

Produce a list of all employees in department D11 that have an income (sum of salary, commission, and bonus) that is greater than their salary increased by 10 percent.

Name the generated column INCOME.

List department number, last name, and income. Sort the result in descending order by income.

For this problem assume that all employees have non-null salaries, commissions, and bonuses.

Result

WORKDEPT LASTNAME INCOME ---------+---------+---------+---------+ D11 LUTZ 32827.00 D11 BROWN 30557.00 D11 YOSHIMURA 27154.00 D11 SCOUTTEN 23547.00 D11 JONES 20132.00

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

3-6 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 61: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 5

List all departments that have no manager assigned. List department number, department name, and manager number. Replace unknown manager numbers with the word UNKNOWN and name the column MGRNO.

Result

DEPTNO DEPTNAME MGRNO ------ ----------------------------- ------- D01 DEVELOPMENT CENTER UNKNOWN

Problem 6

List the project number and major project number for all projects that have a project number beginning with MA. If the major project number is unknown, display the text 'MAIN PROJECT.'

Name the derived column MAJOR PROJECT.

Sequence the results by PROJNO.

Result

PROJNO MAJOR PROJECT ---------+---------+- MA2100 MAIN PROJECT MA2110 MA2100 MA2111 MA2110 MA2112 MA2110 MA2113 MA2110

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 3. Scalar Functions and Arithmetic 3-7

Page 62: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 7

List all employees who were younger than 25 when they joined the company.

List their employee number, last name, and age when they joined the company.

Name the derived column AGE.

Sort the result by age and then by employee number.

Result

EMPNO LASTNAME AGE ---------+---------+---------+------ 000220 LUTZ 20 000340 GOUNOT 20 000120 O'CONNELL 21 000160 PIANKA 22 000190 WALKER 22 000050 GEYER 23 000100 SPENSER 23 000150 ADAMSON 24 000180 SCOUTTEN 24 000200 BROWN 24

Problem 8

Provide a list of all projects which ended on December 1, 1982. Display the year and month of the starting date and the project number. Sort the result by project number.

Name the derived columns YEAR and MONTH.

Result

YEAR MONTH PROJNO ---------+---------+---------+-- 1982 1 MA2111 1982 1 MA2112 1982 2 MA2113

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

3-8 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 63: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 9

List the project number and duration, in weeks, of all projects that have a project number beginning with MA. The duration should be rounded and displayed with one decimal position.

Name the derived column WEEKS.

Order the list by the project number.

Result

PROJNO WEEKS ---------+-------- MA2100 56.6 MA2110 56.6 MA2111 47.7 MA2112 47.7 MA2113 41.3

Problem 10

For projects that have a project number beginning with MA, list the project number, project ending date, and a modified ending date assuming the projects will be delayed by 10 percent.

Name the column containing PRENDATE, ESTIMATED. Name the derived column EXPECTED.

Order the list by project number.

Result

PROJNO ESTIMATED EXPECTED ---------+---------+---------+ MA2100 1983-02-01 1983-03-12 MA2110 1983-02-01 1983-03-12 MA2111 1982-12-01 1983-01-03 MA2112 1982-12-01 1983-01-03 MA2113 1982-12-01 1982-12-29

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 3. Scalar Functions and Arithmetic 3-9

Page 64: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 11

How many days are between the first manned landing on the moon (July 20, 1969) and the first day of the year 2000?

Since no columns from a specific table are used in this problem, you can use any table in the FROM clause but you should indicate a WHERE condition that derives a single result row (unique key). You may also select from the SYSIBM.SYSDUMMY1 table which produces a one row result.

Name the derived column DAYS.

Result

DAYS ---------+- 11122

END OF Problem List with Expected Results

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

3-10 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 65: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Solutions

Problem 1

SELECT LASTNAME, SALARY, DECIMAL(SALARY*1.05,9,2) AS "INC-Y-SALARY", DECIMAL(SALARY*1.05/12,9,2) AS "INC-M-SALARY" FROM EMPLOYEE WHERE SALARY*1.05 <= 20000 ORDER BY SALARY

Problem 2

SELECT LASTNAME, EDLEVEL, SALARY+1200 AS "NEW-SALARY", DECIMAL(BONUS*0.5,9,2) AS "NEW-BONUS" FROM EMPLOYEE WHERE EDLEVEL = 18 OR EDLEVEL = 20 ORDER BY EDLEVEL DESC, 3

ALTERNATIVE

SELECT LASTNAME, EDLEVEL, SALARY+1200 AS "NEW-SALARY", DECIMAL(BONUS*0.5,9,2) AS "NEW-BONUS" FROM EMPLOYEE WHERE EDLEVEL IN (18, 20) ORDER BY EDLEVEL DESC, "NEW-BONUS"

Problem 3

SELECT WORKDEPT, LASTNAME, SALARY, SALARY-1000 AS "DECR-SALARY" FROM EMPLOYEE WHERE SALARY BETWEEN 20000*0.80 AND 20000*1.20 AND WORKDEPT = 'D11' ORDER BY SALARY

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 3. Scalar Functions and Arithmetic 3-11

Page 66: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 4

SELECT WORKDEPT, LASTNAME, SALARY+COMM+BONUS AS INCOME FROM EMPLOYEE WHERE SALARY+COMM+BONUS > 1.1*SALARY AND WORKDEPT = 'D11' ORDER BY 3 DESC

ALTERNATIVE

SELECT WORKDEPT, LASTNAME, SALARY+COMM+BONUS AS INCOME FROM EMPLOYEE WHERE SALARY+COMM+BONUS > 1.1*SALARY AND WORKDEPT = 'D11' ORDER BY INCOME DESC

Problem 5

SELECT DEPTNO, DEPTNAME , COALESCE(MGRNO, 'UNKNOWN') AS MGRNO FROM DEPARTMENT WHERE MGRNO IS NULL

Problem 6

SELECT PROJNO, COALESCE(MAJPROJ,'MAIN PROJECT') AS "MAJOR PROJECT" FROM PROJECT WHERE SUBSTR(PROJNO,1,2) ='MA' ORDER BY PROJNO

Problem 7

SELECT EMPNO, LASTNAME, YEAR(HIREDATE-BIRTHDATE) AS AGE FROM EMPLOYEE WHERE YEAR(HIREDATE-BIRTHDATE) < 25 ORDER BY AGE, EMPNO

Problem 8

SELECT YEAR(PRSTDATE) AS YEAR, MONTH(PRSTDATE) AS MONTH, PROJNO FROM PROJECT WHERE PRENDATE = '1982-12-01' ORDER BY PROJNO

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

3-12 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 67: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 9

SELECT PROJNO, DECIMAL((DAYS(PRENDATE)-DAYS(PRSTDATE))/7.0+0.05,8,1) AS WEEKSFROM PROJECT WHERE PROJNO LIKE 'MA%' ORDER BY PROJNO

Problem 10

SELECT PROJNO, PRENDATE AS ESTIMATED, PRSTDATE + ((DAYS(PRENDATE) - DAYS(PRSTDATE))*1.1) DAYS AS EXPECTED FROM PROJECT WHERE PROJNO LIKE 'MA%' ORDER BY PROJNO

Problem 11

SELECT DAYS('2000-01-01')-DAYS('1969-07-20') AS DAYS FROM EMPLOYEE WHERE EMPNO = '000010'

ALTERNATIVE

SELECT DAYS('2000-01-01')-DAYS('1969-07-20') AS DAYS FROM SYSIBM.SYSDUMMY1

END OF SOLUTIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 3. Scalar Functions and Arithmetic 3-13

Page 68: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

3-14 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 69: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise 4. Column Functions and Grouping

What This Exercise Is About

This exercise provides an opportunity to work with column functions.

What You Should Be Able to Do

At the end of the lab, you should be able to:

• Code queries that use column functions

Introduction

See the data model at the start of this exercise guide to get the column names and descriptions for each table.

Required Materials

• Student handout • SQL Reference

Instructor Exercise Overview

Remind the students that they may not have time to finish all lab problems.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 4. Column Functions and Grouping 4-1

Page 70: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List

Problem 1

For all departments, display department number and the sum of all salaries for each department. Name the derived column SUM_SALARY.

Problem 2

For all departments, display the department number and the number of employees. Name the derived column EMP_COUNT.

Problem 3

Display those departments which have more than 3 employees.

Problem 4

For all departments with at least one designer, display the number of designers and the department number. Name the derived column DESIGNER.

Problem 5

Show the average salary for men and the average salary for women for each department. Display the work department, the sex, the average salary, average bonus, average commission, and the number of people in each group. Include only those groups that have two or more people. Show only two decimal places in the averages.

Use the following names for the derived columns: AVG-SALARY, AVG-BONUS, AVG-COMM, and COUNT.

Problem 6

Display the average bonus and average commission for all departments with an average bonus greater than $500 and an average commission greater than $2,000. Display all averages with two digits to the right of the decimal point. Use the column headings AVG-BONUS and AVG-COMM for the derived columns.

END OF LAB

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

4-2 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 71: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem List with Expected Results

Problem 1

For all departments, display department number and the sum of all salaries for each department. Name the derived column SUM_SALARY.

Result

WORKDEPT SUM_SALARY -------- ---------- A00 128500.00 B01 41250.00 C01 90470.00 D11 222100.00 D21 150920.00 E01 40175.00 E11 104990.00 E21 95310.00

Problem 2

For all departments, display the department number and the number of employees. Name the derived column EMP_COUNT.

Result

WORKDEPT EMP_COUNT -------- --------- A00 3 B01 1 C01 3 D11 9 D21 6 E01 1 E11 5 E21 4

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 4. Column Functions and Grouping 4-3

Page 72: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 3

Display those departments which have more than 3 employees.

Result

WORKDEPT -------- D11 D21 E11 E21

Problem 4

For all departments with at least one designer, display the number of designers and the department number. Name the derived column DESIGNER.

Result

DESIGNER WORKDEPT ---------+---------+- 8 D11

Problem 5

Show the average salary for men and the average salary for women for each department. Display the work department, the sex, the average salary, average bonus, average commission, and the number of people in each group. Include only those groups that have two or more people. Show only two decimal places in the averages.

Use the following names for the derived columns: AVG-SALARY, AVG-BONUS, AVG-COMM, and COUNT.

Result

WORKDEPT SEX AVG-SALARY AVG-BONUS AVG-COMM COUNT ---------+---------+---------+---------+---------+------- A00 M 37875.00 750.00 3030.00 2 C01 F 30156.66 633.33 2412.66 3 D11 F 24476.66 500.00 1958.00 3 D11 M 24778.33 483.33 1981.83 6 D21 F 26933.33 500.00 2154.33 3 D21 M 23373.33 466.66 1869.66 3 E11 F 23966.66 466.66 1917.33 3 E11 M 16545.00 350.00 1323.50 2 E21 M 23827.50 475.00 1906.25 4

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

4-4 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 73: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 6

Display the average bonus and average commission for all departments with an average bonus greater than $500 and an average commission greater than $2,000. Display all averages with two digits to the right of the decimal point. Use the column headings AVG-BONUS and AVG-COMM for the derived columns.

Result

WORKDEPT AVG-BONUS AVG-COMM ---------+---------+---------+---------+------ A00 833.33 3426.66 B01 800.00 3300.00 C01 633.33 2412.66 E01 800.00 3214.00

END OF Problem List with Expected Results

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 4. Column Functions and Grouping 4-5

Page 74: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Solutions

Problem 1

SELECT WORKDEPT, SUM(SALARY) AS SUM_SALARY FROM EMPLOYEE GROUP BY WORKDEPT

Problem 2

SELECT WORKDEPT, COUNT(*) AS EMP_COUNT FROM EMPLOYEE GROUP BY WORKDEPT

Problem 3

SELECT WORKDEPT FROM EMPLOYEE GROUP BY WORKDEPT HAVING COUNT(*) > 3

Problem 4

SELECT COUNT(*) AS DESIGNER, WORKDEPT FROM EMPLOYEE WHERE JOB = 'DESIGNER' GROUP BY WORKDEPT

Problem 5

SELECT WORKDEPT, SEX, DECIMAL(AVG(SALARY),8,2) AS "AVG-SALARY", DECIMAL(AVG(BONUS),8,2) AS "AVG-BONUS", DECIMAL(AVG(COMM),8,2) AS "AVG-COMM", COUNT(*) AS COUNT FROM EMPLOYEE GROUP BY WORKDEPT, SEX HAVING COUNT(*) > 1

Problem 6

SELECT WORKDEPT, DECIMAL(AVG(BONUS),9,2) AS "AVG-BONUS", DECIMAL(AVG(COMM),9,2) AS "AVG-COMM" FROM EMPLOYEE GROUP BY WORKDEPT HAVING AVG(BONUS) > 500 AND AVG(COMM) > 2000

END OF SOLUTIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

4-6 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 75: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise 5. UNION

What This Exercise Is About

This exercise provides an opportunity to work with the UNION keyword.

What You Should Be Able to Do

At the end of the lab you should be able to:

• Derive a final result by combining results from multiple SELECTs.

Introduction

See the data model at the start of this exercise guide to get the column names and descriptions for each table.

Required Materials

• Student handout • SQL Reference

Instructor Exercise Overview

Remind the student of the difference between UNION and UNION ALL.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 5. UNION 5-1

Page 76: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List

Problem 1

List the names and salaries for the non-managers working in department D21 showing the effects of a 10 percent raise. Use the following output as a guide. Apply and appropriate ORDER BY clause to achieve the required results. Use the column headings shown.

LASTNAME FIRSTNME WHEN SALARY --------------- ------------ -------------- -------------- JEFFERSON JAMES BEFORE A RAISE 22180.000 JEFFERSON JAMES AFTER A RAISE 24398.000 JOHNSON SYBIL BEFORE A RAISE 17250.000 JOHNSON SYBIL AFTER A RAISE 18975.000 ... ... ... ...

Problem 2

List the department number, employee number, and salaries of all employees in department A00.

For the last line of the report, display the sum of all the salaries.

Problem 3

For departments A00, B01, and C01, list the projects assigned to them and the employees in each department. The output should consist of up to three types of lines for each department as follows:

See expected results for clarification of the following instructions.

First line (one per department):

• Department number • Text: DEPARTMENT • Department name

Second line(s) (if data available - one line per project):

• Department number • Project number • Project name

Subsequent line(s) (if data available - one line per employee):

• Department number • Employee number • Last name

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

5-2 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 77: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 4

For all projects that have a project number that begins with IF, display the following:

First line:

• Text: PROJECT • Project number • The employee number of the employee responsible for the project • Estimated starting date • Estimated ending date

Subsequent line(s) (one per employee working on the project):

• Project number • The employee number of the employee performing the activity • Activity starting date • Activity ending date

Sequence the results by the project number, then by employee number, and finally by the starting date.

END OF LAB

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 5. UNION 5-3

Page 78: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List with Expected Results

Problem 1

List the names and salaries for the non-managers working in department D21 showing the effects of a 10 percent raise. Use the following output as a guide. Apply and appropriate ORDER BY clause to achieve the required results. Use the column headings shown.

LASTNAME FIRSTNME WHEN SALARY --------------- ------------ -------------- -------------- JEFFERSON JAMES BEFORE A RAISE 22180.000 JEFFERSON JAMES AFTER A RAISE 24398.000 JOHNSON SYBIL BEFORE A RAISE 17250.000 JOHNSON SYBIL AFTER A RAISE 18975.000 ... ... ... ...

Result

LASTNAME FIRSTNME WHEN SALARY --------------- ------------ -------------- -------------- JEFFERSON JAMES BEFORE A RAISE 22180.000 JEFFERSON JAMES AFTER A RAISE 24398.000 JOHNSON SYBIL BEFORE A RAISE 17250.000 JOHNSON SYBIL AFTER A RAISE 18975.000 MARINO SALVATORE BEFORE A RAISE 28760.000 MARINO SALVATORE AFTER A RAISE 31636.000 PEREZ MARIA BEFORE A RAISE 27380.000 PEREZ MARIA AFTER A RAISE 30118.000 SMITH DANIEL BEFORE A RAISE 19180.000 SMITH DANIEL AFTER A RAISE 21098.000

Problem 2

List the department number, employee number, and salaries of all employees in department A00.

For the last line of the report, display the sum of all the salaries.

Result

WORKDEPT EMPNO SALARY ---------+---------+---------+-------- A00 000120 29250.00 A00 000110 46500.00 A00 000010 52750.00 A00 SUM 128500.00

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

5-4 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 79: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 3

For departments A00, B01, and C01, list the projects assigned to them and the employees in each department. The output should consist of up to three types of lines for each department as follows:

See expected results for clarification of the following instructions.

First line (one per department):

• Department number • Text: DEPARTMENT • Department name

Second line(s) (if data available - one line per project):

• Department number • Project number • Project name

Subsequent line(s) (if data available - one line per employee):

• Department number • Employee number • Last name

Result

DEPTNO INFO DEPTNAME ---------+---------+---------+---------+---------+----- A00 DEPARTMENT SPIFFY COMPUTER SERVICE DIV. 1 A00 000010 HAAS 3 A00 000110 LUCCHESI 3 A00 000120 O'CONNELL 3 B01 DEPARTMENT PLANNING 1 B01 PL2100 WELD LINE PLANNING 2 B01 000020 THOMPSON 3 C01 DEPARTMENT INFORMATION CENTER 1 C01 IF1000 QUERY SERVICES 2 C01 IF2000 USER EDUCATION 2 C01 000030 KWAN 3 C01 000130 QUINTANA 3 C01 000140 NICHOLLS 3

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 5. UNION 5-5

Page 80: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 4

For all projects that have a project number that begins with IF, display the following:

First line:

• Text: PROJECT • Project number • The employee number of the employee responsible for the project • Estimated starting date • Estimated ending date

Subsequent line(s) (one per employee working on the project):

• Project number • The employee number of the employee performing the activity • Activity starting date • Activity ending date

Sequence the results by the project number, then by employee number, and finally by the starting date.

Result

PROJNO RESPEMP PRSTDATE PRENDATE ---------+---------+---------+---------+-------- PROJECT IF1000 000030 1982-01-01 1983-02-01 IF1000 000030 1982-06-01 1983-01-01 IF1000 000130 1982-01-01 1982-10-01 IF1000 000130 1982-10-01 1983-01-01 IF1000 000140 1982-10-01 1983-01-01 PROJECT IF2000 000030 1982-01-01 1983-02-01 IF2000 000030 1982-01-01 1983-01-01 IF2000 000140 1982-01-01 1982-03-01 IF2000 000140 1982-03-01 1982-07-01 IF2000 000140 1982-03-01 1982-07-01 IF2000 000140 1982-10-01 1983-01-01

End of Problem List with Expected Results

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

5-6 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 81: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Solutions

Problem 1

SELECT LASTNAME, FIRSTNME, 'BEFORE A RAISE' AS WHEN, SALARY FROM EMPLOYEE WHERE WORKDEPT = 'D21' AND JOB <> 'MANAGER' UNION ALL SELECT LASTNAME, FIRSTNME, 'AFTER A RAISE' AS WHEN, SALARY * 1.1 AS SALARY FROM EMPLOYEE WHERE WORKDEPT = 'D21' AND JOB <> 'MANAGER' ORDER BY LASTNAME, FIRSTNME, WHEN DESC

Problem 2

SELECT WORKDEPT, EMPNO, SALARY FROM EMPLOYEE WHERE WORKDEPT = 'A00'

UNION ALL

SELECT WORKDEPT, 'SUM', SUM(SALARY) FROM EMPLOYEE WHERE WORKDEPT = 'A00' GROUP BY WORKDEPT

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 5. UNION 5-7

Page 82: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 3

SELECT DEPTNO, 'DEPARTMENT' AS INFO, DEPTNAME, 1 FROM DEPARTMENT WHERE DEPTNO IN ('A00' , 'B01' , 'C01')

UNION ALL

SELECT DEPTNO, PROJNO AS INFO, PROJNAME, 2 FROM PROJECT WHERE DEPTNO IN ('A00' , 'B01' , 'C01')

UNION ALL

SELECT WORKDEPT AS DEPTNO, EMPNO AS INFO, LASTNAME, 3 FROM EMPLOYEE WHERE WORKDEPT IN ('A00' , 'B01' , 'C01') ORDER BY DEPTNO, 4

Problem 4

SELECT 'PROJECT', PROJNO, RESPEMP, PRSTDATE, PRENDATE FROM PROJECT WHERE PROJNO LIKE 'IF%'

UNION ALL

SELECT ' ', PROJNO, EMPNO, EMSTDATE, EMENDATE FROM EMP_ACT WHERE PROJNO LIKE 'IF%' ORDER BY 2, 1 DESC, 3, 4

END OF SOLUTIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

5-8 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 83: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise 6. Using Subqueries

What This Exercise Is About

This exercise provides an opportunity to work with subqueries.

What You Should Be Able to Do

At the end of the lab, you should be able to:

• Code basic subqueries • Code more complex subqueries using the keyword IN

Introduction

See the data model at the start of this exercise guide to get the column names and descriptions for each table.

Required Materials

• Student handout • SQL Reference

Instructor Exercise Overview

Point out that many time an SQL statement can be written as a join or a subquery. The objective of this lab is to solve the problems using subqueries.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 6. Using Subqueries 6-1

Page 84: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List

Problem 1

List those employees that have a salary which is greater than or equal to the average salary of all employees plus $5,000.

Display department number, employee number, last name, and salary. Sort the list by the department number and employee number.

Problem 2

List employee number and last name of all employees not assigned to any projects. This means that table EMP_ACT does not contain a row with their employee number.

Problem 3

List project number and duration (in days) of the project with the shortest duration.

Name the derived column DAYS.

Problem 4

List department number, department name, last name, and first name of all those employees in departments that have only male employees.

Problem 5

We want to do a salary analysis for people that have the same job and education level as the employee Stern. Show the last name, job, edlevel, the number of years they've worked as of January 1, 2000, and their salary.

Name the derived column YEARS.

Sort the listing by highest salary first.

END OF LAB

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

6-2 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 85: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem List with Expected Results

Problem 1

List those employees that have a salary which is greater than or equal to the average salary of all employees plus $5,000.

Display department number, employee number, last name, and salary. Sort the list by the department number and employee number.

Result

WORKDEPT EMPNO LASTNAME SALARY ---------+---------+---------+------ A00 000010 HAAS 52750.00 A00 000110 LUCCHESI 46500.00 B01 000020 THOMPSON 41250.00 C01 000030 KWAN 38250.00 D21 000070 PULASKI 36170.00 E01 000050 GEYER 40175.00

Problem 2

List employee number and last name of all employees not assigned to any projects. This means that table EMP_ACT does not contain a row with their employee number.

Result

EMPNO LASTNAME ---------+------- 000060 STERN 000120 O'CONNELL

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 6. Using Subqueries 6-3

Page 86: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 3

List project number and duration (in days) of the project with the shortest duration.

Name the derived column DAYS.

Result

PROJNO DAYS ---------+--------- PL2100 257

Problem 4

List department number, department name, last name, and first name of all those employees in departments that have only male employees.

Result

DEPTNO DEPTNAME LASTNAME FIRSTNME ---------+---------+---------+---------+---------+----- B01 PLANNING THOMPSON MICHAEL E01 SUPPORT SERVICES GEYER JOHN E21 SOFTWARE SUPPORT SPENSER THEODORE E21 SOFTWARE SUPPORT MEHTA RAMLAL E21 SOFTWARE SUPPORT LEE WING E21 SOFTWARE SUPPORT GOUNOT JASON

Problem 5

We want to do a salary analysis for people that have the same job and education level as the employee Stern. Show the last name, job, edlevel, the number of years they've worked as of January 1, 2000, and their salary.

Name the derived column YEARS.

Sort the listing by highest salary first.

Result

LASTNAME JOB EDLEVEL YEARS SALARY --------------- -------- ------- ----------- ------------ GEYER MANAGER 16 50 40175.00 PULASKI MANAGER 16 19 36170.00 STERN MANAGER 16 26 32250.00 HENDERSON MANAGER 16 29 29750.00

END OF Problem List With Expected Results

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

6-4 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 87: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Solutions

Problem 1

SELECT WORKDEPT, EMPNO, LASTNAME, SALARY FROM EMPLOYEE WHERE SALARY >=(SELECT AVG(SALARY) + 5000 FROM EMPLOYEE) ORDER BY WORKDEPT, EMPNO

Problem 2

SELECT EMPNO, LASTNAME FROM EMPLOYEE WHERE EMPNO NOT IN (SELECT EMPNO FROM EMP_ACT)

Problem 3

SELECT PROJNO, DAYS(PRENDATE)-DAYS(PRSTDATE) AS DAYS FROM PROJECT WHERE DAYS(PRENDATE)-DAYS(PRSTDATE) = (SELECT MIN(DAYS(PRENDATE)-DAYS(PRSTDATE)) FROM PROJECT)

Problem 4

SELECT DEPTNO, DEPTNAME, LASTNAME, FIRSTNME FROM DEPARTMENT, EMPLOYEE WHERE DEPTNO = WORKDEPT AND DEPTNO NOT IN(SELECT WORKDEPT FROM EMPLOYEE WHERE SEX = 'F')

Problem 5

SELECT LASTNAME, JOB, EDLEVEL, YEAR('2000-01-01' - HIREDATE) AS YEARS, SALARY FROM EMPLOYEE WHERE (JOB, EDLEVEL) IN (SELECT JOB, EDLEVEL FROM EMPLOYEE WHERE LASTNAME = 'STERN') ORDER BY SALARY DESC

END OF SOLUTIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 6. Using Subqueries 6-5

Page 88: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

6-6 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 89: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Exercise 7. Maintaining Data

What This Exercise Is About

This exercise provides an opportunity to code SQL statements in order to manipulate data.

What You Should Be Able to Do

At the end of the lab, you should be able to:

• Code UPDATE and DELETE statements with (or without) conditions.

• Code INSERT statements using a VALUE or a SELECT clause.

Introduction

See the data model at the start of this exercise guide to get the column names and descriptions for each table.

Required Materials

• Student handout • SQL Reference

Instructor Exercise Overview

Since these lab problems build upon each other they should be done in sequence.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 7. Maintaining Data 7-1

Page 90: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List

Feel free to run a SELECT * FROM TESTEMP between problems to verify the success of your previous queries.

Problem 1

Create table TESTEMP with the following columns:

EMPNO

• LASTNAME • WORKDEPT • HIREDATE • SALARY • BONUS

The data types and null characteristics for these columns should be the same as the corresponding columns in the EMPLOYEE table described at the beginning of the lab exercises. For the z/OS environment, use the following IN clause at the end of your statement: IN dbname.tsname, where dbname and tsname are the names you noted under General information for z/OS users near the beginning of the handout. On the US ESSMVS1 system, it is probably: IN DBCF12xx.TSxx (where xx is your assigned lab number). (where xx is your assigned lab number). Check with your instructor if you are not sure.

Problem 2

Mr Smith, Ms Baker, and Ms Thomas joined the company. Their data is as follows:

• Employee numbers: 000111, 000222, 000333 • Last name: SMITH, BAKER, THOMAS • Department number: C01, A00, D11 • Date hired: June 6, 2000 • Salary: $25,000, $28,000, $33,000 • Bonus: $0, NULL, $0

Add the new employees to the TESTEMP table.

Problem 3

Insert data into the TESTEMP table by copying the appropriate columns in the EMPLOYEE table for those employees that have an employee number less than or equal to 50.

Problem 4

Mr. Smith receives a bonus of $500. Make the appropriate data change.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

7-2 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 91: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 5

All employees in department C01 have done a good job. Therefore, they receive a salary increase of $1,000.

Problem 6

After a short time, Mr. Smith leaves the company. Make the appropriate changes.

Problem 7

Insert data into the TESTEMP table by copying the columns in the EMPLOYEE table where the employees have an employee number greater than 50.

Problem 8

Make the appropriate changes for the following situation:

• Theodore Spenser is assigned to department E01.

Problem 9

Mrs. Brown joined the company.

For Mrs. Brown, enter the following data:

• Employee number: 360 • Last name: BROWN • Department number: D01 • Date hired: Date when data is entered • Salary: $45,000 • Bonus: unknown

Problem 10

Delete all rows from the TESTEMP table and examine the contents. Then drop the TESTEMP table and try to examine the contents.

END OF LAB

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 7. Maintaining Data 7-3

Page 92: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem List with Expected Results

Problem 1

Create table TESTEMP with the following columns:

• EMPNO • LASTNAME • WORKDEPT • HIREDATE • SALARY • BONUS

The data types and null characteristics for these columns should be the same as the corresponding columns in the EMPLOYEE table described at the beginning of the lab exercises. For the z/OS environment, use the following IN clause at the end of your statement: IN dbname.tsname, where dbname and tsname are the names you noted under General information for z/OS users near the beginning of the handout. On the US ESSMVS1 system, it is probably: IN DBCF12xx.TSxx (where xx is your assigned lab number). (where xx is your assigned lab number). Check with your instructor if you are not sure.

Result

If running from SPUFI:

---------+---------+---------+---------+---------+-------- DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+-------- DSNE617I COMMIT PERFORMED, SQLCODE IS 0 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0

If running from QMF:

OK, running your query changed the database. COMMAND ===>

Problem 2

Mr. Smith, Ms. Baker, and Ms. Thomas joined the company. Their data is as follows:

• Employee numbers: 000111, 000222, 000333 • Last name: SMITH, BAKER, THOMAS • Department number: C01, A00, D11 • Date hired: June 6, 2000 • Salary: $25,000, $28,000, $33,000 • Bonus: $0, NULL, $0

Add the new employees to the TESTEMP table.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

7-4 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 93: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Result

Confirmation that your rows were added to the table.

In SPUFI, the following message should appear after each INSERT statement:

---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+DSNE615I NUMBER OF ROWS AFFECTED IS 1DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0---------+---------+---------+---------+---------+---------+

In QMF, the following message should be received for each row inserted.

OK, number of rows modified in the database: 1.COMMAND ===>

Problem 3

Insert data into the TESTEMP table by copying the appropriate columns in the EMPLOYEE table for those employees that have an employee number less than or equal to 50.

Result

In SPUFI:

---------+---------+---------+---------+---------+-------- DSNE615I NUMBER OF ROWS AFFECTED IS 4 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+-------- DSNE617I COMMIT PERFORMED, SQLCODE IS 0 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+--------

In QMF:

OK, number of rows modified in the database: 4. COMMAND ===>

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 7. Maintaining Data 7-5

Page 94: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 4

Mr. Smith receives a bonus of $500. Make the appropriate data change.

Result

In SPUFI:

---------+---------+---------+---------+---------+------- DSNE615I NUMBER OF ROWS AFFECTED IS 1 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+------- DSNE617I COMMIT PERFORMED, SQLCODE IS 0 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+-------

In QMF:

OK, number of rows modified in the database: 1 COMMAND ===>

Problem 5

All employees in department C01 have done a good job. Therefore, they receive a salary increase of $1,000.

Result

In SPUFI:

---------+---------+---------+---------+---------+---------+- DSNE615I NUMBER OF ROWS AFFECTED IS 2 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+---------+-

In QMF:

OK, number of rows modified in the database: 2. COMMAND ===>

Problem 6

After a short time, Mr. Smith leaves the company. Make the appropriate changes.

Result

In SPUFI:

---------+---------+---------+---------+---------+------- DSNE615I NUMBER OF ROWS AFFECTED IS 1 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+-------

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

7-6 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 95: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

In QMF:

OK, number of rows modified in the database: 1. COMMAND ===>

Problem 7

Insert data into the TESTEMP table by copying the columns in the EMPLOYEE table where the employees have an employee number greater than 50.

Result

In SPUFI:

---------+---------+---------+---------+---------+-------- DSNE615I NUMBER OF ROWS AFFECTED IS 28 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+--------

In QMF:

OK, number of rows modified in the database: 28. COMMAND ===>

Problem 8

Make the appropriate changes for the following situation:

• Theodore Spenser is assigned to department E01.

Result

In SPUFI:

---------+---------+---------+---------+---------+-------- DSNE615I NUMBER OF ROWS AFFECTED IS 1 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+--------

In QMF:

OK, number of rows modified in the database: 1. COMMAND ===>

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 7. Maintaining Data 7-7

Page 96: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 9

Mrs. Brown joined the company.

For Mrs. Brown, enter the following data:

• Employee number: 360 • Last name: BROWN • Department number: D01 • Date hired: Date when data is entered • Salary: $45,000 • Bonus: unknown

Result

In SPUFI:

---------+---------+---------+---------+---------+-------- DSNE615I NUMBER OF ROWS AFFECTED IS 1 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+--------

In QMF:

OK, number of rows modified in the database: 1. COMMAND ===>

Problem 10

Delete all rows from the TESTEMP table and examine the contents. Then drop the TESTEMP table and try to examine the contents.

Result

In SPUFI, after deleting the rows:

DSNE615I NUMBER OF ROWS AFFECTED IS 35 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+---------+---------+-- SELECT * FROM TESTEMP; ---------+---------+---------+---------+---------+---------+---------+-- EMPNO LASTNAME WORKDEPT HIREDATE SALARY BONUS ---------+---------+---------+---------+---------+---------+---------+-- DSNE610I NUMBER OF ROWS DISPLAYED IS 0 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100

After dropping the table:

---------+---------+---------+---------+---------+---------+---------+-- DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+---------+---------+-- SELECT * FROM TESTEMP; ---------+---------+---------+---------+---------+---------+---------+-- DSNT408I SQLCODE = -204, ERROR: USERID.TESTEMP IS AN UNDEFINED NAME DSNT418I SQLSTATE = 42704 SQLSTATE RETURN CODE

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

7-8 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 97: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

In QMF, after deleting the rows:

OK, number of rows modified in the database: 35. COMMAND ===> SELECT * FROM TESTEMP; EMPNO LASTNAME WORKDEPT HIREDATE SALARY BONUS ------ --------------- -------- ---------- ------------ ------------

After dropping the table:

OK, running your query changed the database. COMMAND ===> SELECT * FROM TESTEMP; QUERY MESSAGES: USERID.TESTEMP could not be found.

End of Problem List with Expected Results

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 7. Maintaining Data 7-9

Page 98: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Solutions

Problem 1

CREATE TABLE TESTEMP (EMPNO CHAR(6) NOT NULL, LASTNAME VARCHAR(15) NOT NULL, WORKDEPT CHAR(3) , HIREDATE DATE , SALARY DECIMAL(9,2) , BONUS DECIMAL(9,2) ) IN DBCF12xx.TSxx -- This IN clause is for OS/390 classes -- classes taught in other environments may or may not need an IN -- clause. See your instructor for additional information.

Problem 2

INSERT INTO TESTEMPVALUES ('000111', 'SMITH', 'C01', '06/06/2000', 25000, 0);INSERT INTO TESTEMPVALUES ('000222', 'BAKER', 'A00', '06/06/2000', 28000, NULL);INSERT INTO TESTEMPVALUES ('000333', 'THOMAS', 'D11', '06/06/2000', 33000, 0);

(The semicolons assume that you are using a tool such as SPUFI, the CLP, or the Command Editor which allows you to submit several SQL statements at once, separating the statements with semicolons. In QMF, you would submit one INSERT at a time.)

DB2 UDB for Linux, UNIX, and Windows allows you to INSERT multiple rows in one INSERT SQL statement, so you could also use the following on those platforms:

INSERT INTO TESTEMP VALUES ('000111', 'SMITH', 'C01', '06/06/2000', 25000, 0), ('000222', 'BAKER', 'A00', '06/06/2000', 28000, NULL), ('000333', 'THOMAS', 'D11', '06/06/2000', 33000, 0)

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

7-10 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 99: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 3

INSERT INTO TESTEMP (EMPNO,LASTNAME,WORKDEPT,HIREDATE,SALARY,BONUS ) SELECT EMPNO, LASTNAME, WORKDEPT, HIREDATE, SALARY, BONUS FROM EMPLOYEE WHERE EMPNO <= '000050'

ALTERNATIVE

INSERT INTO TESTEMP SELECT EMPNO, LASTNAME, WORKDEPT, HIREDATE, SALARY, BONUS FROM EMPLOYEE WHERE EMPNO <= '000050'

Rows inserted: 4

Problem 4

UPDATE TESTEMP SET BONUS = 500 WHERE EMPNO = '000111' Rows updated: 1

Problem 5

UPDATE TESTEMP SET SALARY = SALARY + 1000 WHERE WORKDEPT = 'C01' Rows updated: 2

Problem 6

DELETE FROM TESTEMP WHERE EMPNO = '000111' Rows deleted: 1

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 7. Maintaining Data 7-11

Page 100: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Problem 7

INSERT INTO TESTEMP (EMPNO,LASTNAME,WORKDEPT,HIREDATE,SALARY,BONUS) SELECT EMPNO, LASTNAME, WORKDEPT, HIREDATE, SALARY, BONUS FROM EMPLOYEE WHERE EMPNO > '000050' ALTERNATIVE INSERT INTO TESTEMP SELECT EMPNO, LASTNAME, WORKDEPT, HIREDATE, SALARY, BONUS FROM EMPLOYEE WHERE EMPNO > '000050' Rows inserted: 28

Problem 8

UPDATE TESTEMP SET WORKDEPT = 'E01' WHERE EMPNO = '000100' Rows updated: 1

Problem 9

INSERT INTO TESTEMP VALUES ('000360', 'BROWN ', 'D01', CURRENT DATE, 45000, NULL )

-- For the above syntax to work a value must be provided for every -- column, in the sequence into which the values must go

or

INSERT INTO TESTEMP (EMPNO, LASTNAME, WORKDEPT, HIREDATE, SALARY ) VALUES ('000360', 'BROWN ', 'D01', CURRENT DATE, 45000 )

-- Column names and data values have a one to one correspondence, -- therefore, the first value with go into the first column named, -- the second value will go into the second column named, etc. -- Columns receiving their default values may be omitted from -- this syntax.

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

7-12 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 101: 24-InstructorExercise_cf124xinst

Instructor Exercises GuideV3.1.0.1

Uempty

Problem 10

DELETE FROM TESTEMP; SELECT * FROM TESTEMP; DROP TABLE TESTEMP; SELECT * FROM TESTEMP;

END OF SOLUTIONS

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

© Copyright IBM Corp. 1999, 2007 Exercise 7. Maintaining Data 7-13

Page 102: 24-InstructorExercise_cf124xinst

Instructor Exercises Guide

Course materials may not be reproduced in whole or in part without the prior written permission of IBM.

7-14 DB2 SQL Workshop © Copyright IBM Corp. 1999, 2007

Page 103: 24-InstructorExercise_cf124xinst

V3.1.0.1

backpg

Back page
Page 104: 24-InstructorExercise_cf124xinst

���®