Date post: | 26-Sep-2015 |
Category: |
Documents |
Upload: | vijay-s-gachande |
View: | 35 times |
Download: | 5 times |
SQL Topic 1. Basic SQL
ORACLE TEACHING NOTES
Part I
SQL Topic 1. Basic SQL
Data Definition Language (DDL)
Creating a Table
create table t (fd_name1 fd_type, fd_name2 fd_type, ...);
create table customer (ssn char(9), cname char(30), caddress char(30), amount number(10,2));
* field type: char(n)
varchar(n)
date
number(x,n)Deleting a table
drop table t;
drop table customer;
truncate table t;
truncate table customer;
/* delete all records in the table but not the field definitions */
Add A Column
alter table t add (fx fd_type, fy fd_type);
alter table customer add (zip char(5), phone char(10));Modify Column Definition
alter table table_name modify (f1 new_type, f2 new_type, ...);
Alter table customer modify (cname char(50));
/* Certain restrictions apply. See p.388 */
Display Table Structure
describe t;
describe customer;Data Manipulation Language (DML)
Insert Records (you can only insert one record at a time)
insert into t values (f1value, f2value,...);
insert into t (f1, f2,...) values (f1value, f2value,...);
Delete Records
delete from t where [conditions];
Update Records
update t set f1=newvalue, f2=newvalue where [conditions];
/* Notice the difference between Insert and Update */
Display Records
select * from t;
select * from t where [conditions];
select f1, f2, ...from t;
select f1, f2, ...from t where [conditions];
ConditionsMathematical and Logical operators
=, , >, =, 10;
ex:... where price > 10 and code 1234;
Wildcard
like
Compares to similar character string
%represents any group of characters
_ represents one character
ex:... where name like 'S%';
... where name like '_llen';Order by
default is ascending.
... order by f1;
add DESC for descending
... order by f1 desc;Views
A definition of a restricted portion of a table
create view v1 as
select f1, f2,...
from t1 where [conditions];
ex:create view invent_2 as select p_code, price from Inventory where price>50;
select * from invent_2;
in
select sname from student where major in (IS,Finance);Join Mulitple Tables
select t1.f1, t2.f2, ... from t1, t2, ... where [conditions];
ex.select sname from student, advisor where student.anum=advisor.anum;Transaction Control Statements
Save and Undo records
commit;rollback; /*Undo, save to the last "commit" status */
Create a new table from an existing table
create table newtable as select * from oldtable;
create table newtable as select column1, column2, ... from oldtable;
Copy contents of one table to another table
insert into to_table select * from from_table;
insert into to_table (column1, column2, ...) select column1, column2, ... from from_table;
Exercise 1.1
Write the SQL code to ...
1. Create a table named S with the following columns
S#char(2)
SNAMEchar(10)
STATUSnumber(3,0)
2. Insert a supplier record into the S table. The suppliers s# is S1, SNAME is Smith, and Status is 20.
3. Save the record to the S table.
4. Display all records of the S table.
5. Display the sname and status columns of the S table.
6. Insert another supplier record into the S table. The suppliers s# is S2, SNAME is Jones, and Status is 10.
7. Display all records of the S table.
8. Undo the action of problem 6. (That is, un-insert S2.)
9. Display all records of the S table. What should you see?
10. Add a new column CITY to the S table. Its column definition is char(10).11. Update supplier S1s city to be London and S2s city to be Paris. (Can you do it in one SQL statement, or you need to write 2?)
12. Delete the record of supplier s2.
13. Undo the action of problem 12.
(Assume now that all three tables, S, P, and SP are in place, and they have records as above.)
S
PSP
S#SNAMESTATUSCITYP#PNAMECOLORWEIGHTCITYS#P#QTY
S1
S2
S3
S4
S5Smith
Jones
Blake
Clark
Adams20
10
30
20
30London
Paris
Paris
London AthensP1
P2
P3
P4
P5
P6Nut
Bolt
Screw
Screw
Cam
CogRed
Green
Blue
Red
Blue
Red12
17
17
14
12
19London
Paris
Rome
London
Paris
LondonS1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5300
200
400
200
100
100
300
400
200
200
300
400
14. Display the name of supplier who is from Paris.
15. Display the name of supplier who is from Paris and whose status is higher or equal to 20.
16. Delete suppliers whose name starts with a D.
17. Display all records of the S in descending order of STATUS and ascending order of SNAME (that is, the supplier of the highest STATUS will be displayed at first, the second highest at the second, etc. Among the supplier of the same status, their names will be sorted alphabetically.)
18. In one SQL command, create a new table named S_LONDON. The S_LONDON table has the same structure as the S table, and it contains supplier records of suppliers who are from London.
19. Can you undo the action of problem 18?
20. Delete the S_LONDON table.
21. Display the names of the suppliers who supply product number P1.
22. Display the name and weight of parts which are supplied by supplier S3.
23. Display the quantity of part "Blue Screw" supplied by supplier S1.
24. Display the quantity of part Green Bolt supplied by supplier Smith.
25. Display the name of suppliers who supply Red Nut.
26. Display names of parts which are supplied by Blake.
27. Display names of all parts which are supplied by suppliers whose status is higher than 25.
28. Display s#, p# pairs of which the supplier and parts are from the same city and the supplier has supplied that part. (You need to use the SP table).
SQL Topic 2. Data Integrity Commands
1. Primary Key Commands
When the pk contains a single columnex:create table t1 (
f1 char(2) primary key, ....
When the pk contains multiple columnsex:create table t2 (
f1 char(2), f2 char(2), f3 char(2),...,
primary key (f1, f2));
ADD new constraints:
alter table t2 add primary key (f1,f2);
DROP constraints:
alter table t2 drop primary key (f1,f2);
2. Foreign Key Commands
1. When the fk contains a single column:create table child (
f1 char(2),
f2 char(2) constraint c1 references parent(f1),
....);create table child (
f1 char(2), f2 char(2),...,
constraint c2 foreign key (f1,f2) references parent(f1,f2)
... );
alter table child add constraint c1
foreign key (f1,f2) references parent(f1,f2));
alter table child drop constraint c1;Exercise 2.1 Primary key and Foreigh Key declaration
COURSE
dept char(4),
code char(3)
title char(10)
credits number(1)
primary key: dept + codeINSTRUCTOR
ssn char(9)
name char(10)
primary key: ssn
SECTIONS
call# char(5)
dept char(4)
code char(3)
sec# char(2)
i_ssn char(9)
primary key: call#
foreign key: (1) (dept,code) references COURSE
(2) i_ssn references INSTRUCTOR
(1) Write SQL statement to create the above 3 tables in sequence with proper primary key and foreign key declarations.
(2) Write SQL statements to delete the above 3 tables in sequence.
SQL Topic 3. Advanced SQL Commands
Group Functions
select group_function(f2) ... from table;
select ... count(field)
select ... sum(field)
select ... avg (field)
select ... distinct(field)
select ... max(field)
select ... min(field)
Example:SQL> select count(pnum) from sp where snum='S1';
COUNT(PNUM)
-----------
6
SQL> select avg(qty) from sp where snum='S1';
AVG(QTY)
---------
216.66667
... Group by and ... Having
select f1, group_function(f2), group_function(f3),... from table
group by f1;
select f1, group_function(f2), group_function(f3),... from table
group by f1
having [group_function related conditions];
select f1, group_function(f2), group_function(f3),... from table
group by f1
having [group_function related conditions]
order by group_function(..);
Examples
SQL> select snum, count(qty) from sp
2 group by snum;
SN COUNT(QTY)
-- ----------
S1 6
S2 2
S3 1
S4 3
SQL> select snum, count(qty) from sp
2 group by snum
3 order by count(qty);
SN COUNT(QTY)
-- ----------
S3 1
S2 2
S4 3
S1 6
SQL> select snum, sum(qty) from sp
2 group by snum;
SN SUM(QTY)
-- ---------
S1 1300
S2 700
S3 200
S4 900
SQL> select snum, sum(qty) from sp
2 group by snum
3 having count(qty)>=2;
SN SUM(QTY)
-- ---------
S1 1300
S2 700
S4 900
Exercise 3.1
1. Display the number of times each supplier supplies parts, sorted by the highest number to the lowest.
2. Display the number of times each supplier supplies parts, sorted by the supplier's number.
3. Display the average quantity each supplier supplies parts.
4. Display the total quantity each supplier supplies parts.
5. Display the total quantity each supplier supplies parts for suppliers who have placed 3 or more times of orders
6. Display the number of times each part has been supplied.
Display the number of times each part has been supplied, sorted by the highest number to the lowest.
7. Display the average quantity that each part has been supplied.
8. Display the total quantity each part has been supplied, sorted by part number.
9. Display the average quantity that each part has been supplied for parts which average quantity order is less than 300.
10. Display the total quantity supplied by S1.
11. Display the overall average quantity supplied.
12. Display the highest and lowest quantity supplied by each supplier.
13. Display suppliers whose average quantity is less or equal to 250.
14. Display suppliers who have the highest average quantity.
SQL Topic 4. Simple Data Dictionary Commands
The user_tables Table
SQL> select table_name from user_tables;TABLE_NAME
------------------------------
C
COUNTER
ENG
G
ORD
P
PRODUCT
......
The USER_TAB_COLUMNS
SQL> SELECT table_name, column_name, data_type from user_tab_columns;
Table
Name COLUMN_NAM DATA_TYPE
---------- ---------- ---------
C CALL# CHAR
C DEPT CHAR
C CODE CHAR
C TITLE CHAR
COUNTER TYPE CHAR
COUNTER MAXNUM NUMBER
ENG SNUM CHAR
ENG SNAME CHAR
G S# CHAR
G CALL# CHAR
G GRADE CHAR
G GRADEPT NUMBER
.....
The user_constraints TableSQL> column owner format a10
SQL> column constraint_name heading 'Cons|Name' format a15
SQL> column constraint_type heading 'Cons|Type' format a15
SQL> column table_name heading 'Table|Name' format a10
SQL> column r_owner format a10
SQL> column r_constraint_name heading 'R|Cons|Name' format a15
SQL>
SQL> select owner, constraint_name, constraint_type, table_name, r_owner, 2 r_constraint_name from user_constraints; R
Cons Cons Table Cons
OWNER Name Type Name R_OWNER Name
---------- --------------- --------------- ---------- ---------- ---------------
SOPHIE SYS_C00403 P ORD
SOPHIE ORDER_PS R ORD SOPHIE SYS_C00400
SOPHIE SYS_C00374 P P
SOPHIE SYS_C00398 P PRODUCT
SOPHIE SYS_C00400 P SP
SOPHIE SP_P R SP SOPHIE SYS_C00398
SOPHIE SP_S R SP SOPHIE SYS_C00399
SOPHIE SYS_C00399 P SUPPLIER
8 rows selected.
Note: P=Primary Key; R=Foreign Key
The USER_CONS_COLUMNS Table
SQL> select owner, constraint_name, table_name, column_name, position 2
from user_cons_columns 3
order by table_name;
OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAM POSITION
---------- --------------- ---------- ---------- ---------
SOPHIE ORDER_PS ORD PNUM 1
SOPHIE ORDER_PS ORD SNUM 2
SOPHIE SYS_C00403 ORD ONUM 1
SOPHIE SYS_C00374 P PNUM 1
SOPHIE SYS_C00398 PRODUCT PNUM 1
SOPHIE SP_P SP PNUM 1
SOPHIE SYS_C00400 SP SNUM 2
SOPHIE SP_S SP SNUM 1
SOPHIE SYS_C00400 SP PNUM 1
SOPHIE SYS_C00399 SUPPLIER SNUM 1
10 rows selected.
SQL Topic 5. Introduction to ORACLE
** Bring a floppy disk to Lab**
Step 1. Log in to ORACLE
Open SQL: Start - Citrix..., in the Citrix window, double-click the Oracle 8.0.5... icon.
Log in: A log in screen appears. Log in to ORACLE by (your username and password will be announced in class)
username
press [tab]
password
press [tab]
host
press [enter]You should see the SQL> prompt now.
Log off: To log-off from Oracle, type exit at the prompt. Another way to exit is to close the window. Make sure you exit Oracle properly.
Step 2. Write SQL commands in a text file
Open Notepad: Choose Start - Programs Accessories NotepadAt the Notepad file, enter the following commands:
now choose File - Save. Specify your filename as a:myprog1.SQL.
Oracle Commands:
set echo on -- this tells Oracle to reprint your commands when running it.
spool a:myprog1.txt -- this tells Oracle to record screen output to the file myprog1.txt on Drive A. The recording stops when the program comes to the spool off command. It is common practice to call your SQL program files .sql and output (spool) file .txt.
drop table stu; -- This is the common practice to delete old, existing tables before your create table... command. Since your account is brand new, this will result in a Table or View Not Exist... error message, which is alright.
Step 3. Run the Program
Go back to the Oracle SQL*Plus window (by clicking anywhere on the window).
To run your program, at the SQL prompt, enter
SQL> start a:myprog1.sql
press [enter]. The program will be executed.
Your output will look something like this:
SQL> spool a:myprog1.txt
SQL>
SQL> drop table stu;
drop table stu
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL>
SQL> create table stu (
2 ssn char(9),
3 name char(10),
4 major char(10));
Table created.
SQL>
SQL> insert into stu values ('111','Andy','IS');
1 row created.
SQL> insert into stu values ('222','Betty','finance');
1 row created.
SQL>
SQL> select * from stu;
SSN NAME MAJOR
--------- ---------- ----------
111 Andy IS
222 Betty finance
SQL>
SQL> Input truncated to 9 characters
spool off
Your execution should look similar to this. Scroll the window up or [PageUp] to check your execution. If you do not see any problems, thats great! You can go directly to Step 5. Otherwise, you need to debug your program. Go to Step 4.
Step 4. Debug the Program
If there is any unintended error message (which is quite normal), you can edit your program file and run it again (this process is called debugging). Go to the Notepad window and check if there is any typos. Repeat Step 3 to run it again. Do this until there is no error.
Step 5. View and Print your spool file
with the spool a:myprog1.txt command, your screen output is now captured in the file a:myprog1.txt.
To view it, go to Notepad and choose File Open ..., and open a:myprog1.txt. You will see the screen output of your a:myprog1.sql program.
If you want to print it, choose File-Print
** This is the way that you will turn in most of the homework.
Step 6. Write and Run another program
Lets write another Oracle program which would query the STU table that you just created.
Go to Notepad and choose File New.
At the Notepad file, enter the following commands:
/* Program 2. Query the STU table */
set echo on
spool a:myprog2.txt
select * from stu;
select name from stu where major='IS';
insert into stu values ('333','Cindy','IS');
commit;
select name from stu where major='IS';
spool off
now choose File - Save. Specify the new file name to be a:myprog2.sql.
Go back to Oracle SQL*Plus.
To run your program, at the SQL prompt, enter
SQL> start a:myprog2.sql
press [enter], and see what happens.
with the spool a:myprog2.txt command, your screen output is now captured in the file a:myprog2.txt.
To view it, go to Notepad and choose File Open ..., and open a:myprog2.txt. You will see the screen output of your a:myprog2.sql program.
If you want to print it, choose File-Print
Step 7. Write Commands Directly at the SQL> Prompt
You can also write commands directly at the SQL> prompt.
At the SQL> prompt, write
SQL> select * from stu;Press [Enter], and see the command being executed.
Note: Usually people write commands in a text file so they can be executed together. The program is sometimes called a "script". If you have several commands that you are likely to rerun them in your future, it is better to write them in a script file so you do not have to type them over and over again. However, if you just want to check something quickly, you can enter the command directly at the SQL> prompt.
Exercise 5.1
Make sure you can do the following without any problem.
1. Write the following SQL codes in a myprog3.sql file. Make sure you have set echo on in the beginning of the file. Also, spool your output to a file named myprog3.txt.
select * from stu;
select * from stu where ssn=333;
select ssn, name from stu where ssn=333;
2. Run myprog3.sql until there is no error.
3. View the content of myprog3.txt.Exercise 5.2
Copy the SUPPLIER, PARTS, and SP tables from my account by the following commands:
SQL> create table supplier as select * from sophie.supplier;Table created.
SQL> create table parts as select * from sophie.parts;
Table created.
SQL> create table sp as select * from sophie.sp;Table created.
Answer questions of Exercise 3.1 using the 3 tables.
SQL Topic 6. SQL*Plus Input/Output Commands
prompt promptex.prompt
prompt Processing.... please wait....
prompt ----------- Please Detach Along This Line ----------------
pause promptex.pause Please press [Enter] to continue ...
accept variable prompt 'prompt';
ex.
accept amount prompt 'Please enter the amount: ';
accept cnum prompt 'Please enter the Customers Number: ;
'&variable'&variable
select 'text', f1, f2, ... from t where [conditions];
select text from t where [conditions];
ex.select 'Customer Name: ', cname from customer where cnum='&cnum';
ex. select The Order Has Been Processed! from transaction where tran# is not null;File Structure
SQL> select * from s;
S# SNAME STATUS
--- ---------- ----------
001 John Senior
002 Mary Junior
003 Joe Senior
004 Jim Sophomore
Run Time Behavior
SQL> start 3.5
*--- Welcome to the Student Information Program ---*
Please Enter the Student ID: 001
The Student Name is: John
The Student is a Senior
Press [Enter] to continue...
SQL>
Oracle Code
set feedback off
set echo off
set verify off
set heading off
prompt
prompt *--- Welcome to the Student Information Program ---*
prompt
prompt
accept xsnum prompt 'Please Enter the Student ID: ';
select 'The Student Name is: ', sname from s
where s#='&xsnum';
select 'The Student is a ', status from s
where s#='&xsnum';
pause Press [Enter] to continue...
Exercise 6.1
Write the SQL code to do the following:
1. System prompts
Welcome to the Registration System
2. System prompts
Please enter the Student's ID:
and read the student ID (variable name is sid)
3. System displays the student's name according to the sid entered by the user.
4. System skips 2 empty lines
5. System prompts
Are you sure? ** Press [Enter] to continue or [ctrl][c] twice to abort...
and pause
Exercise 5.2
1. System prompts
New Student ID:
and read the student ID (variable name is newid)
2. System prompts
New Student Name:
and read the student's name (variable name is newname)
3. System inserts new ID and new name into the STUDENT table
4. The system prompts
The following record has been inserted:
and displays the new student's ID and name.
SQL Topic 7. SQL Built in Functions
Please refer to PL/SQL Programming Chapter 5
select 1+2 from dual;
Character Functions
A||B or concat(A,B)
ex: select Student Name is: ||sname from STUDENT;
initcap(gOOd morNING) returns
lower(gOOd morNING) returns
upper(gOOd morNING) returns
lpad(0011-12110, 20, X) returns
rpad(0011-12110, 20,X) returns
ltrim(0011-12110) returns
ltrim(0011-12110, 0) returns
rtrim(0011-12110) returns
rtrim(0011-12110, 0) returns
substr(0011-12110,5,3) returns
instr(0011-12110,-) returns
length(0011-12110) returns
Numeric Functions
ceil(3.45) returns
floor(3.45) returns
mod(9/4) returns
round(123.45) returns
round(123.65) returns
round(123.45,1) returns
round (123.45,-1) returns
trunc(123.45) returns
trunc(123.65) returns
Date Functions
sysdate returns
sysdate - 1 returns
sysdate + 1 returns
sysdate - My_Date_of_Birth returns
round(sysdate) returns
trunc(sysdate) returns
to_char(sysdate, mm/dd/yyyy) returns
to_char(sysdate, dd/mm/yyyy) returns
to_date(10/01/2000,mm/dd/yyyy) returns
to_date(10/01/2000,dd/mm/yyyy) returns
Other Functions
decode(grade,A,4,B,3,C,2,D,1,F,1,Not a Valid Grade)
If grade = C, the above statement will return
greatest(3, 20, 18, 4) returns
least(3, 20, 18, 4) returns
NVL
nvl(grade, No Grade Assigned)
nvl(price, 0)
select units * price from transactions where....
select nvl(units, 0) * nvl(price, 0) from transaction where...
USER
insert into Trans_Audit (user, sysdate, ....);
Others
rownum
select * from transaction
where rownum < 10
order by amount desc;
in
select sname from student where major in (IS,Finance);
Create Sequence
create sequence transaction_number start with 10000;
insert into trans values (transaction_number.nextval, ......);
select Transaction_Number.currval from dual;
Exercise 7.1
1. What does the following code return?
SELECT decode (Core_Num, 00000000, NULL, Core_Num) from Product;
2. What does the following code return?
select substr(Part_Number, 1, instr(Part_Number,-)-1) from Product;
3. What does the following command return?
SELECT DECODE (NVL(Core_Num,'00000000'),'00000000',0,Unit_Price)
FROM product;
4. Write one SQL statement to display the last character of a students last name. (LASTNAME is a column of the STUDENT table).
5. The student table has three columns: SSN, LASTNAME, and USERNAME. A students username starts with the letter Z, followed by the first 2 letters of his last name, and the last 4 digits of his SSN. Currently the USERNAME column is null. Write one SQL statement to populate the USERNAME column.
6. (In addition to requirements of the previous question) If a student does not have a SSN, then leave the USERNAME value NULL. Write one SQL statement to populate the USERNAME column.
7. Write one SQL statement to display the last 2 digits of Prod_Number; if Prod_Number is NULL, then display XX.
8. The CUSTOMER table has three columns: ACCOUNT_NUMBER, PREFIX, and SUFFIX. There is always a - in the account number, but the position differs by customer. Prefix is the portion of the account number before the - and suffix is the portion after the -. Write one SQL command to populate the prefix and suffix columns.
9. Write a SQL command so that if UNIT_PRICE is null, display -1; if it is 0, display -2; for anything else, display -3. (UNIT_PRICE is a column of the PRODUCT table).
Topic 8. Subqueries
SELECT...
UPDATE...
DELETE...
where snum = (select snum from .... where....);
SELECT...
UPDATE...
DELETE...
where snum in (select snum from .... where....);
Exercise 8.2
1. Upgrade supplier status to 30 for suppliers who have supplied more than 500 units of parts.
2. Upgrade supplier status by 5 (i.e., if it was 10 before, than upgrade it to 15; if it was 15 before than upgrade it to 20, etc.) for suppliers who have supplied more than 500 units of parts.
3. Upgrade supplier status to 5 for suppliers who have supplied parts to 2 or more cities.
4. Display the total quantity each supplier supplies parts for suppliers who have placed 3 or more times of orders
5. Display supplier who supplies the most average quantity.
Union, Intersect, Minus
select column, column, column, ..... from table
UNION
select column, column, column, .... from table;
select column, column, column, ..... from table
INTERSECT
select column, column, column, .... from table;
select column, column, column, ..... from table
MINUS
select column, column, column, .... from table;
STUDENTENROLLCOURSE
SNUMSNAMESNUMCALLNUMGRADECALLNUMCOURSESECTIONSEMESTER
1111
2222
3333Andy
Betty
Cinty
....
1111
1111
2222
2222
1111
1111
1111
2222
........
10110
10125
10110
10130
10135
10140
10155
10160
........
F
F
A
A10110
10115
10120
10125
10130
10135
10140
10150
10155
10160IS 380
IS 380
IS 480
IS 385
IS 385
IS 380
IS 380
IS 380
IS 385
IS 4801
2
1
1
2
1
2
3
1
1Sp 2000
Sp 2000
Sp 2000
Sp 2000
Sp 2000
Fa 2000
Fa 2000
Fa 2000
Fa 2000
Fa 2000
Exercise 8.3
1. In one command, display the number of students who got A, B, C, D, and Fs in IS 380 class (callnum 10110).
2. In one command, display the number of students who got A, B, C, D, and Fs of all IS 380 classes in Spirng 2000.
3. Display enrollment by callnum.
4. Display enrollment by course, semester.
5. Display enrollment by semester.
6. Display how many courses student 1111 has enrolled in Fall 2000.
7. Display number of sections each class has offered in Fall 2000.
8. Display the number of times Andy has enrolled in IS 380.
9. Display the highest grade that Andy has ever received on IS 380.
10. Display number of times that Andy has taken each course.
11. Display courses that Andy has taken for 2 or more times.
12. Display students who have taken any classes 2 or more times.
13. Display courses where there is any NULL grade.
14. Displays students who are in both IS 380 and IS 385.
15. Display courses that have 2 or more students enrolled.
16. Display courses where no student has enrolled.
17. Display student who are currently enrolled in multiple sections of the same course.
Homework 1. Advanced SQL
Due Date:
Part I.
1. Identify the Primary Key and Foreign Keys of the STUDENT, ENROLL, and COURSE tables.
2. Write a program create.sql that creates the three tables STUDENT, ENROLL, and COURSE in the correct sequence with appropriate primary key and foreign key declaration.
3. Make sure you set echo on and spool. Run create.sql until there is no error. Turn in a print out of your spool file.
Part II.
Assume you have entered data in the three tables.
3. Write a program query.sql that answers the questions
of Exercise 5.3.
4. Make sure you set echo on and spool. Run query.sql until there is no error. Turn in a print out of your spool file.
30