Dbms Record 1 7 PROG
Dbms Record 1 7 PROG
PAGE
S.NO DATE CONTENT NO SIGNATURE
SQL
1. a) CREATION OF TABLES
PL/SQL
PROCEDURE
FUNCTION
FUNCTION THAT RETURNS EMPLOYEE
10. WORKING IN ADMIN DEPARTMENT
TRIGGER
EMPLOYEE
COMPANY
SQL>select * from company;
QUERY:
OUTPUT:
ENAME
smith
john
ramu
ragu
(C)FIND THE NAME AND CITY OF RESIDENCE FOR ALL EMPLOYEES WHO
WORK FOR A PARTICULAR COMPANY
EMPLOYEE
COMPANY
SQL>Select * from company;
QUERY:
SQL> select e.ename,e.city from employee e,company c where e.eid=c.eid and cname='TCS';
OUTPUT:
ENAME CITY
smith chennai
john chennai
ramu Chennai
ragu Delhi
D) FIND NAMES,STREET,ADDRESS AND CITY OF RESIDENCE OF ALL
EMPLOYEES WHO WORK FOR A PARTICULAR COMPANY AND EARN MORE
THAN RS.2,00,000 PER ANNUM
SQL>select * from employees where ename in (select ename from works where cname='cts'
and salary>200000);
OUTPUT:
ENAME AVG(SALARY)
john 126250
smith 126250
(F)FIND THE NAMES OF EMPLOYEES WHOSE SALARY IS GREATER THAN THE
AVERAGE SALARY OF A PARTICULAR COMPANY(SUBQUERY)
SQL> select * from works;
SQL> select ename,salary fro m works w1 where salary>(select avg(salary) from works w2
where w1.cname=w1.cname and cname='infosys');
OUTPUT:
ENAME SALARY
---------- ---------------
Rex 20000
(G)FIND THE TOTAL AND AVERAGE OF EACH COMPANY EMPLOYEES (GROUP
BY)
QUERY:
OUTPUT:
QUERY:
SQL> select ename,cname,salary from works where salary>(select avg(salary) from works
where cname='TCS');
OUTPUT:
QUERY:
OUTPUT:
QUERY:
OUTPUT:
ENAME CNAME
SALARY
_______________________________
Table created
PROGRAM:
declare
i number;
begin
for i in 1..10 loop
if mod(i,2)=0 then
insert into tem values(i,'is even');
else
insert into tem values(i,'is odd');
end if;
end loop;
end;
/
OUTPUT:
SQL> select * from tem;
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
10 is even
PL/SQL PROOGRAM TO SELECT FIVE HIGHEST PAID EMPLOYEES:
SQL> select * from employee order by salary;
ENO ENAME SALARY
---------- --------------- ----------
100 smith 5000
300 rock 8000
200 kelly 12000
400 jack 13000
700 brake 15000
500 gem 18000
600 john 22000
OUTPUT:
PROGRAM:
SQL> declare
2 cursor get_data is
3 select e.sal,e.empno,e.ename,e.deptno,d.dname from dept d,emp e where empno=1 and
e.deptno=d.deptno;
4 begin
5 for i IN get_data loop
6 update emp set sal=3000 where empno=i.empno;
7 update dept set dname='Testing' where deptno=i.deptno;
8 end loop;
9 commit;
10 end;
11 /
OUTPUT:
PROGRAM:
SQL> create or replace package emp_actions
2 as
3 cursor desc_salary return empl%rowtype;
4 procedure hire_employee(e_id number,e_name varchar2);
5 procedure fire_employee(e_id number);
6 end emp_actions;
7 /
Package created.
ENO ENAME
1001 smith
1002 rock
ENO ENAME
1001 smith
PL/SQL PROGRAM TO CALCULATE THE EXPERIENCE USING CURRENT DATE:
PROGRAM:
SQL> set serveroutput on
SQL> declare
2 hiredate experience.doj%type;
3 c number(5);
4 begin
5 select doj into hiredate from experience where eno=&empnov;
6 c:=months_between(sysdate,hiredate)/12;
7 dbms_output.put_line(c);
8 update experience set exp=c where eno=&empnov;
9 end;
10 /
OUTPUT:
(7),price number(9,2))
Table created.
PROGRAM:
begin
update items set price=price*(quantity*3) where itemno=2000;
end;
/
SQL> @item;