0% found this document useful (0 votes)
18 views

DBMS EXP LAB Manual

The program demonstrates SQL data definition, manipulation, and control language commands on sample tables. It creates tables, inserts, updates, deletes and truncates data, and uses transactions with savepoints and rollbacks to manage changes.

Uploaded by

cc5405
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

DBMS EXP LAB Manual

The program demonstrates SQL data definition, manipulation, and control language commands on sample tables. It creates tables, inserts, updates, deletes and truncates data, and uses transactions with savepoints and rollbacks to manage changes.

Uploaded by

cc5405
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 81

Experiment 1

AIM: To write a program for SQL Data Definition Language Commands on


sample exercise

Program:

SQL> connect
Enter user-name: system
Enter password: admin
Connected.

SQL> create table emp(id number(10),name varchar(10));

Table created.

SQL> desc emp;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)

SQL> alter table emp add(dept varchar(10));

Table altered.

SQL> desc emp;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)
DEPT VARCHAR2(10)

SQL> alter table emp modify dept varchar(20);

Table altered.
SQL> desc emp;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)
DEPT VARCHAR2(20)

SQL> alter table emp drop column dept;

Table altered.

SQL> desc emp;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)

SQL> alter table emp rename to emp1;

Table altered.

SQL> desc emp1;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)

SQL> desc emp2;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)
DEPT VARCHAR2(10)
SQL> drop table emp2;
Table dropped.

SQL> select * from emp2;


select * from emp2
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 aaa cse
3 aaa ece
4 aaa cse
5 aaa cse

SQL> truncate table emp1;

Table truncated.

SQL> select * from emp1;

no rows selected

SQL> desc emp1;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)
DEPT VARCHAR2(10)

SQL> drop table emp1;

Table dropped.

SQL> select * from emp1;


select * from emp1
*
ERROR at line 1:
ORA-00942: table or view does not exist

SQL> desc emp1;


ERROR:
ORA-04043: object emp1 does not exist

Output:

Result: Hence, the above query has been implemented successfully.


Experiment 2

AIM: To write a program for SQL Data Manipulation Language Commands on


sample exercise
Program:

SQL> select * from emp1;

no rows selected

SQL> alter table emp1 add(dept varchar(10));

Table altered.

SQL> desc emp1;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)
DEPT VARCHAR2(10)

SQL> insert into emp1(id,name,dept) values (1,'aaa','cse');

1 row created.

SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse

SQL> insert into emp1 values (2,'bbb','cse');

1 row created.

SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 bbb cse

SQL> insert into emp1 values(&id,'&name','&dept');


Enter value for id: 3
Enter value for name: ccc
Enter value for dept: cse
old 1: insert into emp1 values(&id,'&name','&dept')
new 1: insert into emp1 values(3,'ccc','cse')

1 row created.

SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 bbb cse
3 ccc cse

SQL> insert into emp1 values(&id,'&name','&dept');


Enter value for id: 4
Enter value for name: ddd
Enter value for dept: cse
old 1: insert into emp1 values(&id,'&name','&dept')
new 1: insert into emp1 values(4,'ddd','cse')

1 row created.

SQL> /
Enter value for id: 5
Enter value for name: eee
Enter value for dept: cse
old 1: insert into emp1 values(&id,'&name','&dept')
new 1: insert into emp1 values(5,'eee','cse')
1 row created.

SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 bbb cse
3 ccc cse
4 ddd cse
5 eee cse
SQL> update emp1 set name='BBB' where id=2;

1 row updated.

SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 BBB cse
3 ccc cse
4 ddd cse
5 eee cse
SQL> update emp1 set name='CCC',dept='ece' where id=3;

1 row updated.

SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 BBB cse
3 CCC ece
4 ddd cse
5 eee cse
SQL> update emp1 set name='aaa';

5 rows updated.

SQL> select * from emp1;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 aaa cse
3 aaa ece
4 aaa cse
5 aaa cse
SQL> create table emp2(id number(10),name varchar(10),dept varchar(10));

Table created.

SQL> insert into emp2 select * from emp1;

5 rows created.

SQL> select * from emp2;

ID NAME DEPT
---------- ---------- ----------
1 aaa cse
2 aaa cse
3 aaa ece
4 aaa cse
5 aaa cse
SQL> delete from emp2 where id=1;

1 row deleted.

SQL> select * from emp2;

ID NAME DEPT
---------- ---------- ----------
2 aaa cse
3 aaa ece
4 aaa cse
5 aaa cse
SQL> delete from emp2 where dept='cse';

3 rows deleted.

SQL> select * from emp2;

ID NAME DEPT
---------- ---------- ----------
3 aaa ece
SQL> delete from emp2;

1 row deleted.

SQL> select * from emp2;

no rows selected
SQL> select * from emp2;

no rows selected

Output:

Result: Hence, the above query has been implemented successfully.


Experiment 3

AIM:To write a program on SQL Data Control Language Commands and


Transaction control commands to the sample exercises
Program:
SQL> connect
Enter user-name: system
Enter password:
Connected.

SQL> create table class1(id number(10),name varchar(10));

Table created.

SQL> insert into class1 values(5,'rahul');

