You are on page 1of 82

NANDHA ENGINEERING COLLEGE

Perundurai Main Road, Erode-638 052.


















DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING



CS2258 DATABASE MANAGEMENT SYSTEM
LABORATORY




LAB MANUAL





SUBMITTED BY :

NAME :_________________________________

REG NO: _________________________________







CS 2258DATA BASE MANAGEMENT SYSTEM LAB L T P C
0 03 2
1. Data Definition, Table Creation, Constraints,
2. Insert, Select Commands, Update & Delete Commands.
3. Nested Queries & Join Queries
4. Views
5. High level programming language extensions (Control structures, Procedures and
functions).
6. Front end tools
7. Forms
8. Triggers
9. Menu Design
10. Reports.
11. Database Design and implementation (Mini Project).
(Common to Information Technology & Computer Science Engineering)
Hardware and Software required for a batch of 30 students:
Hardware:
30 Personal Computers
Software:
Front end: VB/VC ++/JAVA
Back end: Oracle 11g, my SQL, DB2
Platform: Windows 2000 Professional/XP
Oracle server could be loaded and can be connected from individual PCs.




3


INDEX



Ex.No. DATE TITLE OF THE EXPERIMENT
PAGE
MARKS REMARKS

NO.





DATA DEFINITION LANGUAGE

1. COMMANDS



DATA MANIPULATION

2. LANGUAGE COMMANDS



3.
INTEGRITY CONSTRAINTS




NESTED QUERIES AND JOIN

4. QUERIES



5. VIEWS



6. TRIGGERS



PROCEDURAL LANGUAGE

7.
&STRUCTURED


QUERY LANGUAGE





8.
FRONT END TOOLS




9.
FORMS




10.
MENU DESIGN




11.
REPORTS




STUDENT MANAGEMENT

12. SYSTEM



AVERAGE MARKS AWARDED




4


Ex.No.1 DATA DEFINITION LANGUAGE COMMANDS

Date:

AIM:

To write and execute DDL commands in SQL.



a) Create table.
b) Alter table.
c) Truncate table.
d) Drop table.
e) Desc(to view the structure of the table)


DESCRIPTION:

a) CREATE

This command is used to create a table with the required fields.

Syntax:

create table <table_name> (<column_name><datatype with size>,
<column_name><datatype with size>.);


SQL> create table stud (sname varchar2(30), sid varchar2(10), sage number(2),
sarea varchar2(20));


Table created.



SQL> desc stud;
Name Null? Type
----------------------------------------------------- -------- --------------------------------
SNAME VARCHAR2(30)
SID VARCHAR2(10)
SAGE NUMBER(2)
SAREA VARCHAR2(20)
5


b) ALTER

This command is used to modify an existing attribute or to add a new attribute.

Syntax:

Alter table <table_name>modify( column de

Alter table <table_name> add (column defin

Alter table <table_name> drop column column_name;

SQL>alter table stud modify ( sage number(10));

Table altered.


SQL> alter table stud add ( sdept varchar2(20));

Table altered.


SQL> desc stud;
Name Null? Type
----------------------------------------------------- -------- --------------------------------
SNAME VARCHAR2(30)
SID VARCHAR2(10)
SAGE NUMBER(10)
SAREA VARCHAR2(20)
SDEPT VARCHAR2(20)
SQL> alter table stud drop ( sdept varchar2(20));
Table altered.
SQL> desc stud;
Name Null? Type
----------------------------------------------------- -------- ------------------------------------
SNAME VARCHAR2(30)
SID VARCHAR2(10)
SAGE NUMBER(10)
SAREA VARCHAR2(20)
6


c) TRUNCATE

This command is to remove the records in the table and to retain the structure of the
table. By adding the REUSE STORAGE clause at the end of the truncate table command,
the allocated memory space can be reclaimed.

Syntax:

Truncate table <table_name>;

Truncate table <table_name> reuse storage;

SQL> truncate table stud;

Table truncated.

SQL> desc stud;

Name Null? Type
----------------------------------------------------- -------- ------------------------------------
SNAME VARCHAR2(30)
SID VARCHAR2(10)
SAGE NUMBER(10)
SAREA VARCHAR2(20)


d) DROP

This command is to drop a table. It deletes both records and the structure of the table.

Syntax:

Drop table <table_name>;

SQL> drop table
stud; Table dropped.

e) DESC or DESCRIBE

This command is to view the structure of the table at any point of time

Syntax:

Desc <table_name>;



RESULT

Thus the DDL commands were implemented and the output was verified.
7


Ex.No.2 DATA MANIPULATION LANGUAGE COMMANDS

Date:




AIM:
To study the various categories of DML commands such as logical operations, aggregate
functions, string functions, numeric functions, date functions, conversion functions and group
functions, set operations.

DESCRIPTION

THE ORACLE TABLE DUAL
Dual is a small oracle table which consists of only one row and one column and contains
the value X in that column.

INSERT

This command is used to insert the records into the already created table.

Syntax:

Insert into table_name values ( a list of data values );

Insert into table_name values(&column1,


Insert into table_name(column names) values (list of values);

SELECT

This command is to retrieve the data stored in the tables.

Syntax:

Select * from table_name;

Select column_name from table_name;

Select column_name from table_name where <condition>;

UPDATE

This command is used to reflect the changes to the records.

Syntax:

Update table_name set field_name=value where <condition>;
8


DELETE

This command is used to delete unwanted records in the table.

Syntax:

Delete from table_name;

Delete from table_name where <condition>;

RENAME

This command renames the name of the table.

ARITHMETIC OPERATIONS

Various operations such as addition, multiplication, subtraction and division can be
performed using the numbers available in the table.

DISTINCT

This keyword is used along with select keyword to display unique values from the
specified column. It avoids duplicates during display.


ORDER BY CLAUSE

The order by clause arranges the contents of the table in ascending order (by default)
or in descending order (if specified explicitly) according to the specified column.

CONCATENATION OPERATOR

This combines information from two or more columns in a sentence according to the
format specified.

LOGICAL OPERATORS

AND:The oracle engine will process all rows in a table and displays the result only when
allof the conditions specified using the AND operator are specified.
ORThe :oracle engine will process all rows in a table and displays the result only when
anyof the conditions specified using the OR operators are satisfied.
NOTThe oracle: engine will process all rows in a table and displays the result only
whennone of the conditions specified using the NOT operator are specified.
BETWEENInorder:to select data that is within a range of values, the between operator isused.
(AND should be included)
9


PATTERN MATCH

LIKE PREDICATETheuseoflike predicate: is that it allows the comparison of one
stringvalue with another string value, which is not identical. This is achieved by using wildcard
characters which are % and _. The purpose of % is that it matches any string and _ matches any
single character.
IN AND NOT IN ThePREDICATEarithmeticoperator =:compares a single value
toanother single value. In case a value needs to be compared to a list of values then the in
predicate is used.The not in predicate is the opposite of the in predicate. This will select all the
rows whose values do not match all of the values in the list.

NUMERIC FUNCTIONS

ABS: It returns. the absolute value of n POWER: It returns m raised to nthturned . power. n
ROUND: It returns n rounded to m places ri rounded to zero places. m must be an integer.


SQRT: It returns square root of n. n should

STRING FUNCTIONS

LOWER: It returns char with letters in lowe INITCAP: It returns char with the first let
UPPER: It returns char with all letters for SUBSTR: It returns a portiong upofton characters.
If beginn n is omitted result is written up to the end character. The 1st position of char is one.


LENGTH: It returns the length of char LTRIM: It removes characters from the left

1st character not in set.
RTRIM: It returns char with final character is optional. It defaults to spaces.

LPAD: It returns char1, left padded to leng defaults to blanks.

RPAD: It returns char1, right padded to le many times as necessary.
If char2 is omitted, it is padded with blanks.

AGGREGATE FUNCTIONS

AVG (N): It returnsnoringnull averagevalues. value of n ig MIN (EXPR): It returns minimum value of the
COUNT (EXPR): It returns the number of rows COUNT (*): It returns the number of rows in null values.


MAX (EXPR): It returns maximum value of the SUM(N): It returns sum of values of n.


10


CONVERSION FUCTIONS

TO_NUMBER(CHAR): It converts the char value data type.

TO_CHAR(N,FMT): It converts a value of numb the optional format string.
It accepts a number n and a numeric format fmt in which the number
has to appear. If fmt is omitted, n is converted to a char value exactly long enough to hold
significant digits.
TO_CHAR(DATE, FMT): It converts a value of well as the format in which the date has to appear.
Fmt must be a date format. If fmt is omitted,
date is the default date format.

DATE FUNCTIONS

SYSDATE : The sysdate is a pseudo column th no arguments when selected from the table dual and
returns the current date.
ADD_MONTHS(D,N): It returnsnumberofmonthsdatespecified afterwiththe add function.

LAST_DAY(D): It returns the last date of th MONTHS_BETWEEN(D1,D2): It returns number of
NEXT_DAY(DATE, CHAR): Itstweekreturnsdaynamedby charthe.char date must be a day of the week.



GROUP BY CLAUSE

The group by clause is another section of the select statement. This optional class tells
oracle to group rows based on distinct values that exists for specified columns.

HAVING CLAUSE

The having clause can be used in conjunction with the group by clause. Having imposes a
condition on the group by clause, which further filters the groups created by the group by clause.

SET OPERATIONS



UNION CLAUSE: Multiple queries can be put together and their output combined using the
union clause. The union clause merges the output of two or more queries into a single set of
rows and columns.

SET DIFFERENCE CLAUSE: Set difference returns all distinct rows selected only by the first query
and not by the second.

INTERSECT CLAUSE: Multiple queries can be put together and their output can be
combined using the intersect clause. The intersect clause outputs only rows produced by
both the queries intersected. The output in an intersect clause will include only those
rows that are retrieved by both the queries.


11


COMMANDS

CREATION OF TABLE

SQL> create table stud(sname varchar(15),sid varchar(5),sage number(5),sarea
varchar(10),sdept varchar(10));

Table created.

INSERTION OF VALUES INTO THE TABLE

SQL> insert into stud values('&sname','&sid',&sage,'&sarea','&sdept'));

