Presentation is loading. Please wait.

Presentation is loading. Please wait.

RDz Workbench – Using the Data Source Explorer

Similar presentations


Presentation on theme: "RDz Workbench – Using the Data Source Explorer"— Presentation transcript:

1 RDz Workbench – Using the Data Source Explorer
Course Title - Instructor Notes - Arial Narrow 20pt This module will require approximately 30 minutes to complete: RDz Workbench – Using the Data Source Explorer Jon Sayles, Rational System z products - Module X - Module Title

2 Course Title - Instructor Notes - Arial Narrow 20pt
Course Overview Audience This course is designed for application developers who have learned or programmed in COBOL, and who need to do z/OS Traditional Development and Maintenance as well as build leading-edge applications using COBOL and Rational Developer for System z. Prerequisites This course assumes that the student has a basic understanding and knowledge of software computing technologies, and general data processing terms, concepts and vocabulary, as well as a working knowledge of COBOL and z/OS. Knowledge of SQL (Structured Query Language) is assumed for database access is assumed as well. Basic PC and mouse-driven development skills, terms and concepts are also assumed. Module X - Module Title

3 Course Title - Instructor Notes - Arial Narrow 20pt
Course Topics Course Name: Rational Developer for System z Foundation Training Course Description: Learn how to use Rational Developer for System z to do z/OS traditional development, maintenance, support and for Enterprise Modernization of z/OS applications Pre-requisites: Some experience developing COBOL applications using z/OS is expected. A working knowledge of SQL is also recommended. Course Length: ~5days – or if done in self-paced mode Topics (Agenda) Getting Started - installing and configuring RDz - and the course materials, and using Eclipse The RDz Workbench Code analysis tools Editing Compiling programs Debugging local COBOL programs The Data Perspective: Working with relational data sources Modifying test data Editing and testing SQL statements Working with remote system resources: Connecting to a mainframe Data management Accessing and editing files z/OS Application Development Creating MVS Subprojects Creating and customizing project properties Debugging z/OS Applications Debugging Batch Applications Setting Debug Tool for Online Applications Working with File Manager Creating test data Editing complex file-types Working with mainframe ABENDs using Fault Analyzer Creating Fault History views Analyzing and solving mainframe ABENDs Creating and modifying BMS Maps using the BMS Map Editor Module X - Module Title

4 Course Title - Instructor Notes - Arial Narrow 20pt
Topic objectives After completing this topic, you should be able to: Use the RDz Data Perspective to: Connect to local and remote databases Edit test data interactively Display results of SQL queries Perform DBA activities on tables in a local database Display the data model for your application/DB2 tables and views  Note: In this topic you will be connecting to a local copy of a DB2 (or UDB) database through the tools in the Data Perspective. The Data Perspective's procedures and tools are very simple. So simple in fact, that you may wish to connect to your own database while (!) you're working through these slides. If you wish to connect to the sample database shown in these slides, please contact IBM to obtain the: DDL (Data Definition Language statements, used to define the table schema) Extracted data for importing These tables and views are used in the COBOL/DB2 unit of the course. Final note – this section assumes you have at least a working-knowledge of SQL. If you do not, please see the next slide for learning-source links. Module X - Module Title

5 Course Title - Instructor Notes - Arial Narrow 20pt
Learning DB2 and SQL Many (in the thousands of) books exist that do an excellent job teaching SQL. Additionally, sites exist on the Internet (GOOGLE: “SQL tutorials” – or “Learn SQL”) for online (and typically free) education. IBM Also supplies excellent SQL and DB2 documentation: DB2 Documentation SQL Getting Started SQL Reference Manual Message (error code) Reference. Cached pdf version of full guide. DB2 Application Development Guide with example embedded SQL programs. Triggers in DB2 Constraints in DB2 And there are plenty of non-IBM sites to learn about SQL: Note: In order for you to get the above links to work, view the PowerPoint in Slide Show mode. Here is an example of COBOL database access: Notes – The examples and labs in this section use Derby and DB2 as the RDBMS. And in the text we often refer to “DB2” generically. When of course there are many excellent RDBMS products in use, such as: Informix, Oracle, SQLServer, Teradata, Sybase, MySQL,etc (although not all of these are supported COBOL platforms). For the most part, what you learn in this section is applicable to any IBM-supported RDBMS platform. With the exception being that certain SQL statements may or may not be supported by the different vendors – as they may be non-standard (not ANSI-standard) SQL verbs and operations. *** Notes Module X - Module Title

6 The RDz Workbench UNIT Topics:
The Data Perspective and Connecting to DB2 Understanding DB2 objects and dependencies Editing and managing DB2 table data Coding and testing SQL Workshops and Appendices

7 RDz Functional Taxonomy – a Partial List
z/OS Development, Maintenance and Production Application Support Enterprise Modernization Access Datasets/Source Files CICS Web Services SCM functional integration PDS Support Migrate/Recall Support Local and Remote file support Tooling support in single or across multiple LPARs Source and PDS Search QSAM Data File Search Browse Load Module Search Load Library Use of Regular Expressions Windows metaphor Edit/Browse/View “Favorites” – “Most recently used” Generate: WSDL WSBIND file XSD files Deployment manifest Stub modules Test and Deploy WSDL Use Cases: Bottom Up Top Down Meet in the middle Program Analysis Source Navigation Windows (Standard) Navigation ISPF PF-keys + extensible Hot-keys Outline View Hover Open Declaration / Arrow keys Open copybooks Program Logic tools Control Flow Analysis Data Flow Analysis Data Model Analysis Where used/Where Referenced Windows Screen Real Estate Size-able views Multi-window development Source Filters Collapse/Expand paragraphs/sections Source Development ISPF and RDz Source Editing PF-Keys Hexedit Prefix Area Commands Command Line Commands Colorized statement support Local History PC Source editing functionality Code refactoring DB2 Stored Procedure generation Comment/Un-comment multiple lines Access to 3270 Emulation within Eclipse All development options “preference-enabled” Editing Data Sources DB2 Table Editor IMS Segment Editor QSAM File Editor VSAM File Editing with File Manager Integration with File-Aid Plug-ins IMS Soap IMS Web 2.0 Languages COBOL, PL/I, Assembler, Java, C/C++ JCL/CLIST/REXX SQL code/test BMS/MFS WSDL, HTML, XML 4GLs supported with Eclipse Tooling Generate XML/WSDL COBOL/PLI converters Manifest files Use Cases: Bottom Up Top down (PL/I only) Meet in the middle Test and Debug Integration with PD Tools/Debug Tool Integration with Xpeditor and CA-Intertest Content Assist COBOL, PL/I, Assembler SQL: Embedded, Interactive CICS statements Syntax Check and Build Real-time validation Local and Remote Syntax Checking Integration with z/OS Build Process Submitting/Managing Jobs Dataset Management Code Quality CICS Service Flows Submit and Locate Job Integration with JES Job Organization options (Filters) Show JCL Cancel/Purge Code Review Source Format File Compare All of the above functionality Allocate/ Rename/Delete Create GDG Model Create VSAM Dataset Search Compress Copy Files Within an LPAR Across LPARs LPAR  PC 3270 "screen scraping" Aggregate transactions Automate processes Expose as web services SCM: IBM: Team Concert, SCLM, ClearCase CA: Endevor, Panvalet, Librarian, Serena: Changeman ISPW Functional Integration with z/OS REXX/CLIST/3rd Party Tools: Menu Manager HATS Eclipse Plug-in Integration RDz Product Integration 7

8 The Data Perspective – RDz's Data Tools
Course Title - Instructor Notes - Arial Narrow 20pt The Data Perspective – RDz's Data Tools The Data Perspective allows you to access your data sources, and to view and add test rows, edit your tables, create and test/execute SQL statements interactively. Access the Data Perspective from the Window menu Window > Open Perspective > Other… > Data The Data Perspective has a number views and tools you will work with: Data Source Explorer Shows Connections – which contain Schemas and tables Processing options Data Output Shows the results of running SQL queries Data Project Explorer For Data Analysts SQL Statement Wizard For building SQL statements interactively Stored Procedure Wizard For building COBOL, PL/I, Java and SQL Stored Procedures interactively Notes: Module X - Module Title

9 Why use the RDz Data Tools?
Course Title - Instructor Notes - Arial Narrow 20pt Why use the RDz Data Tools? We currently use SPUFI and QMF for doing z/OS DB2 work, why change? Two reasons: 1. Productivity: The RDz Data Tools have vastly superior means of: SQL statement testing Managing your DB2 table test data Full-screen table editing Simple data export/import Doing DBA tasks Understanding your relational data model Easy access from the RDz Workbench The tools are completely integrated into eclipse 2. Cost Savings - z/OS MIPS reduction: RDz is substantially less expensive than TSO/SPUFI or QMF for doing DB2/SQL development JDBC** Drivers Ziip/Zaap ODBC vs. JDBC RDz currently does not support ODBC. You can potentially download the jdbc drivers from these vendors and make the connections. Note: there may be such a thing as a ODBC-JDBC bridge out there that could be set up. This would be outside of anything our tools provide though and we know nothing about it or how (or if) it would work. It would be a google search for any info on this. See Slide Note on ODBC Module X - Module Title

10 What can you do with the RDz Data Tools?
Course Title - Instructor Notes - Arial Narrow 20pt What can you do with the RDz Data Tools? Three things: Investigate and analyze your DB2 Data Model: What are the DB2 "objects"? How do they relate (what are the dependencies) Modify and manage DB2 Test Data: Understand what's in your test bed Add/Change/Delete/Copy/Paste table values Filter table rows and columns ** Code, test, analyze SQL: Interactive Embedded Graphical Visual Explain ** Other aspects of the data tools that are "out of scope" for this session: DBA Utilities Creating/Deploying/Testing DB2 Stored Procedures Mass Data and Schema migration Working with IMS Databases – through the Data Tools Notes: ** Requires Data Studio Module X - Module Title

11 The Data Source Explorer
Course Title - Instructor Notes - Arial Narrow 20pt The Data Source Explorer All of your work in the Data Perspective is done through a database Connection. In this course our Data Source Explorer screen captures show four connections – your machine may have more or less, depending on the databases you have access to. In the Data Perspective, you can define a new Connection or reconnect to a database through an existing connection (like the one you’ve been using in debug, and used for the SQL Access Application import earlier in this course) When “connected” you can: Expand folders Use the Data Perspective Tools Views Wizards Notes: Module X - Module Title

12 Connecting to DB2 on z/OS
Course Title - Instructor Notes - Arial Narrow 20pt Connecting to DB2 on z/OS Connecting to DB2 on z/OS: From the Data Source Explorer – select New Connection Profile Select: DB2 for z/OS as the database manager Enter Properties: Location: TCP/IP Location name of the DB2 Server on z/OS (get from DBA) Host: IP Address of the z/OS mainframe Port: For DB2 on z/OS Do NOT check: Retrieve objects created by this user only User name/Password: Required To obtain the Location, Host and Port# - From TSO, go to SPUFI - Option 7 (DB2 Commands) Issue the command: -DISPLAY DDF Terms and concepts Location name This is the name specified when using the CATALOG DCS DATABASE command from a DB2 Connect machine, which refers to it as the target database name. It can have from 1 to 16 characters. This is not the same as the DB2 Subsystem ID (ssid) Because DB2 is a subsystem of MVS, it will have a subsystem name or subsystem ID (ssid) that MVS can use to identify it. The default ssid is DSN1. The command prefix identifies the particular DB2 subsystem that you connect to. You do not connect to a particular database. You are automatically able to access any database in DB2 to which you are authorized. See Slide Notes Click Test Connection, and if successful…Click Next > Module X - Module Title