1 row created.

SQL> update class1 set name='raj' where id=5;

1 row updated.

SQL> savepoint A;

Savepoint created.

SQL> insert into class1 values(6,'ram');

1 row created.

SQL> insert into class1 values(7,'vibhav');

1 row created.

SQL> savepoint B;

Savepoint created.
SQL> insert into class1 values(8,'sai');

1 row created.

SQL> savepoint C;

Savepoint created.

SQL> select * from class1;

ID NAME
---------- ----------
5 raj
6 ram
7 vibhav
8 sai

SQL> rollback to B;

Rollback complete.

SQL> select * from class1;

ID NAME
---------- ----------
5 raj
6 ram
7 vibhav

SQL> rollback to A;

Rollback complete.

SQL> select * from class1;

ID NAME
---------- ----------
5 raj

SQL> insert into class1 values(6,'ram');

1 row created.

SQL> insert into class1 values(7,'vibhav');

1 row created.

SQL> insert into class1 values(8,'sai');

1 row created.

SQL>savepoint D;

Savepoint created.

SQL> insert into class1 values(9,'siva');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from class1;

ID NAME
---------- ----------
5 raj
6 ram
7 vibhav
8 sai
9 siva

SQL> rollback to D;
rollback to D
*
ERROR at line 1:
ORA-01086: savepoint 'D' never established

SQL> insert into class1 values(10,'tom');

1 row created.

SQL> savepoint E;

Savepoint created.

SQL> insert into class1 values(11,'sam');

1 row created.

SQL> savepoint F;

Savepoint created.

SQL> rollback to E;

Rollback complete.

SQL> select * from class1;

ID NAME
---------- ----------
5 raj
6 ram
7 vibhav
8 sai
9 siva
10 tom
6 rows selected.

SQL> commit;

Commit complete.

SQL> select * from class1;

ID NAME
---------- ----------
5 raj
6 ram
7 vibhav
8 sai
9 siva
10 tom

6 rows selected.

SQL> rollback to F;
rollback to F
*
ERROR at line 1:
ORA-01086: savepoint 'F' never established

SQL>

Output:

Result: Hence, the above query has been implemented successfully.


Experiment 4

AIM:To write a program on Inbuilt functions in SQL on sample exercise.

Program:

SQL> create table stu1(id number(10),name varchar(10),department


varchar(10),mark1 number(10),mark2 number(10),mark3 number(10));

Table created.

SQL> insert into stu1


values(&id,'&name','&department',&mark1,&mark2,&mark3);

Enter value for id: 100

Enter value for name: aaa

Enter value for department: cse

Enter value for mark1: 90

Enter value for mark2: 89

Enter value for mark3: 95

old 1: insert into stu1


values(&id,'&name','&department',&mark1,&mark2,&mark3)

new 1: insert into stu1 values(100,'aaa','cse',90,89,95)

1 row created.

SQL> /

Enter value for id: 101

Enter value for name: bbb


Enter value for department: cse

Enter value for mark1: 88

Enter value for mark2: 89

Enter value for mark3: 90

old 1: insert into stu1


values(&id,'&name','&department',&mark1,&mark2,&mark3)

new 1: insert into stu1 values(101,'bbb','cse',88,89,90)

1 row created.

SQL> /

Enter value for id: 102

Enter value for name: ccc

Enter value for department: cse

Enter value for mark1: 90

Enter value for mark2: 88

Enter value for mark3: 87

old 1: insert into stu1


values(&id,'&name','&department',&mark1,&mark2,&mark3)

new 1: insert into stu1 values(102,'ccc','cse',90,88,87)

1 row created.

SQL> /

Enter value for id: 103


Enter value for name: ddd

Enter value for department: cse

Enter value for mark1: 75

Enter value for mark2: 80

Enter value for mark3: 85

old 1: insert into stu1


values(&id,'&name','&department',&mark1,&mark2,&mark3)

new 1: insert into stu1 values(103,'ddd','cse',75,80,85)

1 row created.

SQL> select * from stu1;

ID NAME DEPARTMENT MARK1 MARK2 MARK3

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

100 aaacse 90 89 95

101 bbbcse 88 89 90

102 ccccse 90 88 87

103 dddcse 75 80 85

SQL> select count(*) from stu1;

COUNT(*)

----------

4
SQL> insert into stu1
values(&id,'&name','&department',&mark1,&mark2,&mark3);

Enter value for id: 104

Enter value for name: eee

Enter value for department: ece

Enter value for mark1: 88

Enter value for mark2: 87

Enter value for mark3: 88

old 1: insert into stu1


values(&id,'&name','&department',&mark1,&mark2,&mark3)

new 1: insert into stu1 values(104,'eee','ece',88,87,88)

1 row created.

SQL> select count(*) from stu1;

COUNT(*)

----------

SQL> select count(*) from stu1 where department='ece';

COUNT(*)

----------
1

SQL> select count(*) from stu1 where department='cse';

COUNT(*)

----------

SQL> select count(id) from stu1;

COUNT(ID)

----------

SQL> select count(id) from stu1 where department='cse';

COUNT(ID)

----------