Enter value for sname: anu

Enter value for sid: 101

Enter value for sage: 19

Enter value for sarea: santhome

Enter value for sdept: cse

old 1: insert into stud values('&sname','&sid',&sage,'&sarea','&sdept')

new 1: insert into stud values('anu','101',19,'santhome','cse')

1 row created.



SQL> /

Enter value for sname: bala

Enter value for sid: 102

Enter value for sage: 18

Enter value for sarea: adayar

Enter value for sdept: marine

old 1: insert into stud values('&sname','&sid',&sage,'&sarea','&sdept')

new 1: insert into stud values('bala','102',18,'adayar','marine')

1 row created.
12


SQL> /

Enter value for sname: praveen

Enter value for sid: 103

Enter value for sage: 20

Enter value for sarea: santhome

Enter value for sdept: aerospace

old 1: insert into stud values('&sname','&sid',&sage,'&sarea','&sdept')
new 1: insert into stud values('praveen','103',20,'santhome','aerospace')

1 row created.



SQL> /

Enter value for sname: sabari

Enter value for sid: 104

Enter value for sage: 20

Enter value for sarea: tnagar

Enter value for sdept: civil

old 1: insert into stud values('&sname','&sid',&sage,'&sarea','&sdept')

new 1: insert into stud values('sabari','104',20,'tnagar','civil')

1 row created.



RENAMING THE TABLE STUD



SQL> rename stud to stud1;



Table renamed.
13


SQL> select * from stud1;



SNAME SID SAGE SAREA SDEPT
--------------- ----- ---------- ---------- ----------
anu 101 19 santhome cse
bala 102 18 adayar marine
praveen 103 20 santhome aerospace
sabari 104 20 tnagar civil



ARITHMETIC OPERATION

SQL> select sname,sid+100 "stid" from stud1;

SNAME stid

--------------- ----------

anu 201

bala 202

praveen 203

sabari 204

CONCATENATION OPERATOR

SQL> select sname || ' is a ' || sdept || ' engineer.' AS "PROFESSION" from stud1;

PROFESSION

-----------------------------------------

anu is a cse engineer.

bala is a marine engineer.

praveen is a aerospace engineer.

sabari is a civil engineer.
14


DISPLAY ONLY DISTINCT VALUES

SQL> select distinct sarea from stud1;

SAREA
----------
adayar

santhome

tnagar

USING THE WHERE CLAUSE

SQL> select sname,sage from stud1 where sage<=19;

SNAME SAGE
--------------- ----------

anu 19

bala 18

BETWEEN OPERATOR

SQL> select sname,sarea,sid from stud1 where sid between 102 and 104;

SNAME SAREA SID
--------------- ---------- -----
bala Adayar 102
praveen santhome 103
sabari Tnagar 104

IN PREDICATE

SQL> select sname,sarea,sid from stud1 where sid in(102,104);

SNAME SAREA SID
--------------- ---------- -----
bala Adayar 102
sabari Tnagar 104
15


PATTERN MATCHING

SQL> select sname,sarea from stud1 where sarea like '%t%';

SNAME SAREA

--------------- ----------

anu santhome

praveen santhome

sabari tnagar

LOGICAL AND OPERATOR

SQL> select sname,sid from stud1 where sid>102 and sarea='santhome';

SNAME SID
--------------- -----
praveen 103

LOGICAL OR OPERATOR

SQL> select sname,sid from stud1 where sid>102 or sarea='santhome';

SNAME SID
--------------- -----
anu 101
praveen 103
sabari 104

NOT IN PREDICATE

SQL> select sname,sid from stud1 where sid not in(102,104);

SNAME SID

--------------- -----

anu 101

praveen 103
16


UPDATING THE TABLE
SQL> alter table stud1 add(spocket varchar(5));
Table altered.
SQL> update stud1 set spocket=750 where sid=101;
1 row updated.
SQL> update stud1 set spocket=500 where sid=102;
1 row updated.
SQL> update stud1 set spocket=250 where sid=103;
1 row updated.
SQL> update stud1 set spocket=100 where sid=104;
1 row updated.
SQL> select * from stud1;
SNAME SID SAGE SAREA SDEPT SPOCKET
--------------- ----- ---------- ---------- ---------- -----
anu 101 19 santhome cse 750
bala 102 18 adayar marine 500
praveen 103 20 santhome aerospace 250
sabari 104 20 tnagar civil 100



AGGREGATE FUNCTIONS

SQL> select avg(spocket) result from stud1;

RESULT

----------

400
17


SQL> select min(spocket) result from stud1;

RESULT
-----
100

SQL> select count(spocket) result from stud1;

RESULT
----------
4

SQL> select count(*) result from stud1;


RESULT
----------

4

SQL> select count(spocket) result from stud1 where sarea='santhome';

RESULT
----------
2


SQL> select max(spocket) result from stud1;


RESULT
----------
750


SQL> select sum(spocket) result from stud1;


RESULT
----------
1600
18


NUMERIC FUNCTIONS

SQL> select abs(-20) result from dual;

RESULT
----------
20

SQL> select power(2,10) result from dual;

RESULT
-----------
1024

SQL> select round(15.359,2) result from dual;

RESULT
-----------
15.36

SQL> select sqrt(36) result from dual;

RESULT
----------
6

STRING FUNCTIONS

SQL> select lower('ORACLE') result from dual;

RESULT
-----------
oracle

SQL> select upper('oracle') result from dual;

RESULT
-----------
ORACLE

SQL> select initcap('oracle') result from dual;

RESULT
----------

Oracle
19


SQL> select substr('oracle',2,5) result from dual;

RESULT
-----------
Oracle


SQL> select lpad('oracle',10,'#') result from dual;

RESULT
----------
####oracle

SQL> select rpad('oracle',10,'$') result from dual;

RESULT
----------
oracle$$$$



CONVERSION FUNCTIONS

SQL> update stud1 set sage=to_number(substr(118,2,3));

4 rows updated.

SQL> select * from stud1;

SNAME SID SAGE SAREA SDEPT SPOCKET
--------------- ----- ---------- ---------- ---------- -------------
anu 101 18 santhome cse 750
bala 102 18 adayar marine 500
praveen 103 18 santhome aerospace 250
sabari 104 18 tnagar civil 100



SQL> select to_char(17145,'099,999') result from dual;

RESULT
-----------
017,145
20


SQL> select to_char(sysdate,'dd-mon-yyyy') result from dual;

RESULT
-----------
03-mar-2012

DATE FUNCTIONS
SQL> select sysdate from dual;

SYSDATE
-------------
03-MAR-12

SQL> select sysdate,add_months(sysdate,4) result from dual;

SYSDATE RESULT
------------- -----------
03-MAR-12 03-JUL-12

SQL> select sysdate,last_day(sysdate) result from dual;

SYSDATE RESULT
------------- ------------
03-MAR-12 31-MAR-12

SQL> select sysdate,next_day(sysdate,'sunday') result from dual;

SYSDATE RESULT
------------- ---------

03-MAR-12 04-MAR-12

SQL> select months_between('09-aug-91','11-mar-90') result from dual;

RESULT
----------
16.9354839

GROUP BY CLAUSE

SQL> select sarea,sum(spocket) result from stud1 group by sarea;

SAREA RESULT
---------- ----------
adayar 500
santhome 1000
tnagar 100
21


HAVING CLAUSE

SQL> select sarea,sum(spocket) result from stud1 group by sarea having sum(spocket)<600;

SAREA RESULT
---------- ----------
adayar 500

tnagar 100

DELETION

SQL> delete from stud1 where sid=101;

1 row deleted.

SQL> select * from stud1;

SNAME SID SAGE SAREA SDEPT SPOCKET
---------- ----- ---------- ---------- ---------- -----
bala 102 18 adayar marine 500
praveen 103 18 santhome aerospace 250
sabari 104 18 tnagar civil 100



SET OPERATIONS

TO CREATE PRODUCT TABLE

SQL> create table product(prodname varchar(10),prodno varchar(10));

Table created.

SQL> insert into product values('table',10001);

1 row created.

SQL> insert into product values('chair',10010);

1 row created.

SQL> insert into product values('desk',10110);

1 row created.
22



SQL> insert into product values('cot',11110);
1 row created.

SQL> insert into product values('sofa',10010);
1 row created.