13 Filtering Schemas and Tables
In this course the databases contain just a few tables. In your world, databases could easily contain: Tens of thousands of tables Hundreds of Schemas To simplify working with your DB2 objects you will filter schemas Two options: By individual Schema selection (checkboxes) With an SQL "LIKE" expression to filter the Schemas Note that you can re-filter Schemas, Stored Procedures and Tables at any time (you'll see how in a minute)

14 Filtering Schemas and Tables – DB2 on z/OS
Your DB2 instance on z/OS, databases could easily contain: Tens of thousands of tables Thousands of Schemas To simplify working on your projects - Filter the available DB2 objects as follows: Un-check: □ Disable Filter Enter: DDS0001 In:  Expression Name Click Finish to connect to DB2 and return to the Data Source Explorer

15 The RDz Workbench UNIT Topics:
The Data Perspective and Connecting to DB2 Understanding DB2 objects and dependencies Editing and managing DB2 table data Coding and testing SQL Workshops and Appendices

16 The Data Source Explorer – Connected
Course Title - Instructor Notes - Arial Narrow 20pt The Data Source Explorer – Connected Once you're connected, the Data Source Explorer presents "meta-data" about the database objects accessible through your connection as follows: - Databases within the connection – and within the database: Schemas (the high-level qualifier of the resource owner) Within each Schema relational object resources (DBMS-dependent) - including: Synonyms Dependencies Stored Procedures (if DB2 for z) – Federated Stored Procedures Tables and within tables – within each table: Column definitions Relational constraints (primary and foreign key rules) Indexes Triggers User-defined functions Views The Properties view can be helpful in expanding the information presented. Many additional context menu options exist off these entries Notes: Module X - Module Title

17 Exploring Meta Data Use your mouse to expand/collapse DB2 object meta-data categories Information is presented hierarchically – according to the structure in the DDL that was used to create the object All of the meta-data shown in the Explorer is pulled dynamically from the DB2 Catalog, making it 100% Accurate Current The Context Menu provides (much) additional functionality: Select a DB2 object Right-click Context options pop-up in the menu and sub-menus

18 Course Title - Instructor Notes - Arial Narrow 20pt
Overview Diagram – 1 of 3 So what can we do with the Data Source Explorer? Let’s start by having a look at our tables and table relationships (Parent/Child tables associated by defined Primary/Foreign key constraints) From the Data Source Explorer: Expand a folder for a database and navigate the schemas: Right-click a schema select: Add to Overview Diagram Select the tables, views, synonyms, etc. you wish to see  Notes: The Overview Diagram feature is available in RDz version and later This kind of diagram (see results on next slide) is often called an "Entity-Relationship Diagram" – because it draws out the relationships between your DB2 "entities" – tables/views/synonyms Notes: Module X - Module Title

19 (Data Model) Overview Diagram – 2 of 3
Course Title - Instructor Notes - Arial Narrow 20pt (Data Model) Overview Diagram – 2 of 3 The Diagram Tool shows all of the tables, views and synonyms selected through our connection as entities, and their relationships as defined by Primary/Foreign key SQL specifications. This allows us to understand things like how to join tables, and where data exists in relation to other table values. We can also use the Diagram Tool to navigate in the Data Source Explorer Right-click over Results Select: Navigate > Show in > Database Explorer Note the different icons for: Tables: Events, Entrants, Results Employee Views: Race_Report Local_Referrals Synonym: L_R Notes: If you select a large number of tables this diagram can take some time to materialize To read the diagram shown here: Each Entrant and Event can have many Result rows Race_Report is a relational View based on the Results table Local_Referrals is a relational View based on the Entrants table Views Synonym Tables  Notes: Table relationships Module X - Module Title

20 (Data Model) Overview Diagram – 3 of 3
Course Title - Instructor Notes - Arial Narrow 20pt (Data Model) Overview Diagram – 3 of 3 By default, the Overview Diagram shows only DB2 object names and their relationships. You might wish to show additional attributes. To do this: Select the object Right-click and select: Filters > Show/Hide Compartment > <your option> Notes: Module X - Module Title

21 Course Title - Instructor Notes - Arial Narrow 20pt
Generate Table DDL You may wish to access/modify/etc. one or more of your DB2 table's DDL. To do this you'll need the original DDL – which is obtained from: Generate Table DDL From the Data Source Explorer: Right-click over the table name Select: Generate DDL… Follow the wizard Check/Un-check selections Notes: Module X - Module Title

22 The RDz Workbench UNIT Topics:
The Data Perspective and connecting to DB2 Understanding your DB2 objects and dependencies Editing and managing DB2 table data Coding and testing SQL Workshops and Appendices

23 The Data Source Explorer – Data Context Menu
Course Title - Instructor Notes - Arial Narrow 20pt The Data Source Explorer – Data Context Menu You can work with relational objects: View Schemas, Tables, Table Columns, Referential Integrity Constraints, Indexes, Synonyms, Aliases Re-Create the SQL data definition language statements for the relational objects – from the System Catalog For individual tables: View the table contents View column contents (row cardinality) Edit table values Extract/Load the table using a comma-delimited file Perform a DCLGEN operation Viewing a table's column definitions Data Source Explorer - Context Menu, Data options Notes: Module X - Module Title

24 Sample Table Contents – Read/Only View of a Table's Row Values
Course Title - Instructor Notes - Arial Narrow 20pt Sample Table Contents – Read/Only View of a Table's Row Values When you are testing your SQL statements, it can be helpful to view the row/column values in your tables. Sample Contents provides this, in a SQL Results view. Note that this is essentially a Select * from <schema.table> The # of rows returned is configurable in Preferences Consider using SQL Scripts to write statements that filter the result tables Caution about the Return All Rows option – This option ignores the Preferences setting for maximum number of rows to return from DB2, and on a very large table could cause performance problems The data that populates the SQL Results view – is transferred via the JCC/JDBC driver that you (or your DBA) select Notes: Module X - Module Title

25 Data > Sample Contents – Display Row Values in a Single Column
Course Title - Instructor Notes - Arial Narrow 20pt Data > Sample Contents – Display Row Values in a Single Column It can be also useful to view the sample contents of individual columns – for various reasons: Applications: Test data coverage Testing and debugging values DBA: Candidate indexing SQL performance issues related to data volume Steps: Select a table Expand Columns, and select a column Right-click Select: Data Sample Contents Sample Contents of a table column 1. Discreet column values 2. The number of occurrences found in the table for each value (Cardinality) Notes: Module X - Module Title

26 Note that you can export:
Exporting Row Content Used to save row values off as: HTML XML Plain text XLS (spreadsheet) format Steps: From the Result window: Right-click Select which rows to export Select the Export Format Browse to the file name Be sure to enter the .file extension Click Finish Note that you can export: Sample Row content The results of interactive SQL statements Seriously reduces the effort to build xml and html reports off of DB2 data

27 Course Title - Instructor Notes - Arial Narrow 20pt
Table Editing – 1 of 2 Another very common requirement for SQL programming is to customize your test data. Rather than fussing with interactive SQL INSERT/UPDATE/DELETE statements using QMF or SPUFI, try this: From the Data Source Explorer Right-click over a table Select: Data > Edit Notes: Module X - Module Title

28 Table Row Value Editing – 2 of 2
Course Title - Instructor Notes - Arial Narrow 20pt Table Row Value Editing – 2 of 2 The table editor allows you to: Modify (update) values Add (insert) new rows Delete Rows Set individual field values to null Select image files (for columns of type: Blob/Clob) All values are saved (committed) or not (rolled-back) at once when you press Ctrl/S  Note that using the Data Perspective you could: 1. Run a SQL Statement, View the SQL results, 3. Modify table data values in order to test different WHERE clause conditions, 4. Re-run the SQL Statement, etc. Notes: Module X - Module Title

29 DCLGEN – 1 of 4 DCLGEN – Allows you to create copybooks from table schemas for: COBOL, PL/I, C, and Java Steps – from the Data Perspective: Highlight the table you want Right-click and select: DCLGEN Using the DCLGEN wizard Connect to the host System 1. Specify the name of your shop's DB2 subsystem 2. Customize the JCL JOB Card, Add //JOBLIB DD card – referencing your shop's DB2 load library) 3. Click: Next > You will need to connect: To your mainframe To your database

30 Course Title - Instructor Notes - Arial Narrow 20pt
DCLGEN – 2 of 4 Select: Language Browse to select your DCLGEN output PDS Rename the PDS member Click Next > COBOL Language options: IBMCOB is Enterprise COBOL COBOL is for OS/VS COBOL COB2 is for other COBOL dialects  Customize the DCLGEN-specific options  Note that at minimum, you will have to change the Member and Data structure name if your table name contains an underscore Click Finish See Slide Notes Module X - Module Title

31 DCLGEN – 3 of 4 The wizard will submit a job, which you can track in the: z/OS Projects Perspective JES facility

32 DCLGEN – 4 of 4  From Remote Systems explorer you can also open the PDS and look at your DCLGEN'd source 

33 Customizing the Data Perspective – Preferences
A number of options are available for managing, controlling and customizing the behavior of the features in the Data Perspective From: Window Preferences Data Management SQL Development Preferences for SQL Query Customization (Important) Result set options: Max row count controls table Edit Max display row count controls Sample Contents

34 The RDz Workbench UNIT Topics:
The Data Perspective and connecting to DB2 Understanding your DB2 objects Editing and managing DB2 table data Coding and testing SQL Workshops and Appendices

35 Build SQL Statements – SQL Script
Course Title - Instructor Notes - Arial Narrow 20pt Build SQL Statements – SQL Script Similar to SPUFI – you use a SQL Script file to edit and test your SQL. A SQL Script is a text file that contains interactive SQL statements – with or without host variables These statements can be tested in the Data Perspective before embedding them in COBOL data access functions. For complex SQL logic, this is recommended “best practice”. To open and work with a SQL Script: From the Data Source Explorer Right-click over the DB2 system icon shown and select: New SQL Script Notes: Module X - Module Title

36 Create and Run a SQL Script Statement
Course Title - Instructor Notes - Arial Narrow 20pt Create and Run a SQL Script Statement You can code your SQL statements using Content Assist – to get the table names and SQL keywords (Ctrl/Spacebar) After you're done coding, right-click (context Menu) over the statement Select Execute Current Text (or Execute All) View the SQL Results Notes: Note: For Content Assist to work, you must qualify the DB2 table, view, synonym name: Schema.Tablename Module X - Module Title

37 SQL Query - Editing and Running Multiple Statements (like SPUFI)
You can code and multiple SQL statements by ending each statement with a semi-colon (see screen capture): Expand the statement in SQL results. Each query will have its own results window Notes: Each query is treated as a separate unit of work. Successful updates are committed between statements

38 Course Title - Instructor Notes - Arial Narrow 20pt
New SQL Script – Run SQL When you are finished coding 1. Right-click over the script area 2. Select Run SQL 3. Verify your results Note that the Status will show details on your statement's execution Notes: Module X - Module Title

39 Copy/Paste an Embedded SQL Statement - 1 of 3
Course Title - Instructor Notes - Arial Narrow 20pt Copy/Paste an Embedded SQL Statement - 1 of 3 You can use a SQL Query to test your COBOL/SQL statements out prior to testing them at the COBOL procedural logic level (note this saves both time and CPU resources) Steps: From RDz, click back over to the z/OS Perspective (but do NOT close the Data Perspective) Open: cursravg.cbl Find the 100-DECLARE-CURSOR-RTN paragraph shown below Copy the SELECT…  GROUP BY DEPT clauses as shown  - You will test only the interactive SQL portion of your COBOL cursor declaration Notes: Select  Group By constitutes the Interactive SQL portion of this statement Select and copy this Module X - Module Title

40 Test an Embedded SQL Statement - 2 of 3
Course Title - Instructor Notes - Arial Narrow 20pt Test an Embedded SQL Statement - 2 of 3 From RDz, click back to the Data Perspective If you still have your other SQL Script page open, select and delete the existing statement, then Paste in the copied SQL cursor code Right-click and Run the SQL Statement and view results Notes: You can only run Interactive SQL Statements – that is, statements without Host Variables. You can usually replace host variables with apostrophe-contained literals: Example: select COBOL.CUSTOMER.CUSTOMER_ID, COBOL.CUSTOMER.FIRST_NAME, COBOL.CUSTOMER.LAST_NAME, COBOL.CUSTOMER.PASSWORD, COBOL.CUSTOMER.PHONE, COBOL.CUSTOMER. _ADDRESS, COBOL.CUSTOMER.STREET, COBOL.CUSTOMER.APARTMENT, COBOL.CUSTOMER.CITY, COBOL.CUSTOMER."STATE", COBOL.CUSTOMER.POSTALCODE, COBOL.CUSTOMER.DIRECTIONS from COBOL.CUSTOMER where state = :stateIn order by COBOL.CUSTOMER.CUSTOMER_ID asc Becomes…. where state = ‘NJ’  Note: As you did with the sample table contents, you can Right-click over the result rows, and Export the result data for data compare, reporting, etc.. This can be useful during DB2 application testing/debugging. Module X - Module Title

41 Test an Embedded SQL Statement – 3 of 3 (Host Variable Values)
Most of the SQL statements embedded in your COBOL and PL/I programs will have host-variables In order to test such statements, you can: "Stub the host variables out" – replacing the SQL statement operands with literals Use the Host Variable Values wizard (see disclaimer for COBOL) – Specifying the Host Variable values as shown on the right  Disclaimer for COBOL Host Variable Values - Host Variables with a dash in their name are not supported by the wizard. Example: :PERF-RATING Qualified Host Variables such as: :DCL.PERF are supported. PL/I Variables (separated by under-scores) are also supported