SQL> select count(id) from stu1 where department='ece';

COUNT(ID)

----------
1

SQL> select min(mark1) from stu1;

MIN(MARK1)

----------

75

SQL> select min(mark2) from stu1;

MIN(MARK2)

----------

80

SQL> select min(mark3) from stu1;

MIN(MARK3)

----------

85

SQL> select min(mark1+mark2) from stu1;

MIN(MARK1+MARK2)

----------------
155

SQL> select min(mark2+mark3) from stu1;

MIN(MARK2+MARK3)

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

165

SQL> select min(mark1+mark3) from stu1;

MIN(MARK1+MARK3)

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

160

SQL> select max(mark1) from stu1;

MAX(MARK1)

----------

90

SQL> select max(mark2) from stu1;

MAX(MARK2)

----------
89

SQL> select max(mark3) from stu1;

MAX(MARK3)

----------

95

SQL> select max(mark1+mark2) from stu1;

MAX(MARK1+MARK2)

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

179

SQL> select max(mark2+mark3) from stu1;

MAX(MARK2+MARK3)

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

184

SQL> select max(mark1+mark3) from stu1;

MAX(MARK1+MARK3)

----------------
185

SQL> select max(mark2) from stu1 where department='cse';

MAX(MARK2)

----------

89

SQL> select min(mark1) from stu1 where department='cse';

MIN(MARK1)

----------

75

SQL> select avg(mark1) from stu1;

AVG(MARK1)

----------

86.2

SQL> select avg(mark2) from stu1;

AVG(MARK2)

----------
86.6

SQL> select avg(mark3) from stu1;

AVG(MARK3)

----------

89

SQL> select avg(mark3) from stu1 where department='cse';

AVG(MARK3)

----------

89.25

SQL> select sum(mark1) from stu1;

SUM(MARK1)

----------

431

SQL> select sum(mark2) from stu1;

SUM(MARK2)

----------
433

SQL> select sum(mark3) from stu1;

SUM(MARK3)

----------

445

SQL> select sum(mark1+mark2) from stu1;

SUM(MARK1+MARK2)

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

864

SQL> select sum(mark1+mark3) from stu1;

SUM(MARK1+MARK3)

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

876

SQL> select sum(mark2+mark3) from stu1;

SUM(MARK2+MARK3)

----------------
878

SQL> select sum(mark3) from stu1 where department='cse';

SUM(MARK3)

----------

357

SQL>

Output:

Result: Hence, the above query has been implemented successfully.


Experiment 5

AIM: To Construct a ER Model for the application to be constructed to a


Database

Steps for drawing ER Diagram:

1. First, identify the entities in your database. In this case, we have three
entities.
2. The second step involves identifying the relationships between the
selected entities.
3. The third step involves identifying cardinalities.
4. The fourth step is identifying entity attributes. Make sure that every
attribute is mapped to only one entity; assign modifiers for those that
belong to more than one.
5. Once you have identified the entities, relationships, cardinalities, and
attributes, you can now create your ER diagram. Here’s what our sample
project will look like when designed using the crow’s foot (IE) notation.
6. Entity: Entities are represented by rectangle. All table of database are
treating as entity.
7. Attributes: Attributes are represented by ellipses. Attributes are
properties of entities.
(Link to draw ER diagram: https://app.diagrams.net)

Output:

Result: Hence we have successfully drawn the ER diagram.


Experiment: 6

AIM: To write a program for Nested Queries on sample exercise


Program :
SQL> select * from emp;

no rows selected

SQL> desc emp;


Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(10)
AGE NUMBER(10)
ADDRESS VARCHAR2(10)
SALARY NUMBER(10)

SQL> insert into emp values(&id,'&name',&age,'&address',&salary);


Enter value for id: 10
Enter value for name: ram
Enter value for age: 33
Enter value for address: chennai
Enter value for salary: 50000
old 1: insert into emp values(&id,'&name',&age,'&address',&salary)
new 1: insert into emp values(10,'ram',33,'chennai',50000)

1 row created.

SQL> /
Enter value for id: 20
Enter value for name: raj
Enter value for age: 20
Enter value for address: chennai
Enter value for salary: 20000
old 1: insert into emp values(&id,'&name',&age,'&address',&salary)
new 1: insert into emp values(20,'raj',20,'chennai',20000)

1 row created.
SQL> /
Enter value for id: 30
Enter value for name: sai
Enter value for age: 26
Enter value for address: mumbai
Enter value for salary: 15000
old 1: insert into emp values(&id,'&name',&age,'&address',&salary)
new 1: insert into emp values(30,'sai',26,'mumbai',15000)

1 row created.

SQL> /
Enter value for id: 40
Enter value for name: sam
Enter value for age: 27
Enter value for address: hyderabad
Enter value for salary: 20000
old 1: insert into emp values(&id,'&name',&age,'&address',&salary)
new 1: insert into emp values(40,'sam',27,'hyderabad',20000)

1 row created.

SQL> /
Enter value for id: 50
Enter value for name: tom
Enter value for age: 29
Enter value for address: pune
Enter value for salary: 65000
old 1: insert into emp values(&id,'&name',&age,'&address',&salary)
new 1: insert into emp values(50,'tom',29,'pune',65000)

1 row created.

SQL> /
Enter value for id: 60
Enter value for name: jerry
Enter value for age: 30
Enter value for address: kochin
Enter value for salary: 85000
old 1: insert into emp values(&id,'&name',&age,'&address',&salary)
new 1: insert into emp values(60,'jerry',30,'kochin',85000)

1 row created.

SQL> select * from emp;

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 50000
20 raj 20 chennai 20000
30 sai 26 mumbai 15000
40 sam 27 hyderabad 20000
50 tom 29 pune 65000
60 jerry 30 kochin 85000

6 rows selected.

SQL> select * from emp;

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500
20 raj 20 chennai 20000
30 sai 26 mumbai 15000
40 sam 27 hyderabad 20000
50 tom 29 pune 16250
60 jerry 30 hyderabad 25250
70 jack 33 bangalore 60000
80 jill 38 bangalore 65000
90 donald 23 chennai 10000
SQL> select max(salary) from emp;

MAX(SALARY)
-----------
65000

SQL> select id,name from emp where salary=65000;

ID NAME
---------- ----------
80 jill
SQL> select id,name from emp where salary=(select max(salary) from emp);

ID NAME
---------- ----------
80 jill
SQL> select * from emp where salary>(select avg(salary) from emp);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
70 jack 33 bangalore 60000
80 jill 38 bangalore 65000
SQL> select * from emp where salary>(select avg(salary) from emp)order by
age desc;

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
80 jill 38 bangalore 65000
70 jack 33 bangalore 60000
SQL> select * from emp where salary<(select avg(salary) from emp)order by
age desc;

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500
60 jerry 30 hyderabad 25250
50 tom 29 pune 16250
40 sam 27 hyderabad 20000
30 sai 26 mumbai 15000
90 donald 23 chennai 10000
20 raj 20 chennai 20000
SQL> select * from emp where salary<=(select avg(salary) from emp);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500
20 raj 20 chennai 20000
30 sai 26 mumbai 15000
40 sam 27 hyderabad 20000
50 tom 29 pune 16250
60 jerry 30 hyderabad 25250
90 donald 23 chennai 10000

7 rows selected.

SQL> select * from emp where salary>=(select avg(salary) from emp);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
70 jack 33 bangalore 60000
80 jill 38 bangalore 65000
SQL> insert into emp values(100,'gow',30,'chennai',27100);

1 row created.

SQL> select * from emp where salary<=(select avg(salary) from emp);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500
20 raj 20 chennai 20000
30 sai 26 mumbai 15000
40 sam 27 hyderabad 20000
50 tom 29 pune 16250
60 jerry 30 hyderabad 25250
90 donald 23 chennai 10000
100 gow 30 chennai 27100
8 rows selected.

SQL> select * from emp where salary>=(select avg(salary) from emp);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
70 jack 33 bangalore 60000
80 jill 38 bangalore 65000
SQL> select * from emp where id in(select id from emp where salary>20000);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 50000
50 tom 29 pune 65000
60 jerry 30 kochin 85000

SQL> select * from emp where id in(select id from emp where salary>=20000);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 50000
20 raj 20 chennai 20000
40 sam 27 hyderabad 20000
50 tom 29 pune 65000
60 jerry 30 kochin 85000

SQL> update emp set salary=salary*0.25 where age in(select age from emp
where age>=29);

3 rows updated.

SQL> select * from emp;

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500
20 raj 20 chennai 20000
30 sai 26 mumbai 15000
40 sam 27 hyderabad 20000
50 tom 29 pune 16250
60 jerry 30 kochin 21250

6 rows selected.
SQL> update emp set salary=salary*10 where age not in(select age from emp
where age>=30);

5 rows updated.

SQL> select * from emp;

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500
20 raj 20 chennai 200000
30 sai 26 mumbai 150000
40 sam 27 hyderabad 200000
50 tom 29 pune 162500
60 jerry 30 hyderabad 25250
70 jack 33 bangalore 60000
80 jill 38 bangalore 65000
90 donald 23 chennai 100000
100 gow 30 chennai 27100
SQL> select * from emp where salary<any(select max(salary) from emp);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500
30 sai 26 mumbai 150000
50 tom 29 pune 162500
60 jerry 30 hyderabad 25250
70 jack 33 bangalore 60000
80 jill 38 bangalore 65000
90 donald 23 chennai 100000
100 gow 30 chennai 27100
SQL> select * from emp where salary=all(select salary from emp where
salary<=20000);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
10 ram 33 chennai 12500

SQL> select * from emp where salary>all(select salary from emp where
salary<=20000);

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
20 raj 20 chennai 200000
30 sai 26 mumbai 150000
40 sam 27 hyderabad 200000
50 tom 29 pune 162500
60 jerry 30 hyderabad 25250
70 jack 33 bangalore 60000
80 jill 38 bangalore 65000
90 donald 23 chennai 100000
100 gow 30 chennai 27100
SQL> delete from emp where age in(select age from emp where age>=30);

2 rows deleted.

SQL> select * from emp;

ID NAME AGE ADDRESS SALARY


---------- ---------- ---------- ---------- ----------
20 raj 20 chennai 20000
30 sai 26 mumbai 15000
40 sam 27 hyderabad 20000
50 tom 29 pune 16250
VIEWS
SQL> connect

Enter user-name: system

Enter password:

Connected.

SQL> create taable s(sid number(10),sname varchar(10),address varchar(10));

create taable s(sid number(10),sname varchar(10),address varchar(10))

ERROR at line 1:

ORA-00901: invalid CREATE command

SQL> create table s(sid number(10),sname varchar(10),address varchar(10));

Table created.

SQL> insert into s values(1,'ram','chennai');

1 row created.

SQL> insert into s values(2,'raj','chennai');

1 row created.
SQL> insert into s values(3,'siva','pune');

1 row created.

SQL> insert into s values(4,'selvam','bangalore');

1 row created.

SQL> select * from s;

SID SNAME ADDRESS

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

1 ram chennai

2 raj chennai

3 siva pune

4 selvam bangalore

SQL> create table s1(sid number(10),sname varchar(10),marks number(10),age


varchar(10));

Table created.

SQL> insert into s1 values(1,'ram',90,20);


1 row created.

SQL> insert into s1 values(2,'raj',90,21);

1 row created.

SQL> insert into s1 values(3,'siva',80,19);

1 row created.

SQL> insert into s1 values(4,'selvam',88,19);

1 row created.

SQL> select * from s1;

SID SNAME MARKS AGE

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

1 ram 90 20

2 raj 90 21

3 siva 80 19

4 selvam 88 19

SQL> create view sv as select sname,address from s where sid<4;


View created.

SQL> select * from sv;

SNAME ADDRESS

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

ram chennai

raj chennai

siva pune

SQL> create view sv1 as select s.sname,s.address,s1.marks from s,s1 where


s.sid=s1.sid;

View created.

SQL> select * from sv1;

SNAME ADDRESS MARKS

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

ram chennai 90

raj chennai 90

siva pune 80

selvam bangalore 88
SQL> drop view sv1;

View dropped.

SQL> select * from sv1;

select * from sv1

ERROR at line 1:

ORA-00942: table or view does not exist

Output:

Result: Hence the above query has been implemented successfully.


Experiment 7

AIM: To write a program for Join Queries on sample exercise.

Program:

SQL> create table fac(fid number(10),fname varchar(10),address


varchar(10),age number(10));

Table created.

SQL> create table fcou(cid number(10),fid number(10));

Table created.

SQL> insert into fac values(&fid,'&fname','&address',&age);

Enter value for fid: 1

Enter value for fname: aaa

Enter value for address: chennai

Enter value for age: 30

old 1: insert into fac values(&fid,'&fname','&address',&age)

new 1: insert into fac values(1,'aaa','chennai',30)

1 row created.

SQL> /

Enter value for fid: 2

Enter value for fname: bbb

Enter value for address: chennai


Enter value for age: 33

old 1: insert into fac values(&fid,'&fname','&address',&age)

new 1: insert into fac values(2,'bbb','chennai',33)

1 row created.

SQL> /

Enter value for fid: 3

Enter value for fname: ccc

Enter value for address: bangalore

Enter value for age: 34

old 1: insert into fac values(&fid,'&fname','&address',&age)

new 1: insert into fac values(3,'ccc','bangalore',34)

1 row created.

SQL> /

Enter value for fid: 4

Enter value for fname: ddd

Enter value for address: kochin

Enter value for age: 30

old 1: insert into fac values(&fid,'&fname','&address',&age)

new 1: insert into fac values(4,'ddd','kochin',30)

1 row created.
SQL> /

Enter value for fid: 5

Enter value for fname: eee

Enter value for address: hyderabad

Enter value for age: 30

old 1: insert into fac values(&fid,'&fname','&address',&age)

new 1: insert into fac values(5,'eee','hyderabad',30)

1 row created.

SQL> /

Enter value for fid: 6

Enter value for fname: fff

Enter value for address: hyderabad

Enter value for age: 29

old 1: insert into fac values(&fid,'&fname','&address',&age)

new 1: insert into fac values(6,'fff','hyderabad',29)

1 row created.

SQL> /

Enter value for fid: 7

Enter value for fname: ggg


Enter value for address: chennai

Enter value for age: 33

old 1: insert into fac values(&fid,'&fname','&address',&age)

new 1: insert into fac values(7,'ggg','chennai',33)

1 row created.

SQL> select * from fac;

FID FNAME ADDRESS AGE

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

1 aaa chennai 30

2 bbb chennai 33

3 ccc bangalore 34

4 ddd kochin 30

5 eee hyderabad 30

6 fff hyderabad 29

7 ggg chennai 33

7 rows selected.

SQL> insert into fcou values(10,1);

1 row created.
SQL> insert into fcou values(10,2);

1 row created.

SQL> insert into fcou values(20,3);

1 row created.

SQL> insert into fcou values(30,4);

1 row created.

SQL> insert into fcou values(20,5);

1 row created.

SQL> insert into fcou values(20,6);

1 row created.

SQL> select * from fcou;

CID FID

---------- ----------
10 1

10 2

20 3

30 4

20 5

20 6

6 rows selected.

SQL> select * from fac;

FID FNAME ADDRESS AGE

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

1 aaa chennai 30

2 bbb chennai 33

3 ccc bangalore 34

4 ddd kochin 30

5 eee hyderabad 30

6 fff hyderabad 29

7 ggg chennai 33

7 rows selected.

SQL> select fcou.cid,fac.fname,fac.age from fac inner join fcou on


fac.fid=fcou.fid;

CID FNAME AGE


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

10 aaa 30

10 bbb 33

20 ccc 34

30 ddd 30

20 eee 30

20 fff 29

6 rows selected.

SQL> select fac.fname,fcou.cid from fac left join fcou on fcou.fid=fac.fid;

FNAME CID

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

aaa 10

bbb 10

ccc 20

ddd 30

eee 20

fff 20

ggg

7 rows selected.
SQL> select fac.fid,fcou.cid from fac left join fcou on fcou.fid=fac.fid;

FID CID

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

1 10

2 10

3 20

4 30

5 20

6 20

7 rows selected.

SQL> select fac.fid,fcou.cid from fac right join fcou on fcou.fid=fac.fid;

FID CID

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

1 10

2 10

3 20

4 30

5 20

6 20
6 rows selected.

SQL> insert into fcou values(40,7);

1 row created.

SQL> insert into fcou values(40,8);

1 row created.

SQL> select fac.fid,fcou.cid from fac right join fcou on fcou.fid=fac.fid;

FID CID

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

1 10

2 10

3 20

4 30

5 20

6 20

7 40

40
8 rows selected.

SQL> select fac.fid,fcou.cid from fac full join fcou on fcou.fid=fac.fid;

FID CID

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

1 10

2 10

3 20

4 30

5 20

6 20

7 40

40

8 rows selected.

SQL> select fcou.fid,fcou.cid from fac full join fcou on fcou.fid=fac.fid;

FID CID

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

1 10

2 10

3 20
4 30

5 20

6 20

7 40

8 40

8 rows selected.

SQL> select fac.fid,fcou.fid from fac full join fcou on fcou.fid=fac.fid;

FID FID

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

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 rows selected.

Output:

Result: Hence the above query has been implemented successfully.


Experiment: 8

AIM: To implement the program for Set Operators & Views.


Program:
SQL> create table z(id number(10),name varchar(10));

Table created.

SQL> insert into z values(1,'a');

1 row created.

SQL> insert into z values(2,'b');

1 row created.

SQL> create table z1(id number(10),name varchar(10));

Table created.

SQL> insert into z1 values(2,'b');

1 row created.
SQL> insert into z1 values(3,'c');

1 row created.

SQL> insert into z1 values(4,'d');

1 row created.

SQL> select * from z;

ID NAME

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

1a

2b

SQL> select * from z1;

ID NAME

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

2b

3c

4d
SQL> select * from z union select * from z1;

ID NAME

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

1a

2b

3c

4d

SQL> select * from z union all select * from z1;

ID NAME

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

1a

2b

2b

3c

4d

SQL> select * from z intersect select * from z1;


ID NAME

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

2b

SQL> select * from z minus select * from z1;

ID NAME

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

1a

SQL> select * from z1 minus select * from z;

ID NAME

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

3c

4d

OUTPUT:

Result: The above query has been implemented successfully


Experiment: 9

AIM: To write a program on PL/SQL Conditional and Iterative Statements

Program:

Set serveroutput on

SQL> declare

2 a integer:=10;

3 begin

4 dbms_output.put_line(a);

5 end;

6 /

10

PL/SQL procedure successfully completed.

SQL> declare

2 a varchar(10):='hello';

3 begin

4 dbms_output.put_line(a);

5 end;

6 /

hello

PL/SQL procedure successfully completed.

SQL> declare

2 a integer:=10;
3 begin

4 dbms_output.put_line('value of a:'||a);

5 end;

6 /

value of a:10

PL/SQL procedure successfully completed.

SQL> declare

2 pi constant number:=3.14;

3 begin

4 dbms_output.put_line(pi);

5 end;

6 /

3.14

PL/SQL procedure successfully completed.

SQL> declare

2 a integer:=10;

3 b integer:=20;

4 c integer;

5 begin

6 c:=a+b;

7 dbms_output.put_line(c);

8 end;
9 /

30

IF-ELSE

PL/SQL procedure successfully completed.

SQL> declare

2 a integer:=30;

3 begin

4 if(a<20) then

5 dbms_output.put_line('a is less than 20');

6 else

7 dbms_output.put_line('a is not less than 20');

8 end if;

9 end;

10 /

a is not less than 20

CASE STATEMENT

PL/SQL procedure successfully completed.

SQL> DECLARE

2 grade char(1) := 'A';

3 BEGIN

4 CASE grade

5 when 'A' then dbms_output.put_line('Excellent');

6 when 'B' then dbms_output.put_line('Very good');

7 when 'C' then dbms_output.put_line('Good');


8 when 'D' then dbms_output.put_line('Average');

9 when 'F' then dbms_output.put_line('Passed with Grace');

10 else dbms_output.put_line('Failed');

11 END CASE;

12 END;

13 /

Excellent

LOOP

PL/SQL procedure successfully completed.

SQL> DECLARE

2 i NUMBER := 1;

3 BEGIN

4 LOOP

5 EXIT WHEN i>10;

6 DBMS_OUTPUT.PUT_LINE(i);

7 i := i+1;

8 END LOOP;

9 END;

10 /

5
6

10

WHILE LOOP

PL/SQL procedure successfully completed.

SQL> DECLARE

2 i INTEGER := 1;

3 BEGIN

4 WHILE i <= 10 LOOP

5 DBMS_OUTPUT.PUT_LINE(i);

6 i := i+1;

7 END LOOP;

8 END;

9 /

8
9

10

FOR LOOP

PL/SQL procedure successfully completed.

SQL> DECLARE

2 VAR1 NUMBER;

3 BEGIN

4 VAR1:=10;

5 FOR VAR2 IN 1..10

6 LOOP

7 DBMS_OUTPUT.PUT_LINE (VAR1*VAR2);

8 END LOOP;

9 END;

10 /

10

20

30

40

50

60

70

80

90

100
PL/SQL procedure successfully completed.

OUTPUT:

Result: The above query has been implemented successfully.


Experiment: 10

AIM: To write a program on PL/SQL Procedures on sample exercises.


Program:

SQL> create table proc(id number(10),name varchar(10));

Table created.

SQL> create or replace procedure "INSERTUSER"

(id IN NUMBER,

name IN VARCHAR2)

is

begin

insert into proc values(id,name);

end;

Procedure created.

SQL> BEGIN

insertuser(101,'Rahul');

dbms_output.put_line('record inserted successfully');

END;

record inserted successfully

PL/SQL procedure successfully completed.


SQL> select * from proc;

ID NAME

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

101 Rahul

OUTPUT:

Result: The above query has been implemented successfully


Experiment: 11

AIM: To write a program on PL/SQL Functions


Program:

SQL> create or replace function adder(n1 in number, n2 in number)

2 return number

3 is

4 n3 number(8);

5 begin

6 n3 :=n1+n2;

7 return n3;

8 end;

9 /

Function created.

SQL> DECLARE

2 n3 number(2);

3 BEGIN

4 n3 := adder(11,22);

5 dbms_output.put_line('Addition is: ' || n3);

6 END;

7 /

Addition is: 33
PL/SQL procedure successfully completed.

SQL> DECLARE

2 a number;

3 b number;

4 c number;

5 FUNCTION findMax(x IN number, y IN number)

6 RETURN number

7 IS

8 z number;

9 BEGIN

10 IF x > y THEN

11 z:= x;

12 ELSE

13 Z:= y;

14 END IF;

15

16 RETURN z;

17 END;

18 BEGIN

19 a:= 23;

20 b:= 45;

21

22 c := findMax(a, b);

23 dbms_output.put_line(' Maximum of (23,45): ' || c);


24 END;

25 /

Maximum of (23,45): 45

PL/SQL procedure successfully completed.

SQL> select * from emp;

ID NAME AGE ADDRESS SALARY

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

30 sai 26 mumbai 150000

40 sam 27 hyderabad 200000

50 tom 29 pune 40630

SQL> create or replace function totalemp

2 return number is

3 total number(10):=0;

4 begin

5 select count(*) into total from emp;

6 return total;

7 end;

8 /

Function created.
SQL> declare

2 c number(20);

3 begin

4 c:=totalemp();

5 dbms_output.put_line('Total no of emp:'||c);

6 end;

7 /

Total no of emp:3

PL/SQL procedure successfully completed.

SQL> DECLARE

2 num number;

3 factorial number;

5 FUNCTION fact(x number)

6 RETURN number

7 IS

8 f number;

9 BEGIN

10 IF x=0 THEN

11 f := 1;

12 ELSE

13 f := x * fact(x-1);

14 END IF;
15 RETURN f;

16 END;

17

18 BEGIN

19 num:= 6;

20 factorial := fact(num);

21 dbms_output.put_line(' Factorial '|| num || ' is ' || factorial);

22 END;

23 /

Factorial 6 is 720

PL/SQL procedure successfully completed.

OUTPUT:

Result: The above query has been implemented successfully


Experiment: 12

AIM: To write program on PL/SQL Cursors

Program:

SQL> DECLARE

total_rows number(2);

BEGIN

UPDATE emp

SET salary = salary + 5000;

IF sql%notfound THEN

dbms_output.put_line('no customers updated');

ELSIF sql%found THEN

total_rows := sql%rowcount;

dbms_output.put_line( total_rows || ' customers updated ');

END IF;

END;

3 customers updated

PL/SQL procedure successfully completed.

SQL> select * from emp;

ID NAME AGE ADDRESS SALARY

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


30 sai 26 mumbai 155000

40 sam 27 hyderabad 205000

50 tom 29 pune 45630

EXPLICIT CURSOR

SQL> DECLARE

c_id emp.id%type;

c_name emp.name%type;

c_addr emp.address%type;

CURSOR c_emp is

SELECT id, name, address FROM emp;

begin

open c_emp;

loop

FETCH c_emp into c_id, c_name, c_addr;

EXIT WHEN c_emp%notfound;

dbms_output.put_line(c_id || ' ' || c_name || ' ' || c_addr);

end loop;

close c_emp;

end;

30 sai mumbai

40 sam hyderabad

50 tom pune
PL/SQL procedure successfully completed.

OUTPUT:

Result: The above query has been implemented successfully.


Experiment: 13

AIM: To write program on PL/SQL Exception Handling

Program:

SQL> DECLARE

c_id emp.id%type:=10;

c_name emp.name%type;

c_addr emp.address%type;

begin

SELECT name, address into c_name,c_addr FROM emp where id=c_id;

dbms_output.put_line('Name:'||c_name);

dbms_output.put_line('Address:'||c_addr);

exception

when no_data_found then dbms_output.put_line('no such customer');

when others then dbms_output.put_line('error');

end;

no such customer

PL/SQL procedure successfully completed.

SQL> declare

c_id emp.id%type:=30;

c_name emp.name%type;

c_addr emp.address%type;
begin

SELECT name, address into c_name,c_addr FROM emp where id=c_id;

dbms_output.put_line('Name:'||c_name);

dbms_output.put_line('Address:'||c_addr);

exception

when no_data_found then dbms_output.put_line('no such customer');

when others then dbms_output.put_line('error');

end;

Name:sai

Address:mumbai

PL/SQL procedure successfully completed.

USER DEFINED

SQL> declare

c_id emp.id%type:=&id;

c_name emp.name%type;

c_addr emp.address%type;

ex_invalid_id exception;

begin

if c_id<=0 then

raise ex_invalid_id;

else

select name,address into c_name,c_addr from emp where id=c_id;


dbms_output.put_line('name:'||c_name);

dbms_output.put_line('address:'||c_addr);

end if;

exception

when ex_invalid_id then dbms_output.put_line('id should be greater than zero');

when no_data_found then dbms_output.put_line('no such customer');

when others then dbms_output.put_line('error');

end;

Enter value for id: -6

old 2: c_id emp.id%type:=&id;

new 2: c_id emp.id%type:=-6;

id should be greater than zero

PL/SQL procedure successfully completed.

SQL> /

Enter value for id: 30

old 2: c_id emp.id%type:=&id;

new 2: c_id emp.id%type:=30;

name:sai

address:mumbai

PL/SQL procedure successfully completed.


OUTPUT:

Result: The above query has been implemented successfully.


Experiment 14

AIM: To write a program on PL/SQL Trigger

Program:

SQL> CREATE OR REPLACE TRIGGER display_salary_changes

BEFORE DELETE OR INSERT OR UPDATE ON emp

FOR EACH ROW

WHEN (NEW.ID > 0)

DECLARE

sal_diff number;

BEGIN

sal_diff := :NEW.salary - :OLD.salary;

dbms_output.put_line('Old salary: ' || :OLD.salary);

dbms_output.put_line('New salary: ' || :NEW.salary);

dbms_output.put_line('Salary difference: ' || sal_diff);

END;

Trigger created.

SQL> DECLARE

total_rows number(2);

BEGIN

UPDATE emp

SET salary = salary + 5000;

IF sql%notfound THEN
dbms_output.put_line('no customers updated');

ELSIF sql%found THEN

total_rows := sql%rowcount;

dbms_output.put_line( total_rows || ' customers updated ');

END IF;

END;

Old salary: 155000

New salary: 160000

Salary difference: 5000

Old salary: 205000

New salary: 210000

Salary difference: 5000

Old salary: 45630

New salary: 50630

Salary difference: 5000

3 customers updated

PL/SQL procedure successfully completed.

Output:

Result: Hence the above program is implemented successfully.


Experiment 15

AIM: To make a project with front-end and back-end using oracle DBMS

Procedure:

1. Consider the database of at least 4 schemas/tables.

2. Plan for attributes that cover all general data types.

3. Plan for constraints of different types (primary keys, foreign keys, unique
keys, check, not null etc) with appropriate constraint names.

4. Create appropriate data for the above schemas.

5. Implement the database in Oracle 10g Express Edition creating a user.

6. Plan queries and find the answers (at least 10).

7. Formulate everything in a report which includes:

o Brief description of the system that you are going to implement in


the database
o Mention schemas with attributes
o Expected functional dependencies on your schemas.
o Proof of good database design so that the schemas are in good form
(BCNF or 3NF)
o Schema diagram of the database
o E-R diagram of the database
o Snapshots of SQL DDL of all the schemas/tables
o Snapshots of the instances (data of the populated tables)
o Query statements in English language, SQL statements and
snapshots of the outputs. SQL statements should contain the
following :
o natural join, cross product, outer join, join with using, on
o Nested sub-queries with clauses (some, all, any, exists, unique etc.)
o order by, group by, having clauses
o Use of with clause
o Use of Functions (string/text, numeric) , set operations (union,
intersect, difference/minus)
o Exception handling and cursor operations
o Update, delete operations

 Conclusion of the work

Output:

Result: Hence the project was implemented successfully.

You might also like