SQL> insert into product values('tvstand',11010);
1 row created.

SQL> select * from product;

PRODNAME PRODNO
------------------ ------------
table 10001

chair 10010

desk 10110

cot 11110

sofa 10010

tvstand 11010

6 rows selected.

TO CREATE SALE TABLE

SQL> create table sale(prodname varchar(10),orderno number(5),prodno
varchar(10)); Table created.


SQL> insert into sale values('&prodname',&orderno,'&prodno');

Enter value for prodname: table

Enter value for orderno: 801

Enter value for prodno: 10001

old 1: insert into sale values('&prodname',&orderno,'&prodno')

new 1: insert into sale values('table',801,'10001')

1 row created.
23


SQL> /
Enter value for prodname: chair
Enter value for orderno: 805
Enter value for prodno: 10010

old 1: insert into sale values('&prodname',&orderno,'&prodno')

new 1: insert into sale values('chair',805,'10010')

1 row created.
SQL> /

Enter value for prodname: desk

Enter value for orderno: 809

Enter value for prodno: 10110

old 1: insert into sale values('&prodname',&orderno,'&prodno')

new 1: insert into sale values('desk',809,'10110')

1 row created.
SQL> /

Enter value for prodname: cot

Enter value for orderno: 813

Enter value for prodno: 11110

old 1: insert into sale values('&prodname',&orderno,'&prodno')

new 1: insert into sale values('cot',813,'11110')

1 row created.

SQL> /

Enter value for prodname: sofa

Enter value for orderno: 817

Enter value for prodno: 10010

old 1: insert into sale values('&prodname',&orderno,'&prodno')

new 1: insert into sale values('sofa',817,'10010')

1 row created.
24


SQL> select * from sale;
PRODNAME ORDERNO PRODNO
----------------- -------------- -----------
table 801 10001
chair 805 10010
desk 809 10110
cot 813 11110
sofa 817 10010

SQL> select prodname from product where prodno=10010 union select prodname from
sale where prodno=10010;

PRODNAME
----------------

chair

sofa

SQL> select prodname from product where prodno=11110 intersect select prodname from sale
where prodno=11110;

PRODNAME
-----------------
cot

SQL> select prodname from product where prodno=11010 minus select prodname from sale
where prodno=11010;

PRODNAME
-----------------
Tvstand









RESULT


Thus all the DML commands were executed and the output was verified.
25


EX No. 3 INTEGRITY CONSTRAINTS

Date:



AIM:

To study the various constraints available in the SQL query language.

DESCRIPTION

INTEGRITY CONSTRAINTS

It is a mechanism used to prevent invalid data entry into table.

TYPES

1. Domain integrity constraints

2. Entity integrity constraints

3. Referential integrity constraints

DOMAIN INTEGRITY CONSTRAINTS

A domain is a set of values that may be assigned to an attribute. All values that appear
in a column of a relation must be taken from the same domain.

TYPES

1. Not null constraint

2. Check constraint

NOT NULL CONSTRAINT:

It is used to enforce that the particular column will not accept null values.

CHECK CONSTRAINT:

It is used to specify the conditions that each row must satisfy.

Note: Not null and check constraints are column level constraints.
26


ENTITY INTEGRITY CONSTRAINTS

The entity integrity constraints states that no primary key value can be null. This is
because the primary key value is used to identify individual tuples in a relation; having null
values for the primary key implies that we cannot identify some tuples.

TYPES
1. Unique constraint
2. Primary key constraint

UNIQUE CONSTRAINT:

Unique constraint is used to prevent duplication of values, but it allows null value for
the column.

PRIMARY KEY CONSTRAINT:

This is used to prevent duplication of values and it will not allow null value for
the column.

REFERENTIAL INTEGRITY

Ensures that a value appears in one relation for a given set of attributes also appears for
a certain set of attributes in another relation.

This condition is called referential integrity.

Foreign key can be specified as part of the SQL creates table statement by using
the foreign key values.

DOMAIN INTEGRITY CONSTRAINTS

NOT NULL CONSTRAINT

SQL> create table empl(ename varchar(15) not null,eid varchar(15) not null);
Table created.

SQL> insert into empl
values('anu',11); 1 row created.

SQL> insert into empl values('kumar',12);
1 row created.
27


SQL> insert into empl values('suda',null);

insert into empl values('suda',null)
*
ERROR at line 1:

ORA-01400: cannot insert NULL into ("SCOTT"."EMPL"."EID")


SQL> insert into empl values(null,13);
insert into empl values(null,13)
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SCOTT"."EMPL"."ENAME")

SQL> select * from empl;

ENAME EID
------------ ----------
anu 11
kumar 12

CHECK AS A COLUMN CONTRAINT

SQL> create table dept1(dname varchar(10) not null,did number(5) not null check(did<10000));

Table created.

SQL> insert into dept1
values('sales',9876); 1 row created.

SQL> insert into dept1
values('purchase',5432); 1 row created.

SQL> insert into dept1 values('accounts',78956);
insert into dept1 values('accounts',78956)
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.SYS_C003013) violated

SQL> select * from dept1;

DNAME DID
---------- ----------
sales 9876
purchase 5432
28


CHECK AS A TABLE CONSTRAINT

SQL> create table airport(aname varchar(15) not null,aid number(5) not null,acity
varchar(15),check(acity in('chennai','hyderabad','bangalore')));

Table created.
SQL> insert into airport
values('national',100,'chennai'); 1 row created.

SQL> insert into airport
values('gandhi',101,'hyderabad'); 1 row created.

SQL> insert into airport
values('shiva',102,'bangalore'); 1 row created.

SQL> insert into airport values('keshav',103,'mumbai');
insert into airport values('keshav',103,'mumbai')
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.SYS_C003016) violated

SQL> select * from airport;
ANAME AID ACITY
--------------- ---------- ---------------
national 100 chennai
gandhi 101 hyderabad
shiva 102 bangalore



ENTITY INTEGRITY CONSTRAINTS

UNIQUE AS A COLUMN CONSTRAINT

SQL> create table book(bname varchar(15) not null,bid number(6) not null
unique); Table created.

SQL> insert into book values('fairy tales',1000);
1 row created.

SQL> insert into book values('you can win',1001);
1 row created.
29



SQL> insert into book values('comics',1001);
insert into book values('comics',1001)
*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C003019) violated

SQL> select * from book;

BNAME BID
--------------- ----------
fairy tales 1000
you can win 1001

UNIQUE AS A TABLE CONSTRAINT

SQL> create table orders(oname varchar(10) not null,oid number(10) not
null,unique(oname,oid));

Table created.
SQL> insert into orders
values('chair',2005); 1 row created.

SQL> insert into orders
values('table',2006); 1 row created.

SQL> insert into orders
values('chair',2007); 1 row created.

SQL> insert into orders values('chair',2005);
insert into orders values('chair',2005)
*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C003022) violated

SQL> select * from orders;


ONAME OID
---------- ----------

chair 2005

table 2006

chair 2007
30


PRIMARY KEY AS A COLUMN CONSTRAINT

SQL> create table cust(cname varchar(10) not null,cid number(5) not null primary key);

Table created.

SQL> insert into cust values('jones',506);

1 row created.

SQL> insert into cust values('hayden',508);

1 row created.

SQL> insert into cust values('ricky',506);

insert into cust values('ricky',506)

*

ERROR at line 1:

ORA-00001: unique constraint (SCOTT.SYS_C003025) violated

SQL> select * from cust;

CNAME CID
---------- ----------

jones 506

hayden 508

PRIMARY KEY AS A TABLE CONSTRAINT

SQL> create table branch(bname varchar(10) not null,bid number(5) not null, primary
key(bname,bid));

Table created.

SQL> insert into branch
values('santhome',1005); 1 row created.

SQL> insert into branch
values('adyar',1006); 1 row created.

SQL> insert into branch
values('santhome',1007); 1 row created.

31


SQL> insert into branch values('santhome',1005);

insert into branch values('santhome',1005)

*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C003028)
violated SQL> select * from branch;

BNAME BID
---------- ----------
santhome 1005
adyar 1006
santhome 1007

REFERENTIAL INTEGRITY CONSTRAINTS

SQL> create table depts(city varchar(15),dno number(5) primary key);
Table created.

SQL> insert into depts values('chennai',11);
1 row created.

SQL> insert into depts
values('hyderabad',22); 1 row created.

SQL> create table semp(ename varchar(15),dno number(5) references
depts(dno)); Table created.

SQL> insert into semp
values('x',11); 1 row created.

SQL> insert into semp
values('y',22); 1 row created.

SQL> select * from semp;

ENAME DNO
--------------- ----------
x 11
y 22

SQL> alter table semp add(eaddress varchar(10));

Table altered.
32


SQL> update semp set eaddress='10 RK ROAD' where dno=11;

1 row updated.

SQL> update semp set eaddress='12 MG ROAD' where dno=22;

1 row updated.

SQL> select * from semp;

ENAME DNO EADDRESS
--------------- ---------- ----------
x 11 10 RK ROAD
y 22 12 MG ROAD

SQL> select city,ename from depts,semp where depts.dno=semp.dno;

CITY ENAME
--------- ---------------
chennai x
hyderabad y




























RESULT