42 Review – "How do I" (Using RDz, be sure you know how to do the following…)
Access the data tools in the RDz Workbench (how do you open the Data Perspective)? Create a connection to a DB2 region? Filter out Schemas you don't want to see in the Data Source Explorer? View sample rows from a table, view or synonym? Edit a DB2 table? Save changes to my row/column edits? List indexes for a DB2 table Generate the table definition (DDL) for a DB2 table or view? View the different values in a DB2 table column, and see the number of rows each value has in the table? Understand the relationships among a set of DB2 tables – connected with Primary/Foreign key constraints? i.e. Create an "Entity-Relationship Diagram" List the primary or foreign key (constraints) for a DB2 table? Understand how an index on a table is designed (to see if it will help make my SQL query faster)? List the columns in a table or view? Change the default maximum number of rows displayed or edited in a table? Code a dynamic SQL statement? Invoke (use) Content Assist to help you code a SQL statement (what two keys??) Run a SQL statement? Code and test (run) multiple SQL statements in one batch (like SPUFI)? Perform (relative) SQL statement efficiency benchmarks? Export rows from SQL results to a: web page, XML file, Excel spreadsheet? "Explain" the plan DB2 will use to access the table? DCLGEN a table?

43 RDz Workbench – Using the Data Source Explorer Workshops
Course Title - Instructor Notes - Arial Narrow 20pt This module will require approximately 30 minutes to complete: RDz Workbench – Using the Data Source Explorer Workshops Module X - Module Title

44 Data Perspective Workshop – Using Your Company's DB2
Course Title - Instructor Notes - Arial Narrow 20pt Data Perspective Workshop – Using Your Company's DB2 If you are connecting to DB2 on your own LPAR, with the help of your DBA and/or Systems Programming staff do the following: Open the Data Perspective Connect to a z/OS DB2 database Filter the Schema to your table Owner name Use the Data Source Explorer: View some of the tables and their relationships through the Overview Diagram Show a table’s Sample Contents Code a few simple SQL statements (or copy/paste from a COBOL program) and run them in a SQL Query Create a simple new SQL statement using the statement builder Edit one of the DB2 tables you have update access to: Add a few new rows - Update some values - Delete one or two rows Save your changes – Ctrl/S The slides that follow provide good examples to exercise the techniques demonstrated in this section. Of course you will have to use your own tables, views, etc. Notes: Module X - Module Title

45  Workshop – Connecting to DB2 on zServerOS
For z/OS-DB2 you will need to provide a few different pieces of information, in order to connect: Select: DB2 for z/OS as the database manager Location: EOSDB205 Host: zserveros.demos.ibm.com Port: 5446 User name/Password: Your assigned UID/PWD Example: RTPOTnn <password>  Click Next >

46  Workshop – Filtering Schemas and Tables
Recall: In the DB2 world on z/OS databases could easily contain: Tens of thousands of tables Thousands of Schemas To simplify working on your projects filter the available DB2 objects Un-check: □ Disable Filter Enter: DDS0001 In: ◙ Expression name

47  Data Perspective Workshop – Data Source Explorer
Course Title - Instructor Notes - Arial Narrow 20pt  Data Perspective Workshop – Data Source Explorer When your connection create process finishes, you will be returned to the Data Perspective, where you now can: Expand: Schemas Synonyms Tables Table elements Views Explore and with the DB2 objects: Expand RESULTS Look at the various elements Expand Notes: Module X - Module Title

48  Workshop – Data (Entity/Relationship) Analysis
Course Title - Instructor Notes - Arial Narrow 20pt  Workshop – Data (Entity/Relationship) Analysis Next try the "Overview Diagram" Select one or more tables Right click and select: Add to Overview Diagram Click OK This opens an Entity/Relationship analysis view You can also work with a Table, View or Synonym's DDL: Try the following with the CUST table: Extract table data to a comma delimited file on your workstation Generate the DDL for your table Be sure to: Browse and select one of your chapter folders Check the option to  Open the DDL file for editing Notes: Module X - Module Title

49  Workshop – View, Analyze, Export Data
Course Title - Instructor Notes - Arial Narrow 20pt  Workshop – View, Analyze, Export Data To view your DB2 table data and export reports from it: Select the table or view you wish to edit. Right click and select: Data > Sample Contents Notes: You probably don't have permission to load any of the IBM tables used in this course. Sort your results Export your results Module X - Module Title

50 Course Title - Instructor Notes - Arial Narrow 20pt
 Workshop Edit Tables To edit your DB2 table data: Select the table or view you wish to edit Right click and select: Data > Edit Note that you can open (edit) multiple tables. And project them out in multiple window views – so that you can analyze data, or copy/paste values from one table to another Notes: You probably don't have permission to load any of the IBM tables used in this course. If you wish to edit subsets of large tables you can use the Optim Data Studio – which is a free RDz plug-in Module X - Module Title

51  Workshop – Testing Interactive SQL Statements
Course Title - Instructor Notes - Arial Narrow 20pt  Workshop – Testing Interactive SQL Statements Click New SQL Script Type in SQL statements Right-click over the Content Area and select: Run SQL In the Results, for multiple statements you can expand and select one at a time The Result1 tab shows statement results You can Export results Optional Copy and all of the commented SQL statements in the Slide Notes Try other Context Menu selections like Format SQL SELECT WORKDEPT FROM dds0001.employee group by WORKdept having avg(SALARY) > #74 INTERSECT TEST union ALL list DEPT from different SELECT DEPT FROM dds0001.empl group by dept having avg(PERF) > 1 ; -- tables with dds0001.emplyoyees avg perf > SELECT * FROM dds0001.empl E, dds0001.pay PA, dds0001.proj PR WHERE E.NBR = PA.NBR AND E.proj = PR.NBR; --#11.TABLE JOI N SELECT MIN(WORKDEPT), MAX(WORKDEPT), AVG(WORKDEPT) FROM dds0001.employee WHERE LASTNAME > 'G'; -- #21. EBCDIC PROBLEM SELECT DEPT FROM dds0001.empl GROUP BY DEPT HAVING AVG(PERF) > 2;-- #29.HAVING SELECT * FROM dds0001.empl E WHERE EXISTS (SELECT * FROM dds0001.pay P WHERE E.NBR = P.NBR); -- #56. EXISTS FUNCTION SELECT * FROM dds0001.empl E WHERE NOT EXISTS (SELECT * FROM dds0001.pay P WHERE E.NBR = P.NBR); -- #57. NOT EXISTS (OUTER JOIN) SELECT * FROM dds0001.empl WHERE DEPT = 'ACC' AND PERF > ALL (SELECT PERF FROM dds0001.empl WHERE DEPT = 'R&D'); -- #58. GREATER ALL SELECT AVG(COMM), SUM(COMM)/COUNT(*), AVG(COMM * 1.0), SUM(COMM* 1.0) / COUNT(*) FROM dds0001.employee; -- #65. NULL TEST - Throws warnings SELECT AVG(DECIMAL(COMM,4,2) ) FROM dds0001.employee; -- #81. AVG(DECIMAL) SELECT (VALUE(COMM,0)/0) FROM dds0001.employee;-- #87. EXTEND. VALUE TEST (EXPECT NULL) SELECT NBR,LNAME, PERF FROM dds0001.empl WHERE DEPT = 'ACC' UNION ALL SELECT NBR,LNAME, PERF FROM dds0001.empl WHERE DEPT IN ('EDUC'); -- #32.UNION ALL -- ************** MORE SQL Statements ***************** -- -- ************************************************************************* -- -- Different SELECT/FROM/WHERE clause combinations against dds0001.employee/dds0001.empl/PAY --Select * from dds0001.empl where Perf between 2 and 5; --Select * from dds0001.empl E, dds0001.Pay P Where E.nbr = p.nbr; --SELECT * FROM dds0001.empl WHERE lname LIKE 'S%'; --SELECT DEPT FROM dds0001.employee; --SELECT DISTINCT DEPT FROM dds0001.employee; --SELECT * FROM dds0001.emplOYEE WHERE NBR BETWEEN 'AAAAAA' AND 'BBBBBBB'; -- #4. EBC COMPARE --SELECT * FROM dds0001.emplOYEE WHERE NBR LIKE 'AAAAAA%' OR NBR LIKE 'BBBBBBB%'; -- #4. EBC COMPARE --SELECT * FROM dds0001.employee WHERE NBR > 'AAAAAA'; -- #3. EBCDIC COMPARE --SELECT DISTINCT NBR FROM dds0001.employee; -- #2. EBCDIC/ASCII ORDERING TO DISTINCT --SELECT * FROM dds0001.employee ORDER BY NBR; -- #1. EBCDIC/ASCII ORDERING --SELECT * FROM dds0001.employee WHERE NBR > 'AAAAAA'; --SELECT * FROM dds0001.employee WHERE NBR LIKE '%S'; -- #5. LIKE WITH FIXED CHAR --SELECT * FROM dds0001.employee WHERE NAME LIKE '%art';-- #5. LIKE WITH VARCHAR --SELECT * FROM dds0001.employee WHERE DEPT IN ('EDUC','CONS '); -- #7. IN CLAUSE --SELECT * FROM dds0001.employee WHERE DEPT NOT IN ('EDUC','CONS '); -- #8. NOT IN --SELECT * FROM dds0001.employee WHERE NBR = 'AAAAAAAA '; -- #9.STRING PAD TEST --SELECT * FROM dds0001.employee WHERE NAME = 'Jonathan Sayles '; -- #10. STRING PAD --Select * from dds0001.empl E, dds0001.Pay P; --SELECT * FROM dds0001.empl E, dds0001.pay PA, dds0001.proj PR WHERE E.NBR = PA.NBR AND E.proj = PR.NBR; --#11.TABLE JOI N --SELECT * FROM dds0001.employee E WHERE PERF = proj; -- #14. COMPARE COLUMNS --SELECT * FROM dds0001.employee WHERE proj IS NULL; -- #16. NULL TEST --SELECT * FROM dds0001.employee WHERE proj IS NOT NULL; -- #17. NOT NULL TEST -- ******************************* -- -- ***** SQL Column Functions **** -- --SELECT COUNT(*) FROM dds0001.employee; -- #18. COUNT FUNCTION --SELECT COUNT(*) FROM dds0001.employee WHERE NBR > 'AAAAAAAA'; -- #19. EBCDIC PROBLEM --SELECT MIN(NBR), MAX(NBR), AVG(PERF) FROM dds0001.employee; -- #20. MIN/MAX/AVG FUNCTIONS -- SELECT MIN(NBR), MAX(NBR), AVG(PERF) FROM dds0001.employee WHERE NBR > 'AAAAAAAA'; -- #21. EBCDIC PROBLEM -- CREATE VIEW dds0001.employee_STATS (MAX_PERF, MIN_PERF, AVG_PERF) -- #22. VIEW AS SELECT MAX(PERF), MIN(PERF), AVG(PERF) FROM dds0001.employee; -- W/FUNCS -- SELECT SUM(AVG_PERF), AVG(AVG_PERF), COUNT(DISTINCT AVG_PERF)FROM dds0001.employee_STATS; -- #23. FUNCTION ON FUNCTION --SELECT COUNT(DISTINCT PERF) -- FROM dds0001.employee; -- #24a. ONE COUNT DISTINCT (ALLOWED) --SELECT COUNT(DISTINCT PERF), COUNT(DISTINCT proj) FROM dds0001.employee; -- #24b. TWO COUNT DISTINCTS (NOT ALLOWED) --SELECT PERF * FROM dds0001.employee; --#25. POSSIBLE ARITHMETIC OVERFLOW IN COBOL -- SELECT SUM(PERF * 10000) FROM dds0001.employee; --#26. ARITHMETIC OVERFLOW IN COBOL -- SELECT DEPT, MIN(NBR), MAX(NBR), AVG(PERF) FROM dds0001.employee GROUP BY DEPT; -- #27.GROUP BY WITH STATS -- SELECT DEPT FROM dds0001.employee GROUP BY DEPT HAVING COUNT(*) > 1; -- #28.HAVING --SELECT DEPT FROM dds0001.employee GROUP BY DEPT HAVING AVG(PERF) > 2;-- #29.HAVING --SELECT DEPT FROM dds0001.employee GROUP BY DEPT HAVING DEPT = 'EDUC'; -- #30.HAVING -- ******************************** -- --- ***** SQL Scalar Function ****** -- --SELECT NAME || ' THIS IS A NAME' FROM dds0001.employee; -- #34. CONCATENATION --SELECT VALUE(PERF,0) FROM dds0001.employee; -- #35. VALUE FUNCTION (zero substituted for NULL) --SELECT SUBSTR(NAME,1,1) FROM dds0001.employee; -- #36. SUBSTR --SELECT CHAR(HIREDTE,EUR) FROM dds0001.employee; -- #37. CHAR - works in DB2 (not Derby) --SELECT DIGITS(PERF), DIGITS(RATE) FROM dds0001.employee E, dds0001.pay P WHERE E.NBR = P.NBR; -- #38. DIGITS SMALLINT AND DECIMAL -- works in DB2 (not Derby) --SELECT FLOAT(PERF) FROM dds0001.employee; -- #39. FLOATING POINT -- works in DB2 (not Derby) --SELECT HEX(HIREDTE) FROM dds0001.employee; -- #40. INTERNALLY FORMATTED DATE -- works in DB2 (not Derby) --SELECT HOUR(SHIFT) FROM dds0001.employee; -- #41. HOUR --SELECT YEAR(HIREDTE) FROM dds0001.employee; -- #42. YEAR --SELECT MONTH(HIREDTE) FROM dds0001.employee; -- #43. MONTH --SELECT DAY(HIREDTE) FROM dds0001.employee; -- #44. DAY --SELECT DAYS(HIREDTE) FROM dds0001.employee; -- #45. DAYS -- works in DB2 (not Derby) --SELECT HIREDTE YEARS FROM dds0001.employee; --#46. YEAR OVERFLOW -- works in DB2 (not Derby) --SELECT HIREDTE + 1 YEAR FROM dds0001.employee; -- #47. DATE ROLL-AROUND -- works in DB2 (not Derby) --SELECT HIREDTE + 1 MONTH FROM dds0001.employee; -- #48. DATE ROLL-AROUND-- works in DB2 (not Derby) --SELECT INTEGER(RATE) FROM dds0001.pay; -- #49. INTEGER FUNCTION --SELECT LENGTH(NAME) FROM dds0001.employee; -- #50. LENGTH FUNCTION --SELECT SECOND(Shift) FROM dds0001.employee; -- #52. SECOND --SELECT MINUTE(Shift) FROM dds0001.employee; -- #53. MINUTE -- ******************************* -- --- ********* Subselects ********* -- --SELECT * FROM dds0001.empl WHERE NBR IN (SELECT NBR FROM dds0001.pay ); -- #54.SUBSELECT --SELECT * FROM dds0001.empl WHERE NBR NOT IN (SELECT NBR FROM dds0001.pay);-- #55. O/JOIN --SELECT * FROM dds0001.empl E WHERE EXISTS -- (SELECT * FROM dds0001.pay P WHERE E.NBR = P.NBR); -- #56. EXISTS FUNCTION --SELECT * FROM dds0001.empl E WHERE NOT EXISTS -- (SELECT * FROM dds0001.pay P WHERE E.NBR = P.NBR); -- #57. NOT EXISTS (OUTER JOIN) --SELECT * FROM dds0001.empl WHERE DEPT = 'ACC' AND PERF > ALL (SELECT PERF FROM dds0001.empl WHERE DEPT = 'R&D'); -- #58. GREATER ALL --SELECT * FROM dds0001.empl WHERE PERF > ALL (SELECT PERF FROM dds0001.empl WHERE DEPT = 'RAD'); -- #59. GREATER ALL ANOMALY (no RAD DEPT) -- SELECT * FROM dds0001.empl WHERE PERF > (SELECT MAX(PERF) FROM dds0001.empl WHERE DEPT = 'RAD'); --#60. EQUIV. TO 59 - but no rows returned --SELECT * FROM dds0001.employee WHERE PERF > (SELECT PERF FROM dds0001.employee WHERE NBR = 'AAAAAAAA'); -- #61 SMALLEST PERF (SELECT PERF FROM dds0001.employee WHERE NBR = 'AAA AAA'); -- #62. NON-EXISTENT dds0001.emplOYEE -- SELECT * FROM dds0001.employee WHERE PERF > (SELECT PERF FROM dds0001.employee WHERE NBR = 'ZZZZZZZZ'); -- #63. EMP WITH MAX (SELECT PERF FROM dds0001.employee WHERE NBR = 'BBBBBBBB'); -- #64. EMP WITH NULL PERF --SELECT AVG(proj), SUM(proj)/COUNT(*), AVG(proj * 1.0), -- SUM(proj * 1.0) / COUNT(*) FROM dds0001.employee; -- #65. NULL TEST - Throws warnings --SELECT * FROM dds0001.employee WHERE PERF > SOME (SELECT PERF FROM dds0001.employee WHERE DEPT = 'EDUC'); -- #66. SOME SPECIFIER (SELECT PERF FROM dds0001.employee WHERE DEPT = 'R%D'); --#67.SOME NO R%D - anomaly (SELECT PERF + 1 FROM dds0001.employee WHERE DEPT = 'FIN'); --#75.SUBS. EXPR. --- ******** SQL Comparisons ******* -- --SELECT * FROM dds0001.employee WHERE NAME LIKE 'O+%XXX' ESCAPE '+';--#68 LIKE/ESCAPE - not finished --SELECT * FROM dds0001.employee WHERE PERF + 2 IS NULL; --#69 EXPRESSION IS NULL --SELECT * FROM dds0001.employee WHERE PERF != 2 ; --#70 COMPARISON TEST --SELECT * FROM dds0001.employee WHERE PERF >= 2 ; --#71 COMPARISON TEST --SELECT * FROM dds0001.employee WHERE PROJ + 1 IS NULL; #76 EXPR. NULL --SELECT 'TRUE' FROM dds0001.employee HAVING AVG(PERF) > 2; --#76 Is the average of all Perf > 8 --SELECT AVG(DECIMAL(PERF,4,2) ) FROM dds0001.employee; -- #81. AVG(DECIMAL) --SELECT * FROM dds0001.employee ORDER BY PERF; -- #82. CHECK NULL COLLATING SEQ. --seLECT DATE(' ') - 1 MONTH FROM dds0001.employee;-- #83. CHECK DATE MATH1 --seLECT 1 MONTH + DATE(' ') FROM dds0001.employee;-- #84. CHECK DATE MATH2 --seLECT ' ' + HIREDTE FROM dds0001.employee;-- #86. CHECK DATE MATH3 -- SELECT (VALUE(PERF,0)/0) FROM dds0001.employee;-- #87. EXTEND. VALUE TEST (EXPECT NULL) --SELECT * FROM dds0001.employee WHERE NAME LIKE '%W+%%' ESCAPE '+'; -- ************************************** -- --- *** UNION/ALL/INTERSECT/EXCEPT ******* -- -- SELECT NBR,NAME FROM dds0001.employee UNION -- SELECT NBR, 'Payroll' FROM dds0001.pay; -- #31. UNION WITH MIXED DATATYPES -- SELECT NBR,NAME, PERF FROM dds0001.employee WHERE DEPT = 'ACC' UNION ALL -- SELECT NBR,NAME, PERF FROM dds0001.employee WHERE DEPT IN ('EDUC'); -- #32.UNION ALL -- SELECT PERF FROM dds0001.employee -- SELECT RATE FROM dds0001.pay; -- #33. UNION WITH MIXED NUMERIC DATATYPES (perf is int, rate is dec) -- SELECT DEPT FROM dds0001.employee group by dept having avg(PERF) > #74 INTERSECT TEST -- except list DEPT from different -- SeLECT DEPT FROM dds0001.empl group by dept having avg(PERF) > 1 ; -- tables with dds0001.emplyoyees do NOT avg perf > 1 -- Intersect list DEPT from different -- SeLECT DEPT FROM dds0001.empl group by dept having avg(PERF) > 1 ; -- tables with dds0001.emplyoyees avg perf > 1 Statement Run Console Data Results Module X - Module Title

52  Workshop – Testing Embedded SQL Statements – 1 of 2
Course Title - Instructor Notes - Arial Narrow 20pt  Workshop – Testing Embedded SQL Statements – 1 of 2 From the Remote Systems view: Open <HLQ>.TEST.COBOL(CURSRAVG) Right-click and from the Context menu select: Filter view > Embedded SQL/CICS/DLI Select and Copy the Interactive portion of the SQL SELECT statement in this paragraph – minus all of the embedded COBOL syntax (shown below in the screen capture) IDENTIFICATION DIVISION. PROGRAM-ID. CURSRAVG. *REMARKS. THIS PROGRAM JOINS TABLES, GROUPS DATA BY DEPT, * AND DISPLAYS THE AVERAGE, MAXIMUM AND MINIMUM * HOURS, AND PERFORMANCE EVALUATION BY DEPT. * ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-370. OBJECT-COMPUTER. IBM-370. DATA DIVISION. WORKING-STORAGE SECTION. * CODE THE NECESSARY DB2 INCLUDE STATEMENTS HERE 01 WS-KTRS-SWITCHES. 05 ROW-KTR PIC S9(03) COMP-3 VALUE +0. * MODIFY THE TABLE-ROW PICTURE CLAUSES FOR THE HOST * PROGRAM VARIABLES - LOOK AT THE TABLE/COLUMN DEFINITIONS * IN YOUR MANUAL (APPENDIX A FROM THE SQL PORTION) * AND THE SQL TO COBOL DATATYPES IN CHAPTER 3 * YOU WILL NEED TWO NULL INDICATORS - BASED ON POTENTIAL NULL * VALUES IN THE EMPL TABLE; ONE FOR DEPT, AND ONE FOR PERF. * QUESTION WHY DON'T YOU NEED A DIFFERENT NULL VALUE * FOR MIN, MAX AND AVG(PERF) ??? EXEC SQL INCLUDE SQLCA END-EXEC. 01 TABLE-ROW. 05 DEPT-TBL PIC X(3). 05 PERF-TBL-AVG PIC S9(05)V99 COMP-3. 05 PERF-TBL-MIN PIC S9(04) COMP. 05 PERF-TBL-MAX PIC S9(04) COMP. 05 HOURS-TBL-AVG PIC S9(05)V99 COMP-3. 05 HOURS-TBL-MAX PIC S9(05)V99 COMP-3. 05 HOURS-TBL-MIN PIC S9(05)V99 COMP-3. 01 OUTPUT-ROW. 05 FILLER PIC X(01) VALUE SPACES. 05 DEPT-RPT PIC X(03). 05 FILLER PIC X(03) VALUE SPACES. 05 PERF-RPT-AVG PIC Z(03).99. 05 PERF-RPT-MIN PIC Z(03).99. 05 PERF-RPT-MAX PIC Z(03).99. 05 HOURS-RPT-AVG PIC Z(03).99. 05 HOURS-RPT-MAX PIC Z(03).99. 05 HOURS-RPT-MIN PIC Z(03).99. 01 NULL-GROUP. 05 DEPT-NULL PIC S9(04) COMP. 05 PERF-NULL PIC S9(04) COMP. 01 ROW-MSG. 05 FILLER PIC X(24) VALUE '* * * ROWS READ -->'. 05 ROW-STAT PIC Z99. * ERROR MSG AREA FOR CALLS TO DSNTIAR - WHICH DECODES YOUR * SQL RETURN CODES (SQLCODE) FOR YOU. 01 ERROR-MSG. 05 ERROR-LEN PIC S9(04) COMP VALUE +960. 05 ERROR-TEXT PIC X(120) OCCURS 8 TIMES INDEXED BY ERR-IDX. 01 ERROR-TEXT-LEN PIC S9(09) COMP VALUE +120. PROCEDURE DIVISION. 000-SETUP-ERROR-TRAP-RTN. * THIS PORTION OF THE PROGRAM ACTIVATES THE SQL ERROR TRAPPING * FACILITIES. AT PRE-COMPILE TIME, THE DB2 PRE-COMPILER * GENERATES COBOL INSTRUCTIONS TO INTERROGATE THE SQLCODE * (RETURN CODE) FROM EACH CALL. IF A SQLERROR CONDITION IS * DETECTED (NEGATIVE RETURN CODE), EXECUTION WILL BRANCH TO THE * 999-ERROR-TRAP-RTN TO DISPLAY AN APPROPRIATE ERROR MSG. * SET UP YOUR ERROR HANDLING ROUTINES 000-MAINLINE-RTN. * THE MAINLINE CONTAINS THE DRIVER CODE TO PERFORM OUR DATA * BASE ACCESS AND DISPLAY ROUTINES. PERFORM 100-DECLARE-CURSOR-RTN THRU 100-EXIT. PERFORM 150-OPEN-CURSOR-RTN THRU 150-EXIT. PERFORM 200-FETCH-RTN THRU 200-EXIT UNTIL SQLCODE = +100. PERFORM 300-CLOSE-CURSOR-RTN THRU 300-EXIT. PERFORM 350-TERMINATE-RTN THRU 350-EXIT. MOVE ZERO TO RETURN-CODE. GOBACK. 000-EXIT. EXIT. 100-DECLARE-CURSOR-RTN. * THIS STATEMENT CREATES AN "ACTIVE SET", A GROUP OF ROWS * THAT WOULD BE THE OUTPUT FROM THE EXECUTION OF THE STATEMENT * IF YOU EXECUTED IT INTERACTIVELY. * = = = > CODE THE SQL STATEMENT TO JOIN THE EMPL AND PAY TABLES * = = = > GROUP THEM BE EMPL.DEPT AND DISPLAY THE DEPT AND: * = = = > AVERAGE, MINIMUM AND MAXIMUM - HOURS AND PERF BY DEPT EXEC SQL DECLARE C1 CURSOR FOR *==> COPY CURSORD1.SQL IN HERE...IF YOU GO THIS IN THE ISQL EXERCISE *==> COPY CURSORX1.CPY IN HERE...IF YOU MISSED THIS IN THE ISQL * EXERCISE END-EXEC. *--- THE CODE LISTED BELOW IS THE EXPECTED RESULTS FROM CURSORD1 OR * CURSORX1. * SELECT DEPT, MIN(PERF), MAX(PERF), AVG(PERF), * MIN(HOURS), MAX(HOURS), AVG(HOURS) * FROM DDS0001.EMPL E, DDS0001.PAY P * WHERE E.NBR = P.NBR * GROUP BY DEPT 100-EXIT. 150-OPEN-CURSOR-RTN. * THIS STATEMENT OPENS THE "ACTIVE SET" IN PREPARATION OF * ROW FETCH PROCESSING. EXEC SQL OPEN C1 150-EXIT. 200-FETCH-RTN. * THIS PARAGRAPH SETS UP THE SQL PARAMETERS, PERFORMS THE * PARAGRAPH TO FETCH THE ROW, AND DISPLAYS THE RESULTS. * ----> HINT <--- USE ISPF EXCLUDE (XX) OR BLOCK COPY * FROM YOUR CURSOR DECLARE STATEMENT TO VERIFY PROPER * SELECTED TABLE/COLUMN TO FETCHED HOST-VARIABLE MATCHING PERFORM 250-FETCH-A-ROW THRU 250-EXIT. IF SQLCODE = ZERO THEN MOVE DEPT-TBL TO DEPT-RPT MOVE PERF-TBL-AVG TO PERF-RPT-AVG MOVE PERF-TBL-MIN TO PERF-RPT-MIN MOVE PERF-TBL-MAX TO PERF-RPT-MAX MOVE HOURS-TBL-AVG TO HOURS-RPT-AVG MOVE HOURS-TBL-MAX TO HOURS-RPT-MAX MOVE HOURS-TBL-MIN TO HOURS-RPT-MIN DISPLAY OUTPUT-ROW ELSE DISPLAY '*** END - OF - DATA ***'. 200-EXIT. 250-FETCH-A-ROW. * THIS PARAGRAPH FETCHES A ROW FROM THE EMPL AND PAY TABLES * AND MOVES SPECIFIC DATA FIELDS INTO THE AVG, MIN AND MAX FIELDS EXEC SQL FETCH C1 INTO :DEPT-TBL:DEPT-NULL, :PERF-TBL-MIN:PERF-NULL, :PERF-TBL-MAX:PERF-NULL, :PERF-TBL-AVG:PERF-NULL, :HOURS-TBL-MIN, :HOURS-TBL-MAX, :HOURS-TBL-AVG, * COMPLETE THE LOGIC BELOW TO HANDLE THE NULL CONDITION FOR YOUR * REPORT - WHY IS THIS NECESSARY? IF DEPT-NULL < 0 MOVE 'N/A' TO DEPT-TBL. IF PERF-NULL < 0 MOVE 0 TO PERF-TBL-MIN MOVE 0 TO PERF-TBL-MAX MOVE 0 TO PERF-TBL-AVG. 250-EXIT. 300-CLOSE-CURSOR-RTN. * THIS STATEMENT CLOSES THE "ACTIVE SET" EXEC SQL CLOSE C1 END-EXEC. 300-EXIT. 350-TERMINATE-RTN. MOVE ROW-KTR TO ROW-STAT. DISPLAY ROW-MSG. 350-EXIT. 999-ERROR-TRAP-RTN. ************************************************************ * ERROR TRAPPING ROUTINE FOR NEGATIVE SQLCODES * DISPLAY '**** WE HAVE A SERIOUS PROBLEM HERE *****'. DISPLAY '999-ERROR-TRAP-RTN '. MULTIPLY SQLCODE BY -1 GIVING SQLCODE. DISPLAY 'SQLCODE ==> ' SQLCODE. DISPLAY SQLCA. DISPLAY SQLERRM. EXEC SQL WHENEVER SQLERROR CONTINUE END-EXEC. EXEC SQL ROLLBACK WORK END-EXEC. 999-EXIT. Module X - Module Title

53  Workshop – Testing Embedded SQL Statements – 2 of 2
Swap back to the script editor and paste the copied embedded SQL inside the SQL script editing area Right-click and select Run SQL Try adding an additional where clause predicate What happens when you run the query?

54 Review – "How do I" (Using RDz, be sure you know how to do the following…)
Access the data tools in the RDz Workbench (how do you open the Data Perspective)? Create a connection to a DB2 region? Filter out Schemas you don't want to see in the Data Source Explorer? View sample rows from a table, view or synonym? Edit a DB2 table? Save changes to my row/column edits? List indexes for a DB2 table Generate the table definition (DDL) for a DB2 table or view? View the different values in a DB2 table column, and see the number of rows each value has in the table? Understand the relationships among a set of DB2 tables – connected with Primary/Foreign key constraints? i.e. Create an "Entity-Relationship Diagram" List the primary or foreign key (constraints) for a DB2 table? Understand how an index on a table is designed (to see if it will help make my SQL query faster)? List the columns in a table or view? Change the default maximum number of rows displayed or edited in a table? Code a dynamic SQL statement? Invoke (use) Content Assist to help you code a SQL statement (what two keys??) Run a SQL statement? Code and test (run) multiple SQL statements in one batch (like SPUFI)? Perform (relative) SQL statement efficiency benchmarks? Export rows from SQL results to a: web page, XML file, Excel spreadsheet? "Explain" the plan DB2 will use to access the table? DCLGEN a table?

55 Topic Summary Now that you have completed this topic, you should be able to: Launch the Data Perspective Connect to a Data Source Use the Data Source Explorer to: View tables and relationships View sample table rows and values Edit (create, update, delete) row values Test interactive SQL Code/Build SQL statements Generate Table DDL Summary

56 Optional Topics and Workshops For This Section
If you have time, and are comfortable with the material covered, or if you are part of an RDz "Tools Team" and need deeper content – or if you just have "mad SQL skills" please read through the next series of slides – and try out the techniques shown using RDz and sample programs in your RDzClass project. Optional Topics and Workshops

57 Optional Topic - Exploring Meta Data
By selecting meta-data elements and then selecting the Properties view you can see Examples: The Properties/Details of an index design The Properties/Details of a Foreign Key relationship between two tables

58 Optional Topic – Working with/Understanding DB2 Views
By selecting the DB2 View and then selecting the Properties view you get: Dependencies: You can see the SQL that was used to create the View (DDL) And most of the Data features work with Views 

59 Filtering/Re-Filtering The Data Source Explorer
You can filter Schemas when you create your connection to DB2. But you can change or re-filter your DB2 objects dynamically (at any time) To re-filter your data objects: Select the connection Right-click and select Properties From Properties you can re-filter: Schema names Stored Procedures Tables Steps: Select the filter Un-check Disable filter Specify your new filter Click OK

60 (Data Model) Overview Diagram– 4 of 5 (optional features)
Course Title - Instructor Notes - Arial Narrow 20pt (Data Model) Overview Diagram– 4 of 5 (optional features) If you are a database administrator (acting database administrator for your local copy of a database) or data modeler/data analyst you might be interested in other context menu options: Enhance your data module with the Diagram Tool: Right-click over the RESULTS entity Select: Add note Type text into the edit area When finished, Click the diagram again with your mouse You can delete the note by selecting it Right-click and select Delete Other context menu options of interest: Right click over the white space (not over an entity) Zoom In or out to scale File Save image Notes: Module X - Module Title

61 (Data Model) Overview Diagram– 5 of 5 (Properties View)
Course Title - Instructor Notes - Arial Narrow 20pt (Data Model) Overview Diagram– 5 of 5 (Properties View) Another useful Overview Diagram feature is: Show Properties View – which displays meta data for: Tables Relationships (click the lines drawn between the entities) Views Notes: Module X - Module Title

62 Optional - DBA and SQL Programmer/Analyst Feature – Analyze Impact
For tables with DB2-enabled "Referential Integrity" Select a table (either parent or child table) Note that the table should have constraints Right-click and select: Analyze Impact… Select the type of impact analysis to perform Only children objects Only parent objects Both children/parent objects Click OK Read the Model report produced Dependent Object is the "child" table or view that will be impacted "Impactor Object" is the parent table or view (of what has been analyzed)

63 DBA and SQL Programmer/Analyst Feature – DB2 Object Compare
Detailed comparison tool for analyzing differences between tables, views, etc. Side-by-side graphical results – from DB2 System Catalog Can span multiple connections – I.E. Compare a table in Test with one in Production

64 Optional - SQL Results View
Course Title - Instructor Notes - Arial Narrow 20pt Optional - SQL Results View Additional options exist to Re-sort, save and reuse the results set: Re-sort the result rows from a query, Sample Data, etc. Other result row options Right-click over the rows in the SQL Results view (and/or press the Shift key and select multiple rows) You can: Copy rows and Paste specific results rows into Notepad file Export results rows (next slide) Save results rows Convert Hexadecimal Note that this options shows: ASCII hex characters for CHAR and VARCHAR data Actual binary value - for INT, SMALLINT data Notes: Module X - Module Title

65 Using Update-able Views to Edit Subsets of Large Tables – 1 of 2
One of the current limitations of the RDz table editor is that – for very large tables (100's of columns, 100's of 1,000's of rows) you cannot filter table data One solution for this is to create a view that renders the rows you want to modify, and edit through the view (note that this is limited to version 8.0 and later) Considerations: You must have CREATE VIEW privileges Or optionally, you can ask your DBA or the table "owner" to run a CREATE VIEW for you, if you don't You must create an update-able view. An update-able view is a row-column subset of one table. The statement must not: Reference more than one table in the FROM clause, in a sub-select or UNION with other tables Contain GROUP BY or HAVING clause or DISTINCT in the selection list. Reference a non-updateable view Contain an SQL "expression" (functions, computations, etc.) Here's a sample Create View statement that creates a row/column subset of the DDS0001.CUST table: Create View Cust_View_CT as Select ID, LNAME, ST From DDS0001.Cust Where ST = 'CT'

66 Using Update-able Views to Edit Subsets of Large Tables – 2 of 2
Steps – including screen captures: Create an updatable view Edit (through) the view: Make changes Save your edits Ctrl+S

67 Unload (Extract) Rows from a Table
Course Title - Instructor Notes - Arial Narrow 20pt Unload (Extract) Rows from a Table You also might wish to unload (extract) test data rows before modifying a table's DDL, either for back-up purposes or to share among team members or re-load later. From the Data Source Explorer: Right-click over the table name Select: Data > Extract… Specify data extract (unload) options: Output file-spec Column delimiter type Char-string delimiter type To reload select: Load… and follow script in reverse Notes: Module X - Module Title

68 Combining SQL and Extract/Load to Edit Values in Large Tables – 1 of 3
If your DB2 table is too large to edit directly, you can use the following technique to modify row values: Run a SQL Script  to create a Result set that you wish to use as the basis for your editing and new values Export the Results: Plain Text (*.txt) Comma Separated

69 Combining SQL and Extract/Load to Edit Values in Large Tables – 2 of 3
Edit the text file produced  Notepad works Don't use any editor that adds special characters Delete the column names header Your new values will have to pass all of the standard DB2 (relational) data integrity checks: Data type Length and max value (for numeric columns) Primary key uniqueness Foreign key (referential integrity) checks Save your work From the Data Source Explorer Select your table Right-click and select: Data > Load…

70 Combining SQL and Extract/Load to Edit Values in Large Tables – 3 of 3
From the Load wizard select: File name (exported data) Comma delimiter: Comma Character string delimiter: None Un-check: Replace data Probably, right? Click Finish and check the Load status Message View your new table data values Use a SQL select to verify

71 Support for "Current SQLID"
Course Title - Instructor Notes - Arial Narrow 20pt Support for "Current SQLID" You can SET the CURRENT SQLID (just as you do on QMF/SPUFI) in order to run SQL statements with unqualified table/view names. Notes: Module X - Module Title

72 Writing SQL Against any DB2 Connection
Course Title - Instructor Notes - Arial Narrow 20pt Writing SQL Against any DB2 Connection Data Source Explorer also has the New SQL Script functionality as an icon on the toolbar From the Data Source Explorer Click the New SQL Script icon Choose a Database connection Note that this is the difference from the prior slide – that you can choose a connection Using Content Assist – create your statement one SQL element at a time Some SQL syntax errors are flagged dynamically Notes: Module X - Module Title

73 SQL Statement GUI-Development
An alternative to SQL statement development using Content Assist is to use a Data Development Project, which enables you to do graphical SQL development This can be a useful feature if some of your development staff are new to SQL Steps: From the Data Project Explorer Right-click and select: New > Data Development Project Name the Project Select a Connection Click: Finish

74 SQL Statement GUI-Development – continued
From the Explorer: Right-click over SQL Script and select: New > SQL or XQuery script Name the script Select the Statement type This will open a new SQL editor Select  SQL Query Builder Note – Other statement types include: Insert Update Delete FULLSELECT (Union / Union All) WITH (Statements built using temporary tables)

75 SQL Statement GUI-Development – continued
Using the editor you can follow the prompts and layout to create SQL statements graphically Add a new table From the list of columns select one or more columns to add

76 SQL Statement GUI-Development – continued
From the Conditions tab, add a WHERE clause Note that you can: Select a column, Operator, Value, AND/OR from a drop-down list box Or you can type the statement portions (and the graphical view will synchronize) Right-click over the statement and select Run SQL to test Note that you will definitely have to understand SQL to use this tool

77 Graphical SQL Script Builder – Joining Tables
A terrific use of the GUI SQL-builder is in creating statements that join tables By adding more than one table, the tool will create the SELECT and FROM clauses. By selecting: Create Join… you can specify the Where clause aka: "Join Condition"  Note the graphical rendering of the joins as connections between the tables

78 Graphical SQL Script Builder – Reverse Engineering SQL Statements to Graphics
Just as the SQL Script Builder will generate SQL out of your GUI building process, for certain SELECT and INSERT statements it will also show elements of your statements graphically, if you start with the SQL Steps: 1. Create a new statement 2. Type in your statement  3. Click inside the GUI areas  Your statement is displayed graphically RDz will show different GUI elements, as you type This works best with: SELECT INSERT

79  Relative SQL Performance Benchmarks
You can use the facilities of the Data Perspective creatively, to benchmark different SQL designs. Steps: Create a series of SQL statements Sandwich each SQL design between a SELECT of the current timestamp (as shown) After you run your statement series use the timing data to determine the "relative" performance results of each design Optionally – copy the Result rows to an external file for further analysis Expand Script Status Entry 

80 More Relative SQL Performance Benchmarks – Using Query execution time
You can use the facilities of the Data Perspective creatively, to estimate the effect of different SQL coding approaches on execution time Steps: Using the SQL Script editor, code and run your statement Note the Query execution time in the Status tab Try different coding approaches Note the relative differences in Query execution time

81 Optional Topic – Using DB2 Explain
Provided that you have rights to access a PLAN_TABLE, you can use the Data Tools to execute traditional DB2 Explain statements  Notes: Plan_Tables are DB2 version specific There is a Visual Explain product from IBM that plugs into Eclipse

82 Selecting Rows from the DB2 System Catalog (SYSIBM.SYSxxx) – 1 of 2
Provided you have DB2 catalog access privileges, the tables and views in the DB2 System Catalog (SYSIBM.SYSINDEXES, SYSIBM.SYSTABLES, etc.) can be queried Links:

83 Selecting Rows from the DB2 System Catalog (SYSIBM.SYSxxx) – 2 of 2
(Again) Provided you have DB2 catalog access privileges, you can also use the Data Source Explorer to browse the catalog tables Note that in order for the Data Source Explorer to provide this meta-data you will need to access the schema: SYSIBM in your connection

84 Preferences to Code SQL Statements Against the System Tables
From: Window > Preferences Data Management SQL Development SQL Editor Code Assist …You can customize your workspace for easier SQL statement editing against the system tables

85 Optional Topic – Enabling Property Groups for Local Syntax Check of DB2 – 1 of 3
(Assuming you have DB2 Connect installed or are using a local UDB database) – To setup Local Property Groups file for DB2 Local Syntax Check From the Property Group Manager view: Edit the LOCAL Property Group file Check:  Source contains SQL Statements Either Browse… to a connection, or select New… and create a connection to either: A UDB database A connection to a DB2 We will be describing how to create connections to DB2 in an upcoming module Note that, with EXEC SQL statements enabled, RDz validate your DB2/SQL references in your source SQL Options can be used to further customize your Local Syntax check See screen capture for an example of how you could explicitly set the Schema name for any unqualified embedded SQL statements In this example: PROD1DBA will be used to qualify SQL table/view names in your code

86 Optional Topic – Enabling DB2 for Real-Time Validation – 2 of 3
If you want to remove Real-Time validation errors for unqualified SQL statements: Select your Database Connection – Right click and select Properties Select Driver Properties – and specify a Default schema:

87 Optional Topic – Enabling Property Groups for Local Syntax Check of DB2 – 3 of 3
If you try and syntax check at this point, it may not work. Because, unless you created the UDB database using the same ID as your Schema Name (which is unlikely) you will receive permission errors  To clear these up, you can open a new SQL Script and issue GRANT statements – granting the SQL operation in your statements – or possibly SQL Bind and Createtab

88  Workshop – Enabling a Local Project for Copybook Access
Course Title - Instructor Notes - Arial Narrow 20pt  Workshop – Enabling a Local Project for Copybook Access 1. Click (select) your new copy folder, and from the Properties view Right-click over location Select Copy 2. Enable your project for copybook access – by customizing SYSLIB in your Property Group file: - From the Property Group Manager view - Expand LOCAL - Right-click COBOL Sample Property Group - Click on the COBOL tab - Paste the copied location into SYSLIB - Delete everything to left of the valid filespec - Save your changes (Ctrl+S) - Close the Property Group file Notes 1. Do this workshop if you are using the RDzClass project as the source for your program code 2. An alternative to entering the fully-qualified directory name for SYSLIB, is to type in the following environment variable: ${project_loc}\copy Module X - Module Title

89  Optional Workshop 1 – Using the SQL Script Builder to Join Tables
For a review of this material see the slides in this deck with "SQL Statement – GUI Development" in the slide header Workshop steps: From the Data Project Explorer Right-click and select: New > Data Development Project Name the Project Select a Connection Click: Finish From the Explorer: Right-click over SQL Script and select: New > SQL or XQuery script Name the script Select the Statement type This will open a new SQL editor From the SQL query: Add the following tables (all owned by: DDS0001): Entrants, Events, Results Note – its' a good idea to use Table Aliases – especially in table join statements Right-click over Entrants, and join Entrants to Results on the Entrant.Name = Results.Name Right-click over Events, and join Events to Results on the Event.Number = Results.Number Modify the SELECT statement's SELECT clause to return specific columns Run the statement – and review the output Optionally: Add an additional WHERE clause Sort the results rows

90 Course Title - Instructor Notes - Arial Narrow 20pt
 Optional Workshop 2 – Using the Script Builder to Reverse Engineer a Statement For a review of this material see the slides in this deck with "Reverse Engineering SQL Statements to Graphics" in the slide header From the Explorer: Right-click over SQL Script and select: New > SQL or XQuery script Name the script Select the Statement type: SQL This will open a new SQL editor From the SQL query statement area Code or paste the statement shown: The code is in the slide notes Check out the Reverse Engineering Run the statement Try coding any of your own SQL: Joins Complex single-table queries Query statement area SELECT E.DEPT, MIN(E.PERF), MAX(E.PERF), AVG(E.PERF), MIN(P.HOURS), MAX(P.HOURS), AVG(P.HOURS) FROM DDS0001.EMPL AS E, DDS0001.PAY AS P WHERE E.NBR = P.NBR GROUP BY E.DEPT The statement is in the Slide Notes Module X - Module Title

91  Optional Workshop – Accessing the System Catalog Tables
For a review of this material see the slides in this deck with "Selecting Rows from the DB2 System Catalog" in the slide header Create a new connection to DB2: Your DB2/zOS instance, or the IBM zserveros/DB2 instance Specify the high-level Schema: SYSIBM From the new connection, copy & paste the following statements or code SQL scripts (using content assist) to discover: What views exist that were created by my team: Select * from SYSIBM.SYSVIEWS where creator like 'DDS%' What plans exist that DDS0001 can execute: Select * from SYSIBM.SYSPLANAUTH Where GRANTEE = 'DDS0001' The proper join condition (Primary/Foreign Key) of two DB2 tables: SELECT B.REFTBNAME AS PARENTTABLE,COLNAME FROM SYSIBM.SYSFOREIGNKEYS A, SYSIBM.SYSRELS B WHERE A.RELNAME = B.RELNAME AND B.TBNAME = 'HOSP_BED' AND B.REFTBCREATOR = 'DDS0001' AND B.REFTBCREATOR = A.CREATOR; What indexes exist for tables that participate in a DB2 Join: SELECT I.NAME, I.TBNAME, K.COLNAME, K.ORDERING FROM SYSIBM.SYSINDEXES I, SYSIBM.SYSKEYS K WHERE I.TBNAME IN('WARD_DATA','HOSP_BED') AND I.NAME = K.IXNAME; The primary key of several DB2 tables: SELECT NAME FROMSYSIBM.SYSCOLUMNSWHERE TBNAME = 'WARD_DATA'AND TBCREATOR = 'DDS0001'AND KEYSEQ > 0 ORDER BY KEYSEQ ASC The column names and data types from two tables: WARD_DATA and EMP_DATA: SELECT NAMEFROMSYSIBM.SYSCOLUMNSWHERE TBNAME = 'WARD_DATA'AND TBCREATOR = 'DDS0001' Scroll down into the System tables using the Explorer – research any/all tables that look interesting – note how easy it is to use the graphical tools for browsing the Catalog and answering questions

92  Advanced Workshop – SPUFI Emulation – 1 of 5
Use the LPEX Filter feature - combined with a file of type sql to effectively test your SQL statements from within the z/OS Projects Perspective  Setup (from Remote Systems Explorer): z/OS File System Map a PDS where you have SQL statements you've used with SPUFI to a PC file type of sql See the slide deck titled: RDz Workbench – Using Remote Systems Explorer for help with this Create and open (edit) a member of this PDS From the Connection profile: Select the database Type: DB2 UDB zSeries … Note you may need to revisit the Data Perspective to find which database Type to select Name: <your z/OS DB2 connection name>  From Remote Systems Explorer: Open a COBOL program with embedded SQL Use the LPEX Filter view - isolate your SQL statements Select and copy a SQL statement Paste it into the sql file Right click in the sql file and select Execute All This will opens the SQL Results view within z/OS Projects - and allows you edit/test/analyze – iteratively and productively

93  Advanced Workshop – SPUFI Emulation – 1 of 6
Use the LPEX Filter feature - combined with a file of type sql to effectively test your SQL statements from within the z/OS Projects Perspective – like you currently do with SPUFI  Map your SPUFI file to a type of sql z/OS File System Map a PDS where you have SQL statements you've used with SPUFI to a PC file type of sql See the slide deck titled: RDz Workbench – Using Remote Systems Explorer for help with this

94  Advanced Workshop – SPUFI Emulation – 3 of 6
 Code your statements and select: Execute All This will opens the SQL Results view within z/OS Projects (see next slide) - and allow you edit/test/analyze - iteratively Optionally you may: Execute only a selected statement  Edit a statement in the GUI SQL builder 

95  Advanced Workshop – SPUFI Emulation – 4 of 6
Testing embedded SQL from within the z/OS Projects Perspective

96  Advanced Workshop – SPUFI Emulation – 5 of 6
An optional exercise to use the graphical SQL development features:  Select the entire query from the sql file.  Right-click and select: Edit in SQL Query Builder 

97  Advanced Workshop – SPUFI Emulation – 6 of 6 – Dealing with Line Numbers
If you want to use a SPUFI file from the mainframe, and COBOL Numbers were created by TSO's file statistics, you can delete the numbers as follows: 1. Open the file using the LPEX Editor  2. Type NUM ON … and then: unnum on the ISPF command line 3. Close and save your changes 4. Reopen the file with the SQL File Editor

98 Course Title - Instructor Notes - Arial Narrow 20pt
This module will require approximately 30 minutes to complete: RDz Workbench – Using the Data Source Explorer Appendices - Connecting to DB2/UDB - Connecting to a Derby database - Using Data Studio 3.1.1 Module X - Module Title

99  Data Perspective Workshop – DB2/UDB
Course Title - Instructor Notes - Arial Narrow 20pt  Data Perspective Workshop – DB2/UDB From this URL: 1. Download and install UDB on your workstation 2. From RDz and the Data Perspective Create a new connection to the UDB SAMPLE Database See next slide for help with this Select and copy the SQL statements in the slide Notes Create a new SQL Script to the UDB SAMPLE Database Run the script against the SAMPLE Database Refresh the SAMPLE Database in the Explorer -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

100  Advanced Workshop – SPUFI Emulation – 2 of 6
Create and open (edit) a member of this PDS Right-click and select: Set Connection Info From the Connection profile: Select the database Type: DB2 UDB zSeries … Note you may need to revisit the Data Perspective to find which database Type to select Name: <your z/OS DB2 connection name> Select the Database: from the drop-down control

101  Creating a new Connection to UDB
Course Title - Instructor Notes - Arial Narrow 20pt  Creating a new Connection to UDB You will need the: Database name: SAMPLE Host + Port number  IP address if shared/network or mainframe DB2 Note that the default port is: 50000 localhost if on your Windows machine User ID Password Recommend that you save the password properties Module X - Module Title

102 Course Title - Instructor Notes - Arial Narrow 20pt
 Using UDB If you've successfully executed the SQL DDL against the UDB/SAMPLE database you should get the relational objects described in this unit to work with But note that the UDB/SAMPLE database comes with additional: Schemas Objects, including: Stored Procedures Additional tables/views/etc. Module X - Module Title

103  Data Perspective Workshop – Derby
Course Title - Instructor Notes - Arial Narrow 20pt  Data Perspective Workshop – Derby If you do not have access to the RAD product on your workstation, you can do the following with an open-source DB2/SQL DBMS named Derby: Obtain the file: EGLDerbyR7.zip from your instructor Unzip this file on your workstation in a directory named: \databases\ – wherever you have admin rights to create a file (your C: or D: drive, etc.) When you are finished, you should see the following folders: Notes: I have unzipped the file onto my C: drive  If you wish to use another drive that's fine On the next slide you'll be prompted to specify the database location, so remember where you unzip Notes: This lab allows you to see how to establish your own custom driver and connection to a relational database on your Workstation. Typically you would not do this (your DBA and systems people would set you up). But if you did, these initial steps would only be done once. Module X - Module Title

104  Data Perspective Workshop – Derby
Course Title - Instructor Notes - Arial Narrow 20pt  Data Perspective Workshop – Derby From the New Connection wizard: 1. Select Derby 2. Select the BIRT SampleDb Derby Embedded Driver JDBC driver (it's the default) 3. Click Test Connection 4. Click: Finish 2. 1. Notes: 3. 4. Module X - Module Title

105  Data Perspective Workshop – Derby
Course Title - Instructor Notes - Arial Narrow 20pt  Data Perspective Workshop – Derby When your connection create process finishes, you will be returned to the Data Perspective, where you now can: View some of the tables and their relationships using the Overview Diagram Recall that from the Overview Diagram you can try: Add Note and/or Zoom Expand Notes: Module X - Module Title

106 The RDz Workbench UNIT Topics: Optim Data Tools Using Visual Explain
Test Table Subsetting

107  Optim Tools – Create a Connection – 1 of 2
Course Title - Instructor Notes - Arial Narrow 20pt  Optim Tools – Create a Connection – 1 of 2 Open the Data Source Explorer Create a new connection to a mainframe z/OS Database -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

108 Course Title - Instructor Notes - Arial Narrow 20pt
 Connection – 2 of 2 Specify your connection criteria Click Next > twice Select your Schema filters and click Finish -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

109  Visual Explain and SQL Query Tuning
Course Title - Instructor Notes - Arial Narrow 20pt  Visual Explain and SQL Query Tuning There are two separate functions for analyzing and tuning your queries: 1. Visual Explain Provides a graphical EXPLAIN view for understanding the access paths the DB2 Optimizer chooses for your queries Is packaged with the Optim Data Studio client (i.e. is free) Requires EXPLAIN tables (but will create these for you on the fly if you don't already have them) 2. SQL Query Tuning Provides Visual Explain Additionally provides a wealth of query tuning advice and recommendations The SQL Tuning client element is packaged with Optim Data Studio 3.1.1 But there is a Server component (InfoSphere) that must be installed and configured And is not free We will cover the use of both of these options in the slides -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

110 Course Title - Instructor Notes - Arial Narrow 20pt
 Visual Explain – 1 of 3 From the Data Source explorer – Right Click and select New SQL Script Type in your SQL statement (or copy/paste from an application program) -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); If you're Explaining embedded SQL you will need to remove host language constructs such as EXEC SQL, host variables, indicator variables, etc. Module X - Module Title

111 Course Title - Instructor Notes - Arial Narrow 20pt
 Visual Explain – 2 of 3 Click the Open Visual Explain icon  From: Collect Explain Data Specify settings: Tracing options If you don't own EXPLAIN (DB2 PLAN_TABLES) check the Create missing EXPLAIN… box Click Finish -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

112 Course Title - Instructor Notes - Arial Narrow 20pt
 Visual Explain – 3 of 3 The graphical tree shows the Optimizer's decisions for query's access path. -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); You will want to manipulate the view widths – to better see and understand the results Mouse-over the individual graphics to drill into access path details Module X - Module Title

113 Course Title - Instructor Notes - Arial Narrow 20pt
 Optim – SQL Tuning From the Data Source view Right-click over your connection Select Analyze and Tune > Start Tuning… Depending on the DB2 release you're working with, you may get a warning message Click OK -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Recall that Query Tuning requires IBM InfoSphere, in addition to the Data Studio client Module X - Module Title

114  Optim – Query Tuning Project
Course Title - Instructor Notes - Arial Narrow 20pt  Optim – Query Tuning Project You will proceed through the steps in the Query Tuning Project The initial Configuration page shows what tuning options are available to you The steps progress through tabs Query Tuning Progress Tabs Global tuning options -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

115  Optim – Query Tuner Workflow Assistant – Overview
Course Title - Instructor Notes - Arial Narrow 20pt  Optim – Query Tuner Workflow Assistant – Overview From the Query Tuning Workflow Assistant: Click Capture Enter your SQL Statement and click: Invoke Advisors and Tools -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Input options (for statement tuning) Module X - Module Title

116 Course Title - Instructor Notes - Arial Narrow 20pt
 OPTIM - -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Click: Select What to Run… Select the tuning activities to run against your query  Click OK Notes Syntax errors in your SQL statement will be returned with a negative SQLCODE and explanation The more options you select the longer the process will take to complete Module X - Module Title

117 Course Title - Instructor Notes - Arial Narrow 20pt
 OPTIM - Upon completion of the tuning advisor you will be in the Review workflow Read through the Recommendations Open the Access Plan Graph/Explorer Save the query recommendations for future study You can save the tuning advice for future analysis -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Recommendations Specific Tuning Module X - Module Title

118  Review Access Plan Graph
Course Title - Instructor Notes - Arial Narrow 20pt  Review Access Plan Graph Select Open Access Plan Graph – this opens the graph depicting all of the stages of the DB2 access path employed by the Optimizer Note that you will need to understand relational access path theory to understand the nuances shown Mouse over the activities and outcomes of the access path for details of the Optimizer's decisions -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

119  OPTIM – Access Plan (Detailed) Explorer
Course Title - Instructor Notes - Arial Narrow 20pt  OPTIM – Access Plan (Detailed) Explorer There are additional DBA-level tuning reports -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Reports on the Nested Loop Join – including (not shown) Total, CPI and IO cost Module X - Module Title

120  More DBA Tuning – the Summary Report
Course Title - Instructor Notes - Arial Narrow 20pt  More DBA Tuning – the Summary Report Notes: The Access Path and Plan reports and graphs are also DBA-oriented. And they require a DBA auth-level -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Specific Tuning Recommendations Module X - Module Title

121 The RDz Workbench UNIT Topics: Optim Data Tools Using Visual Explain
Test Table Subsetting

122  Optim – Test Table Subsetting
Course Title - Instructor Notes - Arial Narrow 20pt  Optim – Test Table Subsetting Optim allows you to choose columns and create SQL "Where Clause Predicates" to filter rows This allows you to subset large test tables for data access and update You'll start by creating a table filter Steps: Assuming you're connected… Expand your Database location Expand Schemas Expand the Schema you wish to filter Right-click Tables Select Properties -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); This will open the Catalog Table Filter Module X - Module Title

123 Course Title - Instructor Notes - Arial Narrow 20pt
 Table Filter Specify your table filter selection Click the  Selection radio button Check the table names you want included in your filter Note that you could also have checked Expression and typed in a LIKE (Where) clause to filter table names via wildcard pattern Click OK -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

124  Select a Table for Subsetting
1. Open the Administration Explorer View Course Title - Instructor Notes - Arial Narrow 20pt  Select a Table for Subsetting A few more selection steps… This will open a list of tables for subsetting based on your Filtering specifications 2. Click Tables  -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); 3. Right-Click over your Table and select Edit Data Module X - Module Title

125 Course Title - Instructor Notes - Arial Narrow 20pt
 Table Data Filter From the Toolbar click: Filter the data From Table Data Filter Select Columns to show Add Row Selection Conditions Click OK -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Specific Tuning Recommendations Module X - Module Title

126  Edit values through your Table Data Filter
Course Title - Instructor Notes - Arial Narrow 20pt  Edit values through your Table Data Filter You can now edit through the table subset criteria This table editing functionality is the same as RDz's "Edit table" – in that you can: Modify row values Delete rows Add new rows Click the Commit Changes icon (or press Ctrl+S) to save your table edit values Commit Changes Modify row/column filter -- THESE ARE THE DATA DEFINITION LANGUAGE STATEMEMTS TO DEFINE AND -- LOAD THE TABLES USED IN THE SYSTEMS GROUP DB2 COURSES. -- THE TABLE NAMES ARE: MOV CUST INV I_M EMPL PAY PROJ MOOSUP_500 -- -- THE DDL STATEMENTS TO GENERATE THESE TABLES CONSIST OF CREATE -- TABLE STATEMENTS, AND CORRESPONDING FORMAT ONE -- INSERT STATEMENTS. THE TABLE CREATE STATEMENTS NEED TO BE EDITED -- SO THAT THE CORRECT DATABASE (AND/OR) TABLESPACE CAN BE USED TO -- HOLD THEM. ONE COPY OF THE TABLES SHOULD BE CREATED -- ON THE INSTRUCTOR'S TSO ID. -- *** YOU CAN CREATE THE STUDENT TABLES ONE OF TWO WAYS: -- 1) AS A DBADM DUPLICATE THE STATEMENTS IN THIS FILE, NAMING THE -- TABLES WITH THE STUDENTS TSO-ID AS THE HIGH-LEVEL QUALIFIER -- 2) LET THE STUDENTS COPY THE FILE AND CREATE THE TABLES THEMSELVES -- USING SPUFI DURING CLASS -- THE ISPF EDIT COMMAND TO CHANGE THE DATABASE SHOULD LOOK LIKE THIS: -- C'SAMPLE' 'REALDB' ALL -- ******************************************************************* -- * I M P O R T A N T N O T E F O R S E T U P * -- * * -- * IF YOU HAVE TIME, COULD YOU PLEASE CREATE A PLAN_TABLE FOR * -- * ALL STUDENTS? THE PLAN_TABLE SHOULD BE AT THE RELEASE LEVEL * -- * OF THE DB2 SYSTEM THE STUDENTS WILL BE WORKING ON. THANK YOU. * -- THE CREATE TABLE STATEMENTS FOR THE MOVIE TABLE. CREATE TABLE MOV (NBR SMALLINT, TITLE CHAR(20), TYPE CHAR(6), RATING CHAR(4), STAR CHAR(10), QTY SMALLINT, PRICE DECIMAL(5,2) ) IN DATABASE SAMPLE; -- THE INSERT STATEMENTS FOR THE MOVIE TABLE. INSERT INTO MOV VALUES (1,'GONE W]TH THE WIND','DRAMA',NULL,'GABLE',4,39.95); VALUES (2,'FRIDAY THE 13TH','HORROR','R','JASON',2,69.95); VALUES (3,'TOP GUN','DRAMA','PG','CRUISE',7,49.95); VALUES (4,'SPLASH','COMEDY','PG13','HANKS',3,29.95); VALUES (5,'101 DALMATIONS','COMEDY','G',NULL,3,59.95); VALUES (6,'BODY HEAT','DRAMA','R','TURNER',3,19.95); VALUES (7,'RISKY BUSINESS','COMEDY','R','CRUISE',2,44.55); VALUES (8,'COCOON','SCIFI','PG','AMECHE',2,NULL); VALUES (9,'CROCIDILE DUNDEE','COMEDY','PG13','HARRIS',2,69.95); VALUES (10,'TOOTSIE','COMEDY','PG','HOFFMAN',1,29.95); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE TABLE CREATE TABLE INV (NBR SMALLINT, CUSTID CHAR(2), TOT DECIMAL(5,2), RENT INTEGER, RETURN INTEGER) -- THE INSERT STATEMENTS FOR THE INVOICE TABLE INSERT INTO INV VALUES (1,'01',9.55,87055,NULL); VALUES (2,'02',13.55,87030,NULL); VALUES (3,'02',21.01,87041,87042); VALUES (4,'01',11.25,87042,87072); VALUES (5,'03',12.55,87045,87051); VALUES (6,'02',9.75,87047,87051); VALUES (7,'04',10.35,86355,NULL); VALUES (8,'04',12.55,87051,87053); VALUES (9,'05',10.35,87052,NULL); VALUES (10,'02',7.55,87030,87060); -- THE CREATE TABLE STATEMENTS FOR THE CUSTOMER TABLE CREATE TABLE CUST (ID CHAR(2), LNAME CHAR(12), FNAME CHAR(6), CITY CHAR(15), ST CHAR(2) ) -- THE INSERT STATEMENTS FOR THE CUSTOMER TABLE INSERT INTO CUST VALUES ('01','DANGERFIELD','RODNEY','HARTFORD','CT'); VALUES ('02','FIELD','SALLY','FRANKLIN','NY'); VALUES ('03','NICHOLSON','JACK','HARTFORD','CA'); VALUES ('04','MURRAY','FRED','BOZRAH','CT'); VALUES ('05','MADDEN','JOHN','BRATTLEBORO','VT'); VALUES ('06','WEST','MAE','PARK PLACE','CA'); VALUES ('07','WOODWARD','JOANNE','GETTYSBURG','PA'); VALUES ('08','ROGERS','ROY','HAPPY TRAILS','TX'); VALUES ('09','RINGWALD','MOLLY','PINKSVILLE','CA'); VALUES ('10','ROGERS','FRED','PARK PLACE','CA'); -- THE CREATE TABLE STATEMENTS FOR THE INVOICE_MOVIE TABLE CREATE TABLE I_M (I_NBR SMALLINT, M_NBR SMALLINT) INSERT INTO I_M VALUES (1,4); VALUES (1,5); VALUES (2,3); VALUES (3,1); VALUES (3,10); VALUES (4,6); VALUES (4,3); VALUES (4,5); VALUES (4,1); VALUES (5,1); VALUES (5,7); VALUES (7,1); VALUES (7,3); VALUES (7,5); VALUES (8,4); VALUES (8,7); VALUES (9,9); VALUES (9,2); VALUES (10,4); VALUES (10,1); VALUES (10,5); -- THE CREATE TABLE STATEMENTS FOR THE EMPLOYEE TABLE CREATE TABLE EMPL (NBR CHAR(2), LNAME CHAR(10), FNAME CHAR(8), DOB INTEGER, HIREDTE INTEGER, PERF SMALLINT, JOB CHAR(4), DEPT CHAR(3), PROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE EMPLOYEE TABLE INSERT INTO EMPL VALUES ('01','LOWE','ROB',53012,85012,4,'PROG','FIN','01'); VALUES ('02','SHIELD','BROOKE',59131,87001,3,'MAN','MKT','01'); VALUES ('03','MOORE','ROGER',48111,86002,1,'DIR','MKT','04'); VALUES ('04','EASTWOOD','CLINT',41091,60120,3,'PROG','FIN','03'); VALUES ('05','MOSTEL','ZERO',21365,84211,NULL,'PRES',NULL,NULL); VALUES ('06','BURNS','GEORGE',11178,49001,2,'SYS','FIN','01'); VALUES ('07','O''NEIL','RYAN',42189,60121,3,'DIR','ACC','05'); VALUES ('08','MARVIN','LEE',32187,51876,2,'VP','ACC','02'); VALUES ('09','LANCASTER','BURT',41091,79092,1,'MAN','R&D','02'); VALUES ('10','BLAIR','LINDA',54013,85012,1,'PROG','MKT',NULL); -- THE CREATE TABLE STATEMENTS FOR THE PROJECT TABLE CREATE TABLE PROJ (NBR CHAR(2), NAME CHAR(10), MAJPROJ CHAR(2) ) -- THE INSERT STATEMENTS FOR THE PROJECT TABLE INSERT INTO PROJ VALUES ('01','PHASERS','MKT',NULL); VALUES ('05','SYSTEM X','MKT','03'); VALUES ('03','SYSTEM R','FIN',NULL); VALUES ('04','LASERS','ACC','01'); VALUES ('02','R*','FIN','03'); VALUES ('06','NEW PROJ','R&D','02'); -- THE CREATE TABLE STATEMENTS FOR THE PAYROLL TABLE CREATE TABLE PAY (NBR CHAR(2), HOURS DECIMAL(5,2), RATE DECIMAL(5,2), DED DECIMAL(5,2), YTD DECIMAL(7,2) ) -- THE INSERT TABLE STATEMENTS FOR THE PAYROLL TABLE INSERT INTO PAY VALUES ('01',8.89,43,128.78, ); VALUES ('02',13.23,40,204.45, ); VALUES ('03',6.11,49,94.76, ); VALUES ('04',26.75,45,132.58, ); VALUES ('05',67.82,37,394.69, ); VALUES ('06',32.45,32,121.99, ); VALUES ('07',26.75,49,101.56, ); VALUES ('08',15.99,52,327.98, ); VALUES ('09',43.59,24,0, ); VALUES ('10',32.41,52,112.78, ); -- CREATE TABLE STATEMENT FOR MOOSUP_500 TABLE CREATE TABLE MOOSUP_500 ( ENTRANT SMALLINT, CAR CHAR(10), DRIVER VARCHAR(16), PRICE DEC(7,2), MILEAGE INTEGER, PURCHASE DATE, QUAL_TIM TIME ) INSERT INTO MOOSUP_500 VALUES (1,'LINCOLN','MARIO SPAGHETTI', ,5400,' ', ' '); (2,'SEAHAWK','MRS. PAUL', ,2100,' ', ' '); (3,'300 ZX','PAUL NEWMAN',189.99,12788,' ', ' '); (4,'LAND ROVER','MAGGIE THATCHER',NULL,15400,' ', ' '); (5,NULL,'MILLARD FILLMORE', ,NULL,' ', ' '); CREATE TABLE INVEST (NBR CHAR(2), TYPE CHAR(06), AMT DEC(7,2), DATE_PROCESSED DATE) INSERT INTO INVEST VALUES ('01','STOCK ', ,' '); INSERT INTO INVEST VALUES ('01','TBILL ', ,' '); INSERT INTO INVEST VALUES ('01','FMAE ', ,' '); INSERT INTO INVEST VALUES ('01','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('02','TBILL ', ,' '); INSERT INTO INVEST VALUES ('02','FMAE ', ,' '); INSERT INTO INVEST VALUES ('03','STOCK ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('04','FMAE ', ,' '); INSERT INTO INVEST VALUES ('05','STOCK ', ,' '); INSERT INTO INVEST VALUES ('07','ZCOUP ', ,' '); INSERT INTO INVEST VALUES ('08','TBILL ', ,' '); CREATE TABLE EMPLOYEE (NBR CHAR(8) NOT NULL, NAME VARCHAR(25) NOT NULL, HIREDTE DATE NOT NULL WITH DEFAULT, SHIFT TIME NOT NULL WITH DEFAULT, DEPT CHAR(4) NOT NULL WITH DEFAULT, PROJ INTEGER , PERF SMALLINT NOT NULL WITH DEFAULT, MGR CHAR(8) , PRIMARY KEY (NBR)); CREATE UNIQUE INDEX EMPLOYEE_PK_IDX ON EMPLOYEE (NBR DESC); CREATE TABLE PAYROLL (NBR CHAR(08) NOT NULL, RATE DEC(5,2) NOT NULL WITH DEFAULT, DED DEC(3,0) NOT NULL WITH DEFAULT, HOURS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY (NBR) ); CREATE UNIQUE INDEX PAYROLL_PK_IDX ON PAYROLL (NBR); CREATE TABLE PROJECT (NBR INTEGER NOT NULL, NAME VARCHAR(25) NOT NULL WITH DEFAULT, PROJ_MGR CHAR(08) , TMSTAMP TIMESTAMP NOT NULL WITH DEFAULT, CREATE UNIQUE INDEX PROJ_PK_IDX ON PROJECT (NBR); INSERT INTO EMPLOYEE VALUES ( 'AAAAAAAA', 'Ana Rhinehart', ' ', ' ', 'EDUC', 1, 0, 'SSSSSSSS' ); 'AAAA1AAA', 'Kevin White', ' ', ' ', 4, 'AAAAAAAA' 'AAAABAAA', 'Dot Mariano', ' ', 2, 3, 'AAAA2AAA', 'Carl Foster', ' ', 'CONS', NULL, ' ' 'AAAACAAA', 'Kevin Flanagan', ' ', 'AAAAZAAA', 'Clayton McNally', ' ', 7, 'AAAA0AAA', 'Peter Molchan', ' ', 'ZZZZZZZZ', 'Gabe Gargiulo', ' ', 9, 'AAAA2AAA' 'AAA1AAAA', 'David Hawreluk', ' ', 6, 'SSSSSSSS', 'Jonathan Sayles', ' ', ' ', 8, 'AAAABAAA' 'AAAA3AAA', 'Perry Haugh', ' ', '4CAAAAAA', 'Bill Bluestone', ' ', 'XXXXXXXX', 'Person w/no dependents', ' ', 5, 'SSSSSSS', 'PERSON W/7 CHAR NBR', ' ', INSERT INTO PAYROLL VALUES 40.75, 100, 40 34.75, 75, 55 30.75, 200, 35 65.75, 761, 300, 42.25, 15, 33 68.01, 69, 32 99.01, 543, 89 66.67, 123, 65 47.75, 159, 12 INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (1,'THE 1ST PROJECT ','SSSSSSSS'); (2,'THE 2ND PROJECT ','AAAAAAAA'); (3,'THE 3RD PROJECT ','SSSSSSSS'); (4,'THE 4TH PROJECT ','SSSSSSSS'); INSERT INTO PROJECT (NBR, NAME, PROJ_MGR) VALUES (5,'THE 5TH PROJECT ','AAAAAAAA'); (6,'THE 6TH PROJECT ','SSSSSSSS'); Module X - Module Title

127 The RDz Workbench UNIT Topics: Optim Data Tools Using Visual Explain
Test Table Subsetting Backup Slides

128 Creating a new Connection to a Database
Course Title - Instructor Notes - Arial Narrow 20pt Creating a new Connection to a Database You will need the: Database name Host + Port number IP address if shared/network or mainframe DB2 localhost if on your Windows machine User ID Password Note that the connection Property values are installation and DBMS dependent: DB2 for z/OS requires a "Location" as well as Host name and port number. You would work with your DBA and systems programmer to get these values Notes on the JDBC URL: In case it helps, DB2 URL is -> jdbc:db2://<hostname>:<port>/databaseName. The different parameters are: hostname: the NetBios name for the computer, as defined in hosts file, in the case of Linux. If it's your PC, you may either use the loopback TCP/IP address ( ) or the keyword "localhost" port: the port where DB2 is listening to clients. Default is TCP port 50000; you may check where is your DB2 installation listening, issuing the DB2 command GET DBM CFG from a command line processor (CLP) or via the DB2 Configuration Assistant. In the first case, check the parameter SVCENAME. In case you want to change the port number, issue the DB2 command UPDATE DBM CFG USING SVCENAME svcnum, where svcnum is the desired port number. databaseName: the name of the database you want to work with. If you don't know it, the DB2 Control Center is a good place to start. For more background on JDBC connections to DB2: Notes Module X - Module Title


Download ppt "RDz Workbench – Using the Data Source Explorer"

Similar presentations


Ads by Google