COSC 2307 Database Management Systems (ORACLE) LAB ASSIGNMENT - INTRODUCTION TO SQL Purpose: To introduce students to structured query language (SQL), the assignment consists of starting up Oracle SQL, learning how to create a table, enter data, change data in the table, delete data, and drop the table. To continue the introduction to structured query language (SQL), the assignment explores variations on the select command, logical tests, and null combining of tables, subqueries, and views. This is only a practice exercise and not to be submitted. Requirements: 1. To start up SQLPLUS, click on the Start menu, then the Programs menu. One of the choices is ORACLE for Windows NT. Click on that menu item, then on the menu that comes up click on the choice SQLPLUS 8.0 (Near the bottom). You will then be prompted with a dialog box that asks for your user name, password and the host. We are running ORACLE on a client-server architecture, where the clients are on the Windows NT and the server is on the UNIX (SUN server) you need to enter the user name as your student number, password as your social security number, as shown below. You need to provide a host entry as “oracledb”. If you have correctly entered the user name and password, Oracle will respond with the word “Connected to” followed by 3 or four lines of information, then the prompt “SQL>”. This indicates you have successfully logged on. User Name Student# Password SIN Host oracledb 2. Since we are using ORACLE installed on the server, any objects such as tables, views, etc. that you create, and their associated data, will be available on the server. Therefore, you can use any machine in the lab for working on Oracle labs. 3. Spooling SQL*PLUS Commands and output to a File a. Start SQL*PLUS, click File on the menu bar, point to spool, then click Spool File. Select the name of a file and click save. 533575442 1 COSC 2307 Database Management Systems (ORACLE) b. Run the query from SQL*PLUS. c. Click File on the menu bar, point to Spool, then click Spool Off. The spooled input and output are not written to the file until the spooler is turned off. d. Open the file you saved in Notepad and check that it contains the commands of the query and the results. 4. One of the immediate tasks we need to do before you start is to identify if there are any unnecessary objects on your workspace that may be taking up disk space. Therefore, once you have succeeded in signing on, use the following command to list the objects in your ORACLE workspace: SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS; This command will produce a list of the objects (e.g. tables, views, etc.) that are currently in your workspace. (Note: It is possible that there are no objects currently on your workspace. In that case, the above select statement will indicate no rows returned.) 5. The following table represents information on sales representatives for Premiere Products, and contains the following data fields for sales representatives: sales representative’s number (SLSRNUMB), sales representative’s name (SLSRNAME), sales representative’s address (SLSADDR), total commission paid to the sales representative (TOTCOMM), and sales representative’s commission rate (COMMRATE). Sales Representative SLSRNUMB SLSRNAME SLSRADDR TOTCOMM COMMRATE 3 MARY JONES 123 MAIN, GRANT, MI 2150.00 0.05 6 WILLIAM SMITH 102 RAYMOND, ADA, MI 4912.00 0.07 12 SAM BROWN 419 HARPER, LANSING, MI 2150.00 0.05 6. Using a text editor such as notepad, create the following ORACLE command file to create the table. Save the file as SREP.SQL on your diskette. (Note: Be careful when saving to indicate the “all files” file type, and put double quotes around the file name so that Windows will not put an additional .txt extension on your file name.) create table SALESREP ( slsrnumb number, slsrname varchar2(25) not null, slsraddr varchar2(25) not null, totcomm number(6,2), commrate number(2,2)); 533575442 2 COSC 2307 Database Management Systems (ORACLE) 7. Return to ORACLE, and when you get the SQL> prompt, run the ORACLE script file created in 4 above by typing the following: start a:\srep.sql; Note: if you are running the file from another location then specify the path where the file is stored This will create a table, give you a message to that effect, and return to the SQL> prompt. As you type a statement and press enter, a line number will appear at the left. When you have typed in all the command and have pressed enter, a blank line number will appear. simply type another enter and the SQL> prompt will reappear. To run the command, type run or / and press enter. To see what you have created, i.e. the structure of the table, type the following command: describe salesrep; 8. You have now created your first ORACLE table. We now need to enter some data into that table. To do so, type the following command at the SQL> prompt: insert into salesrep values (3,'Mary Jones','123 Main, Grant, MI',2150.00,0.05); 9. Then, enter more data into the table by typing the following command. (You can create a *.sql (* is for any file name) file in Notepad and start it as described in 2 and 3 above.) Don’t be afraid to use edit copy - edit paste to lighten the typing load. (Yes, the row for Mary Jones was meant to be repeated!) insert into salesrep values (3,'Mary Jones','123 Main, Grant, MI',2150.00,0.05); insert into salesrep values (6,'William Smith','102 Raymond, Ada, MI',4912.00,0.07); insert into salesrep values (12,'Sam Brown','419 Harper, Lansing, MI',2150.00,0.05); 10. You have now entered data into your table. To see the data, type the following command. Again, as for any command, type it in, press enter, and at the blank line press enter again to get the SQL> prompt. Then type run or / to execute the command select slsrnumb,slsrname,slsraddr,totcomm,commrate from salesrep; 11. Now, type the following command and compare the results from this command with that in the above command (8). select * from salesrep; 12. To delete the two rows for Mary Jones, type in and execute (by pressing enter) the following command: 533575442 3 COSC 2307 Database Management Systems (ORACLE) delete from salesrep where slsrnumb = 3; 13. Again look at the date to see if your command was successful by repeating the command used in 9 above. 14. Assume that the commission rate for Sam Brown was entered incorrectly, and should be changed to 0.06. Use the following command to update the commission rate field for Sam Brown: update salesrep set commrate = 0.06 where slsrnumb = 12; 15. You have now created a table, inserted data, updated data within a field, and deleted a record or row on the table. These are some of the fundamental operations to be done with a table, and we will be practising these in detail with the various variations over the next few weeks. 16. The only operation that might be of further practical use is that of removing, or dropping a table. To illustrate, create a table with the following command: create table TEMP ( order_no number, order_description varchar2(25) not null ); Then, use the describe command to make sure it is properly created. Finally, execute the following command to drop the table from your workspace: drop table TEMP; You have now dropped the temporary table you have just created, and it no longer exists in your workspace. 17. Practise your newfound skills by creating and loading the following tables. Please help me in assisting you to debug your statements by using the table names and column names exactly as shown below. Give the field definitions sizes that would appear reasonable based on the data below. 533575442 4 COSC 2307 Database Management Systems (ORACLE) ************************************************************************ Customer CUSTNUMB 124 256 311 315 405 412 522 567 587 622 CUSTNAME SALLY ADAMS ANN SAMUELS DON CHARLES TOM DANIELS AL WILLIAMS SALLY ADAMS MARY NELSON JOE BAKER JUDY ROBERTS DAN MARTIN ADDRESS BALANCE CREDLIM SLSRNUMB 481 OAK, LANSING, MI 418.75 500 3 215 PETE, GRANT, MI 10.75 800 6 48 COLLEGE, IRA, MI 200.10 300 12 914 CHERRY, KENT, MI 320.75 300 6 519 WATSON, GRANT, MI 201.75 800 12 16 ELM, LANSING, MI 908.75 1000 3 108 PINE, ADA, MI 49.50 800 12 808 RIDGE, HARPER, MI 201.20 300 6 512 PINE, ADA, MI 57.75 500 6 419 CHIP, GRANT, MI 575.50 500 3 Order Detail ORDNUMB 12489 12491 12491 12494 12495 12498 12498 12500 12504 PARTNUMB NUMBORD QUOTPRIC AX12 11 14.95 BT04 1 402.99 BZ66 1 311.95 CB03 4 175.00 CX11 2 57.95 AZ52 2 22.95 BA74 4 4.95 BT04 1 402.99 CZ81 2 108.99 Parts PARTNUMB AX12 AZ52 BA74 BH22 BT04 BZ66 CA14 CB03 CX11 CZ81 PARTDESC IRON SKATES BASEBALL TOASTER STOVE WASHER SKILLET BIKE MIXER WEIGHTS UNONHAND ITEMCLSS 104 HW 20 SG 40 SG 95 HW 11 AP 52 AP 2 HW 44 SG 112 HW 208 SG WREHSNM UNITPRCE 3 17.95 2 24.95 1 4.95 3 34.95 2 402.99 3 311.95 3 19.95 1 187.5 3 57.95 2 108.99 Orders ORDNUMB 12489 12491 12494 12495 12498 12500 12504 533575442 CUSTNO 124 311 315 256 522 124 522 ORDDTE 01-MAR-98 10-MAR-98 31-MAR-98 15-APR-98 16-APR-98 21-APR-98 05-MAY-98 5 COSC 2307 Database Management Systems (ORACLE) 18. The following sections are meant to illustrate the select, from, where, and order by clauses. Using the customer table you have just created, type in the following commands, and in each case look at the output from each and compare the results: select custnumb, custname, address, balance from customer where credlim = 500; select custnumb, custname, address, balance from customer where credlim = 500 order by custnumb; select custnumb, custname, address, balance from customer where credlim = 500 order by custname; select custnumb, custname, address, balance from customer where credlim = 500 order by custnumb, custname; select custnumb, custname, address, balance from customer where credlim = 500 order by custnumb desc, custname; 19. The following commands illustrate logical tests. Type in the following commands, and in each case look at the output from each and compare the results: select custnumb, custname, address, balance from customer where balance > 300; select custnumb, custname, address, balance from customer where custname > ‘D’; select custnumb, custname, address, balance from customer where custname like ‘ADAM%’; select custnumb, custname, address, balance from customer where custname like ‘_ _N%’; select custnumb, custname, address, balance from customer where custname like ‘%A%A%’; select custnumb, custname, address, balance from customer where custname like ‘%A%I%’; 20. The following commands illustrate null and not null clauses. Using your new-found knowledge, create the following table called MARKS: Student Test1 Test2 Test3 varchar2(15) number number number Enter the following data into the table: Student Test #1 Mike Harris 75 Jean Chretien 80 Lucien Bouchard 70 533575442 Test #2 65 65 Test #3 70 60 68 6 COSC 2307 Database Management Systems (ORACLE) Enter the following commands, and compare the results: select student, test1, test2, test3 from marks where test2 is null; select student, test1, test2, test3 from marks where test2 is not null; 21. The following commands illustrate the logical test of values. Using the part table, enter the following commands, and compare the results: select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where itemclss not in (‘HW’, ‘SG’); select partnumb, partdesc, unonhand, wrehsnm, unitprce where itemclss in (‘HW’, ‘SG’); select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where unitprce between 100.00 and 400.00; select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where itemclss = ‘HW’ and unitprce > 30.00; select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where itemclss = ‘HW’ or unitprce > 30.00; select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where itemclss = ‘HW’ and intprce between 19.00 and 30.00; 22. The following commands illustrate the combining of commands using and or or. Using the part table, enter the following commands, and compare the results: select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where itemclss = ‘HW’ or itemclss = ‘SG’ and unitprce > 50.00; select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where itemclss = ‘HW’ and unitprce > 50.00 or itemclss = ‘SG’; select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where unitprce > 50.00 and itemclss = ‘HW’ or itemclss = ‘SG’; select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where unitprce > 50.00 and (itemclss = ‘HW’ or itemclss = ‘SG’); select partnumb, partdesc, unonhand, wrehsnm, unitprce from parts where (itemclss = ‘HW’ or itemclss = ‘SG’) and unitprce > 50.00; 23. The following commands illustrate the use of subqueries. Using the customer table, enter the following commands and compare the results. select custnumb from customer where custname = ‘MARY NELSON; select custnumb from customer where slsrnumb = 12; 533575442 7 COSC 2307 Database Management Systems (ORACLE) select custnumb from customer where slsrnumb = (select custnumb from customer where custname = ‘MARY NELSON’); select * from customer where custname = (select custname from customer where slsrnumb = 3); 24. The following commands illustrate the combining of tables. Use the order and order detail tables to do the following command: select orders.ordnumb, orders.orddte, order_detail.partnumb, order_detail.numbord, order_detail.quotpric from orders, order_detail select orders.ordnumb, orders.orddte, order_detail.partnumb, order_detail.numbord, order_detail.quotpric from orders, order_detail where orders.ordnumb > 12500 order by orders.ordnumb 25. The following commands illustrate the creation of a view. Use the part table to do the following command: create view hardware as select partnumb, partdesc, unonhand, wrehsnm, unitprice from part where itemclss = ‘HW’; select partnumb, partdesc, unonhand from hardware; Congratulations!! You have just run your first ORACLE programs. The rest is easy? 533575442 8