Thus the various constraints were implemented and the tables were created
using the respecting constraints. Hence the output was verified.
33


Ex.No.4 NESTED QUERIES AND JOIN QUERIES

Date:

AIM:
To study the nested queries and join queries.

DESCRIPTION:

Nested Query:
Nested Queries are queries that contain another complete SELECT statements nested within
it, that is, in the WHERE clause. The nested SELECT statement is called an inner query or an
inner SELECT. The main query is called outer SELECT or outer query. Many nested
queries are equivalent to a simple query using JOIN operation. The use of nested query in this case
is to avoid explicit coding of JOIN which is a very expensive database operation and to improve
query performance. However, in many cases, the use of nested queries is necessary and cannot be
replaced by a JOIN operation.
Join
A join is a query that combines rows from two or more tables, views, or materialized views.
Oracle Database performs a join whenever multiple tables appear in the FROM clause of the query.
The select list of the query can select any columns from any of these tables. If any two of these tables
have a column name in common, then you must qualify all references to these columns throughout
the query with table names to avoid ambiguity.

Types of Joins:

INNER JOIN/ NATURAL JOIN/ JOIN: It is a binary operation that allows us
to combinecertain selections and a Cartesian product into one operation.

CROSS JOIN: It is a JOIN operation that produces the Cartesian product of two tables.

OUTER JOIN: It is an extension of join operation to deal with missing information.

Left Outer Join: It takes tuples in the left relation that did not
match with anytuple in the right relation, pads the tuples with null
values for all other attributes from the right relation and adds them to
the result of the natural join.
Right Outer Join: It takes tuples in the right relation that did not
match with anytuple in the left relation, pads the tuples with null
values for all other attributes from the left relation and adds them to
the result of the natural join.
Full Outer Join: It combines tuples from both the left and the right
relation andpads the tuples with null values for the missing attributes
and them to the result of thenatural join.
34


COMMANDS

NESTED QUERIES

SQL> create table empdetail (emp_id number primary key,emp_name
varchar(15),phone_no number,job_id varchar(15),salary number);

Table created.

SQL> insert into empdetail values(&emp_id,'&emp_name',&phone_no,'&job_id',&salary);
Enter value for emp_id: 100

Enter value for emp_name: steve
Enter value for phone_no: 147895
Enter value for job_id: IT-PROG
Enter value for salary: 9000

old 1: insert into empdetail values(&emp_id,'&emp_name',&phone_no,'&job_id',&salary)
new 1: insert into empdetail values(100,'steve',147895,'IT-PROG',9000)

1 row created.
SQL> /

Enter value for emp_id: 101 Enter
value for emp_name: john Enter
value for phone_no: 789542 Enter
value for job_id: VP

Enter value for salary: 50000

old 1: insert into empdetail values(&emp_id,'&emp_name',&phone_no,'&job_id',&salary)
new 1: insert into empdetail values(101,'john',789542,'VP',50000)

1 row created.
SQL> /

Enter value for emp_id: 141
Enter value for emp_name: peter

35



Enter value for phone_no: 456321
Enter value for job_id: ST-CLERK
Enter value for salary: 3500

old 1: insert into empdetail values(&emp_id,'&emp_name',&phone_no,'&job_id',&salary)
new 1: insert into empdetail values(141,'peter',456321,'ST-CLERK',3500)

1 row created.
SQL> /

Enter value for emp_id: 142 Enter
value for emp_name: davies Enter
value for phone_no: 741258

Enter value for job_id: ST-CLERK
Enter value for salary: 3100

old 1: insert into empdetail values(&emp_id,'&emp_name',&phone_no,'&job_id',&salary)
new 1: insert into empdetail values(142,'davies',741258,'ST-CLERK',3100)

1 row created.
SQL> /

Enter value for emp_id: 143

Enter value for emp_name: william
Enter value for phone_no: 632548
Enter value for job_id: ST-CLERK
Enter value for salary: 2600

old 1: insert into empdetail values(&emp_id,'&emp_name',&phone_no,'&job_id',&salary)
new 1: insert into empdetail values(143,'william',632548,'ST-CLERK',2600)

1 row created.
36


SQL> /

Enter value for emp_id: 144

Enter value for emp_name: michael

Enter value for phone_no: 325874

Enter value for job_id: SA-REP

Enter value for salary: 8600

old 1: insert into empdetail values(&emp_id,'&emp_name',&phone_no,'&job_id',&salary)

new 1: insert into empdetail values(144,'michael',325874,'SA-REP',8600)

1 row created.

SQL> SELECT * FROM EMPDETAIL;

EMP_ID EMP_NAME PHONE_NO JOB_ID SALARY
---------- --------------- ------------- ------------ ----------
100 steve 147895 IT-PROG 9000
101 john 789542 VP 50000
141 peter 456321 ST-CLERK 3500
142 davies 741258 ST-CLERK 3100
143 william 632548 ST-CLERK 2600
144 michael 325874 SA-REP 8600

6 rows selected.

Display the employee whose job id is the same as the employee 141.

SQL> select emp_name,job_id from empdetail where job_id=(select job_id from
empdetail where emp_id=141);

EMP_NAME JOB_ID
--------------- ---------------

peter ST-CLERK

davies ST-CLERK

william ST-CLERK
37



Display the employee whose job is same as that of employee 141 and whose salary is
greater than that of 143.

SQL> select emp_name,job_id,salary from empdetail where job_id=(select job_id from empdetail
where emp_id=141) and salary > (select salary from empdetail where emp_id=143);

EMP_NAME JOB_ID SALARY
--------------- --------------- ----------
peter ST-CLERK 3500
davies ST-CLERK 3100

JOINS

SQL> create table emp1(empname varchar(15),deptid number);
Table created.
SQL> insert into emp1 values('&empname',&deptid);
Enter value for empname: sita
Enter value for deptid: 1
old 1: insert into emp1 values('&empname',&deptid);
new 1: insert into emp1 values('sita',1)
1 row created.
SQL> /
Enter value for empname: suda
Enter value for deptid: 2
old 1: insert into emp1 values('&empname',&deptid);
new 1: insert into emp1 values('suda',2)
1 row created.
SQL> /
Enter value for empname: kumar
Enter value for deptid: 3
old 1: insert into emp1 values('&empname',&deptid);
new 1: insert into emp1 values('kumar',3)

1 row created.
SQL> /

Enter value for empname: john

Enter value for deptid: null

old 1: insert into emp1 values('&empname',&deptid);

new 1: insert into emp1 values('john',null)

1 row created.
38


SQL> /

Enter value for empname: smith

Enter value for deptid: 3

old 1: insert into emp1 values('&empname',&deptid);

new 1: insert into emp1 values('smith',3)

1 row created.

SQL> select * from emp1;

EMPNAME DEPTID
--------------- ----------
sita 1
suda 2
kumar 3
john NULL
smith 3




SQL> commit;
Commit complete.

SQL> create table dept1(deptid number,deptname varchar(15));
Table created.

SQL> insert into dept1 values(&deptid,'&deptname');
Enter value for deptid: 1

Enter value for deptname: sales

old 1: insert into dept1 values(&deptid,'&deptname')
new 1: insert into dept1 values(1,'sales')

1 row created.
39


SQL> /

Enter value for deptid: 2

Enter value for deptname: cse

old 1: insert into dept1 values(&deptid,'&deptname')

new 1: insert into dept1 values(2,'cse')

1 row created.
SQL> /

Enter value for deptid: 3

Enter value for deptname: eee

old 1: insert into dept1 values(&deptid,'&deptname')

new 1: insert into dept1 values(3,'eee')

1 row created.

SQL> /

Enter value for deptid: 5

Enter value for deptname: civil

old 1: insert into dept1 values(&deptid,'&deptname')

new 1: insert into dept1 values(5,'civil')

1 row created.

SQL> select * from dept1;

DEPTID DEPTNAME
---------- ---------------
1 sales
2 cse
3 eee
5 civil
40


SQL> commit;

Commit complete.

INNER JOIN

SQL> select * from emp1 INNER JOIN dept1 ON emp1.deptid=dept1.deptid;

EMPNAME DEPTID DEPTID DEPTNAME
--------------- ---------- ---------- ---------------
sita 1 1 sales
suda 2 2 cse
kumar 3 3 eee
smith 3 3 eee

NATURAL JOIN

SQL> select * from emp1 NATURAL JOIN dept1;

DEPTID EMPNAME DEPTNAME
---------- --------------- ---------------
1 sita sales
2 suda cse
3 kumar eee
3 smith eee

CROSS JOIN

SQL> select * from emp1 CROSS JOIN dept1;

EMPNAME DEPTID DEPTID DEPTNAME
--------------- ---------- ---------- ---------------
sita 1 1 sales
suda 2 1 sales
kumar 3 1 sales
john NULL 1 sales
smith 3 1 sales
sita 1 2 cse
suda 2 2 cse
kumar 3 2 cse
john 2 cse NULL
smith 3 2 cse
sita 1 3 eee
41


EMPNAME DEPTID DEPTID DEPTNAME
--------------- ---------- ---------- ---------------
suda 2 3 eee
kumar 3 3 eee
john 3 eee NULL
smith 3 3 eee
sita 1 5 civil
suda 2 5 civil
kumar 3 5 civil
john 5 NULL civil
smith 3 5 civil

20 rows selected.

OUTER JOIN
LEFT OUTER JOIN

SQL> select * from emp1 LEFT OUTER JOIN dept1 ON emp1.deptid=dept1.deptid;

EMPNAME DEPTID DEPTID DEPTNAME
--------------- ---------- ---------- ---------------
sita 1 1 sales
suda 2 2 cse
smith 3 3 eee
kumar 3 3 eee
john NULL NULL NULL

RIGHT OUTER JOIN



SQL> select * from emp1 RIGHT OUTER JOIN dept1 ON emp1.deptid=dept1.deptid;


EMPNAME DEPTID DEPTID DEPTNAME
--------------- ---------- ---------- ---------------
sita 1 1 sales
suda 2 2 cse
kumar 3 3 eee
smith 3 3 eee
NULL NULL 5 civil
42


FULL OUTER JOIN

SQL> select * from emp1 FULL OUTER JOIN dept1 ON emp1.deptid=dept1.deptid;

EMPNAME DEPTID DEPTID DEPTNAME
--------------- ---------- ---------- ---------------
sita 1 1 sales
suda 2 2 cse
smith 3 3 eee
kumar 3 3 eee
john NULL NULL NULL
NULL NULL 5 civil

6 rows selected.
































RESULT



Thus the nested queries and join queries were implemented and the output was verified.
43


EX No: 5 VIEWS

Date:

AIM:
To create views for the table and perform operations on it.

DEFINITION
A view is an object that gives the user the logical view of data from the underlying table.
Any relation that is not part of the logical model but is made visible to the user as a virtual
relation is called a view. They are generally used to avoid duplication of data.

Views are created for the following reasons,
Data simplicity
To provide data security
Structural simplicity (because view contains only limited number of rows and colmns)

TYPES OF VIEWS
Updatable views Allow data manipulation
Read only views Do not allow data manipulation
CREATION OF VIEWS:

SYNTAX:
CREATE VIEW viewname as
SELECT columname,columnname
FROM tablename
WHERE columnname=expression list;

DESTROYING A VIEW
A view can be dropped by using the DROP VIEW command

SYNTAX:

DROP VIEW viewname;

TO CREATE THE TABLE FVIEWS
SQL> create table fviews( name varchar2(10),no number(5), sal number(5), dno number(5));
Table created.

SQL> insert into fviews
values('abinav',1,19000,11); 1 row created.

SQL> insert into fviews values('ritu',2,19000,12);
1 row created.

SQL> insert into fviews values('kumar',3,40000,13);
1 row created.
44


SQL> select * from fviews;
NAME NO SAL DNO
---------- ---------- ---------- ----------
abinav 1 19000 11
ritu 2 19000 12
kumar 3 40000 13

TO CREATE THE TABLE DVIEWS

SQL> create table dviews( dno number(5), dname varchar(10));

Table created.

SQL> insert into dviews values(11,'arun');

1 row created.

SQL> insert into dviews values(12,'suda');

1 row created.

SQL> select * from dviews;

DNO DNAME
---------- ----------
11 arun
12 suda

CREATING THE IEWVIEW ONSVFVIEWS TABLE

SQL> create view sview as select name,no,sal,dno from fviews where dno=11;
View created.

SQL> select * from sview;
NAME NO SAL DNO
---------- ---------- ---------- ----------
abinav 1 19000 11

UPDATES MADE ON THE VIEW ARE REFLECTED ONLY ON THE TABLE WHEN
THE STRUTURE OF THE TABLE AND THE VIEW ARE NOT SIMILAR PROOF

SQL> insert into sview values
('raji',4,20000,14); 1 row created.
45


SQL> select * from sview;
NAME NO SAL DNO
---------- ---------- ---------- ----------
abinav 1 19000 11
SQL> select * from fviews;
NAME NO SAL DNO
---------- ---------- ---------- ----------
abinav 1 19000 11
ritu 2 19000 12
kumar 3 40000 13
raji 4 20000 14

UPDATES MADE ON THE VIEW ARE REFLECTED ON BOTH THE VIEW AND THE
TABLE WHEN THE STRUTURE OF THE TABLE AND THE VIEW ARE SIMILAR
PROOF
CREATING A VIEW IVIEW FOR THE TABLE FVIEWS

SQL> create view iview as select * from fviews;
View created.

SQL> select * from iview;
NAME NO SAL DNO
---------- ---------- ---------- ----------
abinav 1 19000 11
ritu 2 19000 12
kumar 3 40000 13
raji 4 20000 14

PERFORMING UPDATE OPERATION
SQL> insert into iview values ('boni',5,30000,15);

1 row created.

SQL> select * from iview;

NAME NO SAL DNO
---------- ---------- ---------- ----------
abinav 1 19000 11
ritu 2 19000 12
kumar 3 40000 13
raji 4 20000 14
boni 5 30000 15
46


CREATE A NEW VIEW SSVIEW AND DROP THE VIEW

SQL> create view ssview( cusname,id) as select name, no from fviews where dno=12;

View created.

SQL> select * from ssview;

CUSNAME ID
---------- ----------
ritu 2

SQL> drop view ssview;

View dropped.

TO CREATE A VIEW COMBO USING BOTH THE TABLE DVIEWS


SQL> create view combo as select name,no,sal,dviews.dno,dname from fviews,dviews
where fviews.dno=dviews.dno;

View created.

SQL> select * from combo;

NAME NO SAL DNO DNAME
---------- ---------- ---------- ---------- ----------
abinav 1 19000 11 arun
ritu 2 19000 12 suda

TO PERFORM MANIPULATIONS ON THIS VIEW

SQL> insert into combo values('john',12,1000,13,'x');
insert into combo values('john',12,1000,13,'x')
*
ERROR at line 1:
ORA-01779: cannot modify a column which maps to a non key-preserved table

This shows that when a view is created from two different tables no manipulations can
be performed using that view and the above error is displayed.



RESULT
Thus views were created, various operations were performed and the outputs were
verified.
47


Ex.No.6 TRIGGERS

Date:

AIM:
To study and implement the concept of triggers.

DEFINITION

A trigger is a statement that is executed automatically by the system as a sideeffect of
a modification to the database. The parts of a trigger are,
Trigger statement: Specifies the DML statements and fires the trigger body. It
alsospecifies the table to which the trigger is associated.

Trigger body or trigger action: It is a PL/SQL block that is executed when
thetriggering statement is used.
Trigger restriction: Restrictions on the trigger can be achieved

The different uses of triggers are as follows,
To generate data automatically
To enforce complex integrity constraints
To customize complex securing authorizations
To maintain the replicate table
To audit data modifications

VARIABLES USED IN TRIGGERS
:new
:old
These two variables retain the new and old values of the column updated in the database.
The values in these variables can be used in the database triggers for data manipulation

SYNTAX
The Syntax for creating a trigger is:
CREATE [OR REPLACE ] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF }
{INSERT [OR] | UPDATE [OR] |
DELETE} [OF col_name]
ON table_name
[REFERENCING OLD AS o NEW AS
n] [FOR EACH ROW]
WHEN (condition)
BEGIN
--- sql statements

END;
48



CREATE [OR REPLACE ] TRIGGER trigger_name - This clause creates a trigger
withthe given name or overwrites an existing trigger with the same name.
{BEFORE | AFTER | INSTEAD OF }- This clause indicates at what time should
thetrigger get fired. i.e for example: before or after updating a table. INSTEAD OF is
used to create a trigger on a view. before and after cannot be used to create a trigger on a
view. {INSERT [OR] | UPDATE [OR] | DELETE} - This clause determines the
triggeringevent. More than one triggering events can be used together separated by OR
keyword. The trigger gets fired at all the specified triggering event.
[OF col_name] - This clause is used with update triggers. This clause is used when
youwant to trigger an event only when a specific column is updated.
CREATE [OR REPLACE ] TRIGGER trigger_name - This clause creates a trigger
withthe given name or overwrites an existing trigger with the same name.
[ON table_name] - This clause identifies the name of the table or view to which
thetrigger is associated.
[REFERENCING OLD AS o NEW AS n] - This clause is used to reference the old
andnew values of the data being changed. By default, you reference the values as
:old.column_name or :new.column_name. The reference names can also be changed
from old (or new) to any other user-defined name. You cannot reference old values when
inserting a record, or new values when deleting a record, because they do not exist. [FOR
EACH ROW] - This clause is used to determine whether a trigger must fire wheneach
row gets affected ( i.e. a Row Level Trigger) or just once when the entire sql statement is
executed(i.e.statement level Trigger).
WHEN (condition) - This clause is valid only for row level triggers. The trigger is
firedonly for rows that satisfy the condition specified.

COMMANDS
SQL> create table trigsample(name varchar(10),eid number(3),salary number(10));
Table created.

SQL> insert into trigsample values('kelvin',101,12000);
1 row created.

SQL> insert into trigsample values('suda',102,13000);
1 row created.

SQL> insert into trigsample
values('ritu',103,15500); 1 row created.

SQL> select * from trigsample;

NAME EID SALARY
---------- ---------- ----------
kelvin 101 12000
suda 102 13000
ritu 103 15500
49



SQL> create trigger t1 before insert or update or delete on trigsample for each row
2 begin
3 raise_application_error(-20010,'You cannot do any manipulation');
4 end;
5 /

Trigger created.

SQL> insert into trigsample values('jaya',104,25000);

insert into trigsample values('jaya',104,25000)

*
ERROR at line 1:

ORA-20010: You cannot do any manipulation

ORA-06512: at "SCOTT.T1", line 2

ORA-04088: error during execution of trigger 'SCOTT.T1'

SQL> delete from trigsample where name='suda';
delete from trigsample where name='suda'

*
ERROR at line 1:
ORA-20010: You cannot do any manipulation

ORA-06512: at "SCOTT.T1", line 2

ORA-04088: error during execution of trigger 'SCOTT.T1'

SQL> update trigsample set eid=107 where name='suda';

update trigsample set eid=107 where name='suda'

*
ERROR at line 1:
ORA-20010: You cannot do any manipulation
ORA-06512: at "SCOTT.T1", line 2
ORA-04088: error during execution of trigger 'SCOTT.T1'






RESULT

Thus the trigger commands are executed and output was verified.
50


Ex No.7 PROCEDURAL LANGUAGE / STRUCTURED
Date: QUERY LANGUAGE



AIM:
To write PL/SQL programs that executes the concept of control structures, functions
and procedures.

DEFINITION
A procedure or function is a logically grouped set of SQL and PL/SQL statements that
perform a specific task. They are essentially sub-programs. Procedures and functions are made
up of,
Declarative part
Executable part
Optional exception handling part

KEYWORDS AND THEIR PURPOSES

REPLACE: It recreates the procedure if it already exists.

PROCEDURE: It is the name of the procedure to be created.

ARGUMENT: It is the name of the argument to the procedure. Paranthesis can be omitted if no

arguments are present.

IN: Specifies that a value for the argument must be specified when calling the procedure ie. used

to pass values to a sub-program. This is the default parameter.

OUT: Specifies that the procedure passes a value for this argument back to its calling

environment after execution ie. used to return values to a caller of the sub-program.

INOUT: Specifies that a value for the argument must be specified when calling the procedure

and that procedure passes a value for this argument back to its calling environment after

execution.

RETURN: It is the datatype of the functions return value because every function must return
avalue, this clause is required.

PROCEDURES SYNTAX
create or replace procedure <procedure name> (argument {in,out,inout} datatype )
{is,as} variable declaration;
constant declaration;
begin
PL/SQL subprogram
body; exception
exception PL/SQL
block; end;
51


FUNCTIONS SYNTAX

create or replace function <function name> (a variable declaration;

constant declaration;
begin
PL/SQL subprogram
body; exception
exception PL/SQL
block; end;

SIMPLE PL/SQL PROGRAMS

GREATEST OF THREE NUMBERS
SQL> set serveroutput on
SQL> declare
2 a number;
3 b number;
4 c number;
5 begin
6 a:=&a;
7 b:=&b;
8 c:=&c;
9 if a=b and b=c and c=a then
10 dbms_output.put_line('all are equal');
11 elsif a>b and a>c then
12 dbms_output.put_line('a is greater');
13 elsif b>c then
14 dbms_output.put_line('b is greater');
15 else
16 dbms_output.put_line('c is greater');
17 end if;
18 end;
19 /
Enter value for a: 5
old 6: a:=&a; new
6: a:=5; Enter
value for b: 7 old
7: b:=&b; new 7:
b:=7; Enter value
for c: 2 old 8:
c:=&c; new 8:
c:=2;
b is greater

PL/SQL procedure successfully completed.
52


TO SWAP TWO NUMBERS
SQL> set serveroutput on
SQL> declare
2 a number(10);
3 b number(10);
4 begin
5 a:=&a;
6 b:=&b;
7 dbms_output.put_line(Values of a and b be
8 dbms_output.put_line(a);
9 dbms_output.put_line(b);
10 a:=a+b;
11 b:=a-b;
12 a:=a-b;
13 dbms_output.put_line('Values of a and b after swaping');
14 dbms_output.put_line(a);
15 dbms_output.put_line(b);
16 end;
17 /
Enter value for a: 2
old 5: a:=&a; new
5: a:=2; Enter
value for b: 3 old
6: b:=&b; new 6:
b:=3;
Values of a and b before swaping
2 3

Values of a and b before swaping
3 2


PL/SQL procedure successfully completed.

TO CHECK WHETHER GIVEN NUMBER IS ARMSTRONG OR NOT

SQL> set serveroutput on
SQL> declare
2 a number;
3 t number;
4 arm number;
5 d number;
6 begin
7 a:=&a;
8 t:=a;
9 arm:=0;
53


10 while t>0
11 loop
12 d:=mod(t,10);
13 arm:=arm+power(d,3);
14 t:=trunc(t/10);
15 end loop;
16 if arm=a then
17 dbms_output.put_line('given no is an armstrong no'||a);
18 else
19 dbms_output.put_line('given no is not an armstrong no');
20 end if;
21 end;
22 /
Enter value for a: 6
old 7: a:=&a; new
7: a:=6;
given no is not an armstrong no

PL/SQL procedure successfully
completed. SQL> /
Enter value for a: 407
old 7: a:=&a;
new 7: a:=407;
given no is an armstrong no407

PL/SQL procedure successfully completed.

TO FIND THE SUM OF THE DIGITS

SQL> set serveroutput on
SQL> declare
2 a number;
3 d number:=0;
4 sum1 number:=0;
5 begin
6 a:=&a;
7 while a>0
8 loop
9 d:=mod(a,10);
10 sum1:=sum1+d;
11 a:=trunc(a/10);
12 end loop;
13 dbms_output.put_line('sum is'||sum1);
14 end;
15 /
Enter value for a: 123
old 6: a:=&a;
54



new 6: a:=123;
sum is6

PL/SQL procedure successfully completed.
SQL> /
Enter value for a: 1023
old 6: a:=&a;
new 6: a:=1023;
sum is6

PL/SQL procedure successfully completed.

TO REVERSE THE GIVEN NUMBER

SQL> set serveroutput on
SQL> declare
2 a number;
3 rev number;
4 d number;
5 begin
6 a:=&a;
7 rev:=0;
8 while a>0
9 loop
10 d:=mod(a,10);
11 rev:=(rev*10)+d;
12 a:=trunc(a/10);
13 end loop;
14 dbms_output.put_line('no is'||rev);
15 end;
16 /
Enter value for a: 876
old 6: a:=&a;
new 6: a:=876;
no is678

PL/SQL procedure successfully completed.

PROCEDURES

CREATING THE TABLE ITITEMS AND DISPLAYING T

SQL> create table ititems(itemid number(3),actualprice number(5),ordid number(4),prodid
number(4));

Table created.
55



SQL> insert into ititems
values(101,2000,500,201); 1 row created.

SQL> insert into ititems
values(102,3000,1600,202); 1 row created.

SQL> insert into ititems
values(103,4000,600,202); 1 row created.

SQL> select * from ititems;

ITEMID ACTUALPRICE ORDID PRODID
---------- ----------- ---------- ----------
101 2000 500 201
102 3000 1600 202
103 4000 600 202

PROGRAM FOR GENERAL PROCEDURE SELECTED RECORDS
PRICE I INCREMENTED BY 500, EXECUTING THE PROCEDURE CREATED AND
DISPLAYING THE UPDATED TABLE

SQL> create procedure itsum(identity number,total number) is price number;
2 null_price exception;
3 begin
4 select actualprice into price from ititems where itemid=identity;
5 if price is null then
6 raise null_price;
7 else
8 update ititems set actualprice=actualprice+total where itemid=identity;
9 end if;
10 exception
11 when null_price then
12 dbms_output.put_line('price is null');
13 end;
14 /

Procedure created.

SQL> exec itsum(101,500);

PL/SQL procedure successfully completed.
56


SQL> select * from ititems;
ITEMID ACTUALPRICE ORDID PRODID
---------- --------------------- ---------- ----------
101 2500 500 201
102 3000 1600 202
103 4000 600 202

PROCEDURE FOR IN PARCREATION,METEREXECUTION

SQL> create procedure yyy (a IN number) is price number;
2 begin
3 select actualprice into price from ititems where itemid=a;
4 dbms_output.put_line('Actual price is ' || price);
5 if price is null then
6 dbms_output.put_line('Price is null');
7 end if;
8 end;
9 /

Procedure created.

SQL> exec yyy(103);
Actual price is 4000

PL/SQL procedure successfully completed.

PROCEDURE FOR OUTCREATION,PARAMETEREXECUTION

SQL> create procedure zzz1(a in number,b out number) is identity number;
2 begin
3 select ordid into identity from ititems where itemid=a;
4 if identity<1000 then
5 b:=100;
6 end if;
7 end;
8 /
Procedure created.

SQL> declare
2 a number ;
3 b number;
4 begin
5 zzz1(101,b);
57


6 dbms_output.put_line('The value of b is '|| b);
7 end;
8 /
The value of b is 100
PL/SQL procedure successfully completed.

PROCEDURE FOR INOUTCREATION,PARAMETEREXECUTION
SQL> create procedure itit(a in out number) is
2 begin
3 a:=a+1;
4 end;
5 /

Procedure created.
SQL> declare
2 a number:=7;
3 begin
4 itit(a);
5 dbms_output.put_line('The updated value is '||a);
6 end;
7 /
The updated value is 8

PL/SQL procedure successfully completed.

FUNCTIONS

CREATE THE TABLE ITTRAIN1 TO BE USED FOR FU
SQL> create table ittrain1(tno number(10),tfare number(10));
Table created.

SQL> insert into ittrain1
values(1001,550); 1 row created.

SQL> insert into ittrain1 values(1002,600);
1 row created.

SQL> select * from
ittrain1; TNO TFARE
---------- ----------

1001 550

1002 600
58


PROGRAM FOR FUNCTION AND ITS EXECUTION

SQL> create function f1(trainnumber number) return number is

2 trainfunction ittrain.tfare% type;

3 begin

4 select tfare into trainfunction from ittrain where tno=trainnumber;

5 return(trainfunction);

6 end;

7 /

Function created.

SQL> set serverouptut on;
SQL> declare
2 total number;
3 begin
4 total:=f1(1001);
5 dbms_output.put_line('Train fare is Rs. '||total);
6 end;
7 /

Train fare is Rs. 550

PL/SQL procedure successfully completed.

FACTORIAL OF A NUMBER USING FUNCTION PROGRAM AND EXECUTION

SQL> create function itfact1(a number) return number is
2 fact number:=1;
3 b number;
4 begin
5 b:=a;
6 while b>0
7 loop
8 fact:=fact*b;
9 b:=b-1;
10 end loop;
11 return(fact);
12 end itfact1;
13 /

Function created.
59


SQL> set serveroutput on;
SQL> declare
2 a number:=7;
3 f number(10);
4 begin
5 f:=itfact1(a);
6 dbms_output.put_line('The factorial of the given number is '||f);
7 end;
8 /
The factorial of the given number is 5040

PL/SQL procedure successfully completed.








































RESULT

Thus the PL/SQL programs were executed and their outputs were verified.
60


EX: NO:8 FRONT END TOOLS

Date:

AIM:

To design a form using different tools in Visual Basic.

PROCEDURE

STEP 1: Start
STEP 2: Create the form with essential controls in tool box.
STEP 3: Write the code for doing the appropriate
functions. STEP 4: Save the forms and project.
STEP 5: Execute the form.
STEP 6: Stop

CODING:
Private Sub Calendar1_Click()
Text3.Text = Calendar1.Value
End Sub
Private Sub Combo1_Change()
Combo1.AddItem "BSC"
Combo1.AddItem "MSC"
Combo1.AddItem "BE"
Combo1.AddItem "ME"
End Sub

Private Sub Command1_Click()
List1.AddItem Text1.Text
List1.AddItem Text2.Text
If Option1.Value = True
Then gender = "male"
End If
If Option2.Value = True
Then gender = "female"
End If

List1.AddItem gender
List1.AddItem Text3.Text
If Check1.Value = 1 And Check2.Value = 1
Then area = "software Engineering & Networks"
End If
61



If Check1.Value = 0 And Check2.Value = 1
Then area = " Networks"
End If
List1.AddItem area
List1.AddItem
Text4.Text End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Command3_Click()
If List1.ListIndex <> 0 Then
List1.RemoveItem (0)
End If

End Sub
Private Sub Form_Load()
Label10.Caption = Date$
MsgBox "Welcome to Registration"
End Sub

Private Sub Option1_Click()
If (Option1.Value = True) Then
MsgBox ("You have selected Male")
ElseIf (Option2.Value = True) Then
MsgBox ("You have selected
Female") End If
End Sub

Private Sub Option2_Click()
If (Option1.Value = True) Then
MsgBox ("You have selected Male")
ElseIf (Option2.Value = True) Then
MsgBox ("You have selected
Female") End If
End Sub
62


























































RESULT: Thus the program has been loaded and executed successfully.
63


Ex No.9 FORMS

Date:

AIM:

To design form for calculator program in VB

ALGORITHM

1. Open the form in VB.

2. Place five command buttons, give the name for command buttons as in the form and two
text box in the form.

3. Click the button, it will display the code page.

4. Enter the code for corresponding button.

5. Execute the program by clicking run in menu.



CODING

Private Sub add_Click()

Dim a As Integer

a = Val(Text1.Text) + Val(Text2.Text)
MsgBox ("Addition of two umbers is" + Str(a))
End Sub

Private Sub div_Click()

Dim d As Integer

d = Val(Text1.Text) / Val(Text2.Text) MsgBox
("Division of two umbers is" + Str(d)) End Sub

Private Sub end_Click()

End

End Sub
64



Private Sub mul_Click()
Dim c As Integer

c = Val(Text1.Text) * Val(Text2.Text)

MsgBox ("Multiplication of two umbers is" + Str(c))
End Sub

Private Sub sub_Click()
Dim b As Integer

b = Val(Text1.Text) - Val(Text2.Text)

MsgBox ("Subtraction of two umbers is" + Str(b))
End Sub


OUTPUT
66




























































RESULT

Thus the form design program for calculator was executed and output was verified
67


EX No.10 MENU DESIGN

Date:

AIM:

To create menu design in visual basic.

ALGORITHM

1. A new standard EXE project is opened and the form, project files are saved.

2. The form is designed.

3. Select the menu editor fromFile,Font style,andtoolsFont. menu, cr

4. Select Microsoft Rich Textbox Control 6.0 and Microsoft Common Dialog Control 6.
from components.

5. Enter the code for corresponding menu.

6. Execute the program by clicking run in menu.

CODING

Private Sub bg_Click()
CommonDialog1.Action = 3
RichTextBox1.BackColor = CommonDialog1.Color
End Sub

Private Sub farial_Click()
RichTextBox1.Font = "Arial"
End Sub

Private Sub fbold_Click()
RichTextBox1.SelBold = True
End Sub

Private Sub fexit_Click()
End
End Sub

Private Sub fitalic_Click()
RichTextBox1.SelItalic = True
End Sub

Private Sub fnew_Click()
RichTextBox1.Text = ""
RichTextBox1.SetFocus
End Sub
68



Private Sub fopen_Click()
CommonDialog1.Action = 1
RichTextBox1.FileName =
CommonDialog1.FileName End Sub

Private Sub fprint_Click()
CommonDialog1.Action = 5
End Sub

Private Sub fsave_Click()
CommonDialog1.Action = 2
RichTextBox1.SaveFile
CommonDialog1.FileName End Sub

Private Sub ftnr_Click()
RichTextBox1.Font = "Times New
Roman" End Sub

Private Sub funder_Click()
RichTextBox1.SelUnderline = True
End Sub

Private Sub mfg_Click()
CommonDialog1.Action = 3
RichTextBox1.SelColor = CommonDialog1.Color
End Sub

Private Sub msizw_Click()
Dim size As Integer
size = InputBox("Enter the font
size") RichTextBox1.SelFontSize =
size End Sub

OUTPUT
69




























































RESULT

Thus the menu design program in VB was executed and output was verified.
70


EX No.11 REPORTS

Date:

AIM:

To generate data report using visual basic as front end tool and oracle as back end tool.

ALGORITHM

1. A new standard EXE project is opened.
2. On the project menu, click Add Data Environment. If this item is not on the menu,
click components. Click the designers tab, and choose Data Environment and click ok
to add the designer to your menu.
3. In the Data Environment window right click the Connection1 tab and select properties. In
the data link properties dialog box,select Microsoft OLE DB Provider for ODBC drivers.
Click next to get the connection tab. Select data source name, enter the user name and
password and click test connection button and then click ok.
4. Right click the connection1 tab and click add command to create a command1 tab.
Right click tab and choose properties. Select database object as table and select the
object name, ie the table name.

CREATING A DATA REPORT

On the project menu, click Add Data Report. If this item is not on the menu, click
components.Click the designers tab,and choose Data Report and click ok to add the designer
to our menu.

1. In the data report properties,give the data source and the data member.
2. There are five sections to the data report.a report header,a page footer and a report footer.
The headers and footers contain information we want print in the report and on each page.
3. The detail section is used to layout the information that we want to print for each record
in our database.
4. Save the file.


ACCESSING THE DATA REPORT

In the form, add a command button

1. Use the below code to view the report
Private Sub Command1_Click ()

DataReport1.Show
End Sub

2. Save the application and run it.
71


OUTPUT






















































RESULT:

Thus the data report was generated in visual basic and output was verified.
72


EX: NO: 12 STUDENT MANAGEMENT SYSTEM
Date:

AIM:
To develop the mini project of student management system and to design the
relevant tables for this project.

SOFTWARE REQUIREMENTS:

Front end: visual basic 6.0

Back end : ms-access

PROCEDURE:

Step1: design the database and various tables for this project using the software access

Following tables are designed :

Table: student_details

FIELD DATA_TYPE

ROLLNO NUMBER

CLASS TEXT

NAME TEXT

DOB DATE

DOJ DATE

FATHERNAME TEXT

INCOME NUMBER

ADDRESS TEXT

PHONE NO NUMBER

SEX TEXT

AGE NUMBER

73


TABLE 2:student marks

FIELD DATA_TYPE

ROLL_NO NUMBER

CLASS TEXT

SUBJECT1 NUMBER

SUBJECT2 NUMBER

SUBJECT3 NUMBER

SUBJECT4 NUMBER

SUBJECT5 NUMBER

TOTAL NUMBER

AVG NUMBER


STEP 2: CLICKStartPrograms visual basics 6.0
Then design the form and relevant coding


CODING:
Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim s As Integer

Private Sub Combo1_Click()
Call init
End Sub

Private Sub Combo2_Click()
Set rs = db.Execute("select roll from student where(roll='" & Combo2.Text & "'and class='" &
Combo1.Text & "')")
Text1.Text = rs.Fields(0)
End Sub

Private Sub Command1_Click()
Set rs = db.Execute("select*from unit1 where(roll='" & Combo2.Text & "'and class='"
& Combo1.Text & "')")
If rs.EOF = False Then
Text2.Text = rs.Fields(1)
Text3.Text = rs.Fields(2)
74



Text4.Text = rs.Fields(3)
Text5.Text = rs.Fields(4)
Text6.Text = rs.Fields(5)
Text7.Text = rs.Fields(6)
Else
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
End If
s = 1
End Sub

Private Sub Command2_Click()
Set rs = db.Execute("select*from unit2 where(roll='" & Combo2.Text & "' and class='"
& Combo1.Text & "')")
If rs.EOF = False Then
Text2.Text = rs.Fields(1)
Text3.Text = rs.Fields(2)
Text4.Text = rs.Fields(3)
Text5.Text = rs.Fields(4)
Text6.Text = rs.Fields(5)
Text7.Text = rs.Fields(6)
Else
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
End If
s = 2
End Sub

Private Sub Command3_Click()
Set rs = db.Execute("select*from cycle where(roll='" & Combo2.Text & "' and class='" &
Combo1.Text & "')")
If rs.EOF = False Then
Text2.Text = rs.Fields(1)
Text3.Text = rs.Fields(2)
Text4.Text = rs.Fields(3)
Text5.Text = rs.Fields(4)
Text6.Text = rs.Fields(5)
Text7.Text = rs.Fields(6)
75



Else
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
End If
s = 3
End Sub

Private Sub Command4_Click()
Set rs = db.Execute("select*from sem where(roll='" & Combo2.Text & "' and class='" &
Combo1.Text & "')")
If rs.EOF = False Then
Text2.Text = rs.Fields(1)
Text3.Text = rs.Fields(2)
Text4.Text = rs.Fields(3)
Text5.Text = rs.Fields(4)
Text6.Text = rs.Fields(5)
Text7.Text = rs.Fields(6)
Else
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
End If
s = 4
End Sub

Private Sub Command5_Click()
If s = 1 Then
Set rs = db.Execute("select*from unit1 where(roll='" & Combo2.Text & "'and class='"
& Combo1.Text & "')")
If rs.EOF = False Then
Set rs = db.Execute("delete from unit1 where(roll='" & Combo2.Text & "'and class'" &
Combo2.Text & "')")
Set rs = db.Execute("insert into unit1 values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" &
Text7.Text & "','" & Combo1.Text & "')")
MsgBox "unit1"
Else
76



Set rs = db.Execute("insert into unit1 values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" & Text7.Text
& "','" & Combo1.Text &
"')") MsgBox "unit1"
End If
ElseIf s = 2 Then
Set rs = db.Execute("select*from unit2 where(roll='" & Combo2.Text & "' and class='"
& Combo1.Text & "')")
If rs.EOF = False Then
Set rs = db.Execute("delete from unit2 where(roll='" & Combo2.Text & "' and class='"
& Combo1.Text & "')")
Set rs = db.Execute("insert into unit2 values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" & Text7.Text
& "','" & Combo1.Text & "')")
MsgBox "unit2"
Else
Set rs = db.Execute("insert into unit2 values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" & Text7.Text
& "','" & Combo1.Text &
"')") MsgBox "unit2"
End If
ElseIf s = 3 Then
Set rs = db.Execute("select*from cycle where(roll='" & Combo2.Text & "'and class='" &
Combo1.Text & "')")
If rs.EOF = False Then
Set rs = db.Execute("delete from cycle where(roll='" & Combo2.Text & "' and class='"
& Combo1.Text & "')")
Set rs = db.Execute("insert into cycle values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" & Text7.Text
& "','" & Combo1.Text & "')")
MsgBox
"cycle" Else
Set rs = db.Execute("insert into cycle values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" & Text7.Text
& "','" & Combo1.Text &
"')") MsgBox "cycle"
End If
ElseIf s = 4 Then
Set rs = db.Execute("select*from sem where(roll='" & Combo2.Text & "'and class='" &
Combo1.Text & "')")
If rs.EOF = False Then
Set rs = db.Execute("delete from sem where(roll='" & Combo2.Text & "'and class='"
& Combo1.Text & "')")
Set rs = db.Execute("insert into sem values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" & Text7.Text
& "','" & Combo1.Text & "')")
77



MsgBox
"semester" Else
Set rs = db.Execute("insert into sem values('" & Text1.Text & "','" & Text2.Text & "','" &
Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" &
Text7.Text & "','" & Combo1.Text & "')")
MsgBox
"semester" End If
End If
End Sub

Private Sub Command6_Click()
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
End Sub

Private Sub Command8_Click()
If s = 1 Then
datareport1.Show
'elseif s=2 then
'datareport2.show
'elseif s=2 then
'datareport3.show
'elseif s=2 then
'datareport4.show
End
End Sub

Private Sub Command9_Click()
End
End Sub

Private Sub Form_Load()
db.ConnectionString = "DSN=rajesh
kannan" db.Open
Text1.Locked =
True s = 1
End Sub
Private Sub init()
Dim i As Integer
Combo2.Clear
78



Set rs = db.Execute("select count(roll)from student where(class='" & Combo1.Text &
"')") i = rs.Fields(0)
Set rs = db.Execute("select roll from student where(class='" & Combo1.Text &
"')") For j = 0 To i - 1
Combo2.AddItem rs.Fields(0)
rs.MoveNext
Next j
End Sub
Private Sub Text10_Change()
Text7.Text = Val(Text2.Text) + Val(Text3.Text) + Val(Text5.Text) +
Val(Text6.Text) Text8.Text = Val(Text5.Text) / 5
If Val(Text2.Text) < "50" Or Val(Text3.Text) < "50" Or Val(Text4.Text) < "50"
Or Val(Text5.Text) < "50" Or Val(Text6.Text) < "50" Then
Text9.Text = "fail"
Else
Text9.Text =
"pass" End If
End Sub

Private Sub Text2_Change()
Text7.Text = Val(Text2.Text) + Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text)
Text8.Text = Val(Text5.Text) / 5
If Val(Text2.Text) < "50" Or Val(Text3.Text) < "50" Or Val(Text4.Text) < "50" Or
Val(Text5.Text) < "50" Or Val(Text6.Text) < "50" Then
Text9.Text = "fail"
Else
Text9.Text = "pass"
End If
End Sub

Private Sub Text4_Change()
Text7.Text = Val(Text2.Text) + Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text)
Text8.Text = Val(Text5.Text) / 5
If Val(Text2.Text) < "50" Or Val(Text3.Text) < "50" Or Val(Text4.Text) < "50" Or
Val(Text5.Text) < "50" Or Val(Text6.Text) < "50" Then
Text9.Text = "fail"
Else
Text9.Text = "pass"
End If
End Sub

Private Sub Text5_Change()
Text7.Text = Val(Text2.Text) + Val(Text3.Text) + Val(Text5.Text) +
Val(Text6.Text) Text8.Text = Val(Text5.Text) / 5
If Val(Text2.Text) < "50" Or Val(Text3.Text) < "50" Or Val(Text4.Text) < "50"
Or Val(Text5.Text) < "50" Or Val(Text6.Text) < "50" Then
79


Text9.Text = "fail"
Else
Text9.Text = "pass"
End If
End Sub

Private Sub Text7_Change()
Text7.Text = Val(Text2.Text) + Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text)
Text8.Text = Val(Text5.Text) / 5
If Val(Text2.Text) < "50" Or Val(Text3.Text) < "50" Or Val(Text4.Text) < "50" Or
Val(Text5.Text) < "50" Or Val(Text6.Text) < "50" Then
Text9.Text = "fail"
Else
Text9.Text = "pass"
End If
End Sub

Private Sub Text8_Change()
Text7.Text = Val(Text2.Text) + Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text)
Text8.Text = Val(Text5.Text) / 5
If Val(Text2.Text) < "50" Or Val(Text3.Text) < "50" Or Val(Text4.Text) < "50" Or
Val(Text5.Text) < "50" Or Val(Text6.Text) < "50" Then
Text9.Text = "fail"
Else
Text9.Text = "pass"
End If
End Sub

Private Sub Text9_Change()
Text7.Text = Val(Text2.Text) + Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text)
Text8.Text = Val(Text5.Text) / 5
If Val(Text2.Text) < "50" Or Val(Text3.Text) < "50" Or Val(Text4.Text) < "50" Or
Val(Text5.Text) < "50" Or Val(Text6.Text) < "50" Then
Text9.Text = "fail"
Else
Text9.Text = "pass"
End If
End Sub
82



























































RESULT

Thus the students management system wasdesignedandoutputwasverified.