Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

1.

EXECUTE A SINGLE LINE QUERY AND GROUP FUNCTIONS

SINGLE LINE QUERY

SQL> create table EMPLOYEE


(
Emp_ID number not null,
Emp_Name varchar(10),
Emp_salary decimal(10,2)
);

Table created.

SQL> desc EMPLOYEE;

Name Null? TYPE

EMP_ID NOT NULL NUMBER


EMP_NAME VARCHAR(10)
EMP_SALARY DECIMAL(10,2)

SQL> Insert into EMPLOYEE values(101, 'john', 9000.50);

1 row created.

SQL> Insert into EMPLOYEE values(102, 'jack', 9700.80);

1 row created.

SQL> Insert into EMPLOYEE values(103, 'jai', 10000.75);

1 row created.

SQL> Insert into EMPLOYEE values(104, 'jagan', 7500.50);

1 row created.

SQL> Select * from EMPLOYEE;

Emp_ID Emp_Name Emp_salary

101 john 9000.50


102 jack 9700.80
103 jai 10000.75
104 jagan 7500.50
SQL> Select sum(Emp_salary) from EMPLOYEE;

sum(Emp_salary)

36202.55

SQL> Select avg(Emp_Salary) from EMPLOYEE;

avg(Emp_Salary)

9050.637500

SQL> Select max(Emp_Salary) from EMPLOYEE;

max(Emp_Salary)

10000.75

SQL> Select min(Emp_Salary) from EMPLOYEE;

min(Emp_Salary)

7500.50

SQL> Select count(Emp_Salary) from EMPLOYEE;

count(Emp_Salary)

SQL> Select upper(Emp_Name) from EMPLOYEE;

upper(Emp_Name)

JOHN
JACK
JAI
JAGAN

SQL> Select lower(Emp_Name) from EMPLOYEE;


lower(Emp_Name)

john
jack
jai
jagan
SQL> Select substr(Emp_Name, 2, 3) from EMPLOYEE;

substr(Emp_Name, 2, 3)

ohn
ack
ai
aga

SQL> Select length(Emp_Name) from EMPLOYEE;

length(Emp_Name)

4
4
3
5

SQL> Select round(Emp_salary) from EMPLOYEE;

round(Emp_salary)

9001
9701
10001
7501

SQL> Select abs(-17.36) from dual;

abs(-17.36)

17.36

SQL> Select mod(25,7) from dual;

mod(25,7)

SQL> Select power(2,3) from dual;

power(2,3)

8
SQL> Select sqrt(36) from dual;

sqrt(36)

SQL>Select distinct(Emp_salary) from EMPLOYEE;

Emp_salary

9000.50
9700.80
10000.75
7500.50

SQL>Select distinct(Emp_ID) from EMPLOYEE;

Emp_ID

101
102
103
104
GROUP FUNCTIONS

SQL>create table PRODUCT


(
Product_Name varchar(10),
Company_ID varchar(10),
No_of_Product number,
Cost number,
MRP number
);

Table created.

SQL>Insert into PRODUCT values('ITEM1', 'COM1', 5, 200, 210);

1 row created.

SQL>Insert into PRODUCT values('ITEM2', 'COM2', 10, 210, 250);

1 row created.

SQL>Insert into PRODUCT values('ITEM3', 'COM3', 4, 300, 320);

1 row created.

SQL>Insert into PRODUCT values('ITEM4', 'COM1', 6, 100, 140);

1 row created.

SQL>Insert into PRODUCT values('ITEM5', 'COM1', 8, 150, 170);

1 row created.

SQL>Insert into PRODUCT values('ITEM6', 'COM2', 7, 600, 650);

1 row created.

SQL>Insert into PRODUCT values('ITEM7', 'COM2', 2, 450, 500);

1 row created.

SQL>Insert into PRODUCT values('ITEM8', 'COM3', 5, 270, 290);

1 row created.
SQL>desc PRODUCT;

NAME NULL? TYPE

PRODUCT_NAME VARCHAR(10)
COMPANY_ID VARCHAR(10)
NO_OF_PRODUCT NUMBER
COST NUMBER
MRP NUMBER

SQL>select * from PRODUCT;

Product_Name Company_ID No_of_Product Cost MRP

ITEM1 COM1 5 200 210


ITEM2 COM2 10 210 250
ITEM3 COM3 4 300 320
ITEM4 COM1 6 100 140
ITEM5 COM1 8 150 170
ITEM6 COM2 7 600 650
ITEM7 COM2 2 450 500
ITEM8 COM3 5 270 290

SQL>select count(*) from PRODUCT where MRP>=270;

count(*)

SQL>select count(distinct Company_ID) from PRODUCT;

count(distinct Company_ID)

SQL>select Company_ID, count(*) from PRODUCT group by Company_ID;

Company_ID count(*)

COM1 3
COM2 3
COM3 2
SQL>select Company_ID, count(*) from PRODUCT group by Company_ID
having count(*)>2;

Company_ID count(*)

COM1 3
COM2 3

SQL>select sum(MRP) from PRODUCT where No_of_Product>5;

sum(MRP)

1210

SQL>select sum(MRP) from PRODUCT where No_of_Product>6 group by


Company_ID;

sum(MRP)

900
170

SQL>select Company_ID,sum(MRP) from PRODUCT group by Company_ID


having sum(MRP)>=140;

Company_ID sum(MRP)

COM1 520
COM2 1400
COM3 610
2. EXECUTE DDL COMMANDS

DDL COMMANDS

SQL>Create table STUDENT_DETAILS


(
Stu_ID number,
Stu_Name varchar(10),
Stu_Age number,
Stu_Phone_Num varchar(10)
);

Table created.

SQL>Desc STUDENT_DETAILS;

Name Null? Type

STU_ID NUMBER(38)
STU_NAME VARCHAR2(10)
STU_AGE NUMBER(38)
STU_PHONE_NUM VARCHAR2(10)

SQL>Alter table STUDENT_DETAILS add(Stu_Address varchar(10));

Table altered.

SQL>Desc STUDENT_DETAILS;

Name Null? Type

STU_ID NUMBER(38)
STU_NAME VARCHAR2(10)
STU_AGE NUMBER(38)
STU_PHONE_NUM VARCHAR2(10)
STU_ADDRESS VARCHAR2(10)

SQL>Alter table STUDENT_DETAILS drop column Stu_Age;

Table altered.
SQL>Desc STUDENT_DETAILS;

Name Null? Type

STU_ID NUMBER(38)
STU_NAME VARCHAR2(10)
STU_PHONE_NUM VARCHAR2(10)
STU_ADDRESS VARCHAR2(10)

SQL>Alter table STUDENT_DETAILS rename to STUDENT_INFO;

Table altered.

SQL>Desc STUDENT_DETAILS;

ERROR:
ORA-04043: object STUDENT_DETAILS does not exist

SQL>Desc STUDENT_INFO;

Name Null? Type

STU_ID NUMBER(38)
STU_NAME VARCHAR2(10)
STU_PHONE_NUM VARCHAR2(10)
STU_ADDRESS VARCHAR2(10)

SQL>insert into STUDENT_INFO values(101, 'AAA', 87788, 'Vandavasi');

1 row created.

SQL>select * from STUDENT_INFO;

STU_ID STU_NAME STU_CONTACT_NUM STU_ADDRESS

101 AAA 87788 Vandavasi

SQL>Truncate table STUDENT_INFO;

Table truncated.

SQL>select * from STUDENT_INFO;

No rows selected.
SQL>drop table STUDENT_INFO;

Table dropped.

SQL>Desc STUDENT_INFO;

ERROR:
ORA-04043: object STUDENT_INFO does not exist
3. EXECUTE DML COMMANDS

DML COMMANDS

SQL>Create table STUDENT_DETAILS


(
Stu_ID number not null,
Stu_Name varchar(10),
Stu_Age number,
Stu_Phone_Num number
);

Table created.

SQL>Desc STUDENT_DETAILS;

Name Null? Type

STU_ID NOT NULL NUMBER


STU_NAME VARCHAR(10)
STU_AGE NUMBER
STU_PHONE_NUM VARCHAR(10)

SQL>Insert into STUDENT_DETAILS values(101,'AAA', 20, 99999);

1 row created.

SQL>Insert into STUDENT_DETAILS values(102,'BBB', 20, 98888);

1 row created.

SQL>Insert into STUDENT_DETAILS values(103,'CCC', 21, 97777);

1 row created.

SQL>Insert into STUDENT_DETAILS values(104,'DDD', 20, 96666);

1 row created.

SQL>Insert into STUDENT_DETAILS values(105,'EEE', 21, 95555);

1 row created.
SQL>Select * from STUDENT_DETAILS;

Stu_ID Stu_Name Stu_Age Stu_Phone_Num

101 AAA 20 99999


102 BBB 20 98888
103 CCC 21 97777
104 DDD 20 96666
105 EEE 21 95555

SQL>Select Stu_Name from STUDENT_DETAILS;

Stu_Name

AAA
BBB
CCC
DDD
EEE

SQL>Update STUDENT_DETAILS set Stu_Name = ‘FFF’


where Stu_ID = 103;

1 row updated.

SQL>Select * from STUDENT_DETAILS;

Stu_ID Stu_Name Stu_Age Stu_Phone_Num

101 AAA 20 99999


102 BBB 20 98888
103 FFF 20 97777
104 DDD 20 96666
105 EEE 20 95555

SQL>Delete from STUDENT_DETAILS where Stu_ID = 102;

1 row deleted.

SQL>Select * from STUDENT_DETAILS;


Stu_ID Stu_Name Stu_Age Stu_Phone_Num

101 AAA 20 99999


103 FFF 20 97777
104 DDD 20 96666
105 EEE 20 95555
4. EXECUTE DCL AND TCL COMMANDS

DCL COMMANDS

SQL> create table EMPLOYEE


(
E_ID number,
E_Name varchar(10)
);

Table created.

SQL> Desc EMPLOYEE;

Name Null? Type

E_ID NUMBER
E_NAME VARCHAR(10)

SQL> conn

Enter user-name: scott


Enter password: *****

Connected.

SQL>grant all on EMPLOYEE to public;

Grant succeeded.

SQL> revoke all on EMPLOYEE from public;

Revoke succeeded.

SQL> grant insert, select on EMPLOYEE to scott;

Grant insert, select on EMPLOYEE to scott


*

ERROR at line 1:
ORA-01749: you may not GRANT/REVOKE privileges to/from yourself
TCL COMMANDS

SQL> create table STUDENT_MARK_DETAILS


(
Reg_Num number,
Stu_Name varchar(10),
Tamil number,
English number,
Major number,
Allied number
);

Table created.

SQL> desc STUDENT_MARK_DETAILS;

Name Null? Type

REG_NUM NUMBER
STU_NAME VARCHAR(10)
TAMIL NUMBER
ENGLISH NUMBER
MAJOR NUMBER
ALLIED NUMBER

SQL> insert into STUDENT_MARK_DETAILS values(1001, 'JACK', 90, 70,


87, 76);

1 row created.

SQL> insert into STUDENT_MARK_DETAILS values(1002, 'SMITH', 69,


86,77, 78);

1 row created.

SQL> insert into STUDENT_MARK_DETAILS values(1003, 'JHON', 66, 77,


88, 90);

1 row created.

SQL> insert into STUDENT_MARK_DETAILS values(1004, 'JANANI', 76,


87, 86, 85);

1 row created.
SQL> insert into STUDENT_MARK_DETAILS values(1005,'JAI', 87, 79, 76,
73);

1 row created.

SQL> insert into STUDENT_MARK_DETAILS values(1006,'ARUN', 87, 79,


76, 73);

1 row created.

SQL> insert into STUDENT_MARK_DETAILS values(1007,'ABI', 87, 79, 76,


73);

1 row created.

SQL> insert into STUDENT_MARK_DETAILS values(1008,'PAVI', 87, 79,


76, 73);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from STUDENT_MARK_DETAILS;

Reg_Num Stu_Name Tamil English Major Allied

1001 JACK 90 70 87 76
1002 SMITH 69 86 77 78
1003 JHON 66 77 88 90
1004 JANANI 76 87 86 85
1005 JAI 87 79 76 73
1006 ARUN 87 79 76 73
1007 ABI 87 79 76 73
1008 PAVI 87 79 76 73

SQL> delete from STUDENT_MARK_DETAILS where Stu_Name = 'JHON';

1 row deleted.

SQL> commit;

Commit complete.
SQL> select * from STUDENT_MARK_DETAILS;

Reg_Num Stu_Name Tamil English Major Allied

1001 JACK 90 70 87 76
1002 SMITH 69 86 77 78
1004 JANANI 76 87 86 85
1005 JAI 87 79 76 73
1006 ARUN 87 79 76 73
1007 ABI 87 79 76 73
1008 PAVI 87 79 76 73

SQL> delete from STUDENT_MARK_DETAILS where Reg_Num = 1005;

1 row deleted.

SQL> rollback;

Rollback complete.

SQL> select * from STUDENT_MARK_DETAILS;

Reg_Num Stu_Name Tamil English Major Allied

1001 JACK 90 70 87 76
1002 SMITH 69 86 77 78
1004 JANANI 76 87 86 85
1005 JAI 87 79 76 73
1006 ARUN 87 79 76 73
1007 ABI 87 79 76 73
1008 PAVI 87 79 76 73

SQL> savepoint SP1;

Savepoint created.

SQL> delete from STUDENT_MARK_DETAILS where Reg_Num = 1008;

1 row deleted.

SQL> savepoint SP2;

Savepoint created.
SQL> delete from STUDENT_MARK_DETAILS where English>= 80;

1 row deleted.

SQL> savepoint SP3;

Savepoint created.

SQL> Alter table STUDENT_MARK_DETAILS drop column Allied;

Table altered.

SQL> rollback to SP2;

Rollback complete.

SQL> select * from STUDENT_MARK_DETAILS;

Reg_Num Stu_Name Tamil English Major Allied

1001 JACK 90 70 87 76
1002 SMITH 69 86 77 78
1004 JANANI 76 87 86 85
1005 JAI 87 79 76 73
1006 ARUN 87 79 76 73
1007 ABI 87 79 76 73
5. IMPLEMENT THE NESTED QUERIES

NESTED QUERIES

SQL>create table DEPOSITOR


(
Cust_Name varchar(20),
Acc_No varchar(10)
);

Table created.

SQL>Desc DEPOSITOR;
Name Null? Type
--------------- ------- --------------------
CUST_NAME VARCHAR(20)
ACC_NO VARCHAR(10)

SQL>insert into DEPOSITOR values('Jones',101);

1 row created.

SQL>insert into DEPOSITOR values('Smith',102);

1 row created.

SQL>insert into DEPOSITOR values('Hayas',103);

1 row created.

SQL>insert into DEPOSITOR values('Adams',104);

1 row created.

SQL>insert into DEPOSITOR values('smith',105);

1 row created.

SQL>select * from DEPOSITOR;

Cust_Name Acc_No

Jones 101
Smith 102
Hayas 103
Adams 104
smith 105
SQL> commit;

Commit complete.

SQL> create table BORROWER


(
Cus_Name varchar(20),
loan_no varchar(10)
);

Table created.

SQL> Desc BORROWER;

Name Null? Type

CUS_NAME VARCHAR(20)
LOAN_NO VARCHAR(10)

SQL> insert into BORROWER values('Williams',101);

1 row created.

SQL> insert into BORROWER values('Johnson',102);

1 row created.

SQL> insert into BORROWER values('Jones',103);

1 row created.

SQL> insert into BORROWER values('Smith',104);

1 row created.

SQL> insert into BORROWER values('Jackson',105);

1 row created.

SQL> select * from BORROWER;


Cus_Name loan_no

Williams 101
Johnson 102
Jones 103
Smith 104
Jackson 105
SQL> select Cust_Name from DEPOSITOR
where Cust_Name IN (select Cus_Name from BORROWER);

Cust_Name
Jones
Smith
smith

SQL> select cust_name from DEPOSITOR


where cust_name NOT IN (select cus_name from BORROWER);

cust_name
Hayas
Adams

SQL>select Cus_Name from BORROWER where EXISTS( select * from


DEPOSITOR where DEPOSITOR.Cust_Name = BORROWER.Cus_Name);

Cus_Name
Jones
Smith

SQL>select Cus_Name from BORROWER where NOT EXISTS( select * from


DEPOSITOR where DEPOSITOR.Cust_Name = BORROWER.Cus_Name);

Cus_Name
Williams
Johnson
Jackson

SQL> create table BRANCH


(
Branch_Name varchar(20),
Branch_City varchar(20),
Assets varchar(20)
);

Table created.
SQL>Desc BRANCH;

Name Null? Type

BRANCH_NAME VARCHAR(20)
BRANCH_CITY VARCHAR(20)
ASSETS VARCHAR(20)

SQL>insert into BRANCH values('brighton','brooklyn','5000000');

1 row created.

SQL>insert into BRANCH values('downtown','brooklyn','5000000');

1 row created.

SQL>insert into BRANCH values('perryridge','horseneck','7000000');

1 row created.

SQL>insert into BRANCH values('redwood','paloalto','8000000');

1 row created.

SQL>insert into BRANCH values('roundhill','bennington','3000000');

1 row created.

SQL>select * from BRANCH;

Branch_Name Branch_City Assets

BRIGHTON BROOKLYN 5000000


DOWNTOWN BROOKLYN 5000000
PERRYRIDGE HORSENECK 7000000
REDWOOD PALOALTO 8000000
ROUNDHILL BENNINGTON 3000000

SQL> commit;

Commit complete.
SQL> select Branch_Name, Branch_City from BRANCH where Assets >
SOME (select Assets from BRANCH
where Branch_City ='brooklyn');

Branch_Name Branch_City

perryridge horseneck
redwood paloalto

SQL>select Branch_Name, Branch_City from BRANCH where Assets < ANY


(select assets from BRANCH
where Branch_City ='brooklyn');

Branch_Name Branch_City

roundhill bennington

SQL>select Branch_Name, Branch_City from BRANCH where Assets >= ALL


(select Assets from BRANCH where Branch_City ='brooklyn');

Branch_Name Branch_City

brighton brooklyn
downtown brooklyn
perryridge horseneck
redwood paloalto
6. IMPLEMENT JOIN OPERATIONS IN SQL

SQL> create table PRODUCT_DET


(
p_id number(5),
p_name varchar(20),
supplier_name varchar(20),
unit_price number(5)
);

Table created.

SQL> desc PRODUCT_DET;

Name Null? Type

P_ID NUMBER(5)
P_NAME VARCHAR2(20)
SUPPLIER_NAME VARCHAR2(20)
UNIT_PRICE NUMBER(5)

SQL> insert into PRODUCT_DET values(100,'camera','nikon',300);

1 row created.

SQL> insert into PRODUCT_DET values(101,'television','onida',120);

1 row created.

SQL> insert into PRODUCT_DET values(120,'fridge','videocon',140);

1 row created.

SQL> insert into PRODUCT_DET values(103,'ipod','apple',60);

1 row created.

SQL> insert into PRODUCT_DET values(104,'mobile','nokia',85);

1 row created.
SQL> select * from PRODUCT_DET;

P_ID P_NAME SUPPLIER_NAME UNIT_PRICE


---- ------- ------------- ---------
100 camera nikon 300
101 television onida 120
120 fridge videocon 140
103 ipod apple 60
104 mobile nokia 85

SQL> commit;

Commit complete.

SQL> create table ORDER_DET


(
o_id number(5),
p_id number(5),
total_units number(5),
customer varchar2(15)
);

Table created.

SQL> insert into ORDER_DET values(5100,104,30,'infosys');

1 row created.

SQL> insert into ORDER_DET values(5101,120,10,'satyam');

1 row created.

SQL> insert into ORDER_DET values(5102,103,20,'wipro');

1 row created.

SQL> insert into ORDER_DET values(5103,101,30,'tcs');

1 row created.

SQL> insert into ORDER_DET values(5104,106,76,'cts');

1 row created.
SQL> select * from ORDER_DET;

O_ID P_ID TOTAL_UNITS CUSTOMER

5100 104 30 infosys


5101 120 10 satyam
5102 103 20 wipro
5103 101 30 tcs
5104 106 76 cts

SQL> commit;

Commit complete.

LEFT OUTER JOIN

SQL> select p.p_id, p.p_name, o.o_id, o.total_units


from ORDER_DET o, PRODUCT_DET p
where o.p_id(+)=p.p_id;

P_ID P_NAME O_ID TOTAL_UNITS

100 camera
101 television 5103 30
120 fridge 5101 10
103 ipod 5102 20
104 mobile 5100 30

RIGHT OUTER JOIN

SQL> select p.p_id, p.p_name, o.o_id, o.total_units


from ORDER_DET o, PRODUCT_DET p
where o.p_id=p.p_id(+);

P_ID P_NAME O_ID TOTAL_UNITS

101 television 5103 30


103 ipod 5102 20
104 mobile 5100 30
5104 76
120 fridge 5101 10
EQUI JOIN

SQL> select p.p_id, p.p_name, o.o_id, o.total_units


from ORDER_DET o, PRODUCT_DET p
where o.p_id=p.p_id;

P_ID P_NAME O_ID TOTAL_UNITS

101 television 5103 30


103 ipod 5102 20
104 mobile 5100 30
120 fridge 5101 10

SQL> commit;

Commit complete.
7. CREATE VIEWS FOR A PARTICULAR TABLE

SQL> create table CUSTOMER


(
C_ID varchar(10),
C_NAME varchar(10),
C_AGE number,
C_ADDRESS varchar(10)
);

Table created.

SQL> desc CUSTOMER;

Name Null? Type

C_ID VARCHAR(10)
C_NAME VARCHAR(10)
C_AGE NUMBER
C_ADDRESS VARCHAR(10)

SQL> insert into CUSTOMER values('C11','AAA', 30, 'Vandavasi');

1 row created.

SQL> insert into CUSTOMER values('C12','BBB', 32, 'Chetpet' );

1 row created.

SQL> insert into CUSTOMER values('C13','CCC', 31, 'Vandavasi');

1 row created.

SQL> insert into CUSTOMER values('C14','DDD', 28, 'Madurai');

1 row created.

SQL> insert into CUSTOMER values('C15','EEE', 32, 'Vandavasi');

1 row created.

SQL> insert into CUSTOMER values('C16','FFF', 34, 'Chetpet');

1 row created.
SQL> select * from CUSTOMER;

C_ID C_NAME C_AGE C_ADDRESS


---- ------ ----- ---------
C11 AAA 30 Vandavasi
C12 BBB 32 Chetpet
C13 CCC 31 Vandavasi
C14 DDD 28 Madurai
C15 EEE 32 Vandavasi
C16 FFF 34 Chetpet

SQL> create table PRODUCT


(
P_ID varchar(10),
P_COST int
);

Table created.

SQL> desc PRODUCT;

Name Null? Type

P_ID VARCHAR(10)
P_COST NUMBER

SQL> insert into PRODUCT values('P111',500);

1 row created.

SQL> insert into PRODUCT values('P122',450);

1 row created.

SQL> insert into PRODUCT values('P133',764);

1 row created.

SQL> insert into PRODUCT values('P144',674);

1 row created.

SQL> insert into PRODUCT values('P155',567);

1 row created.
SQL> select * from PRODUCT;

P_ID P_COST

P111 500
P122 450
P133 764
P144 674
P155 567

SQL> create view CUS_VIEW as select C_ID, C_NAME, C_AGE, P_ID from
CUSTOMER, PRODUCT;

View created.

SQL> select * from CUS_VIEW;

C_ID C_NAME C_AGE P_ID


---- ------ ----- ----
C11 AAA 30 P155
C11 AAA 30 P144
C11 AAA 30 P133
C11 AAA 30 P122
C11 AAA 30 P111
C12 BBB 32 P155
C12 BBB 32 P144
C12 BBB 32 P133
C12 BBB 32 P122
C12 BBB 32 P111
C13 CCC 31 P155
C13 CCC 31 P144
C13 CCC 31 P133
C13 CCC 31 P122
C13 CCC 31 P111
C14 DDD 28 P155
C14 DDD 28 P144
C14 DDD 28 P133
C14 DDD 28 P122
C14 DDD 28 P111
C15 EEE 32 P155
C15 EEE 32 P144
C15 EEE 32 P133
C15 EEE 32 P122
C15 EEE 32 P111
C16 FFF 34 P155
C16 FFF 34 P144
C16 FFF 34 P133
C16 FFF 34 P122
C16 FFF 34 P111

SQL> select * from CUS_VIEW where C_AGE>31;

C_ID C_NAME C_AGE P_ID


---- ------ ----- ----
C16 FFF 34 P111
C15 EEE 32 P111
C12 BBB 32 P111
C16 FFF 34 P122
C15 EEE 32 P122
C12 BBB 32 P122
C16 FFF 34 P133
C15 EEE 32 P133
C12 BBB 32 P133
C16 FFF 34 P144
C15 EEE 32 P144
C12 BBB 32 P144
C16 FFF 34 P155
C15 EEE 32 P155
C12 BBB 32 P155

SQL> drop view CUS_VIEW;

View dropped.
8. IMPLEMENT LOCKS FOR A PARTICULAR TABLE

SQL> Create table CUSTOMER


(
C_ID number,
C_NAME varchar(10),
C_Address varchar(10)
);

Table created.

SQL> Desc CUSTOMER;

NAME NULL? TYPE

C_ID NUMBER
C_NAME VARCHAR(10)
C_ADDRESS VARCHAR(10)

SQL> Insert into CUSTOMERS values(102, ‘BBBB’, ‘Chetpet’);

1 row created.

SQL> Insert into CUSTOMERS values(103, ‘CCCC’, ‘Vandavasi’);

1 row created.

SQL> Select * from CUSTOMER;

C_ID C_NAME C_Address


---- ------ ---------
102 BBBB Chetpet
103 CCCC Vandavasi

SQL> Lock table CUSTOMER in exclusive mode;

Table(s) Locked.

SQL> Lock table CUSTOMER in exclusive mode nowait;

Table(s) Locked.
SQL> Lock table CUSTOMER in share update mode;

Table(s) Locked.

SQL> Lock table CUSTOMER in row exclusive mode;

Table(s) Locked.

SQL> Lock table CUSTOMER in row share mode;

Table(s) Locked.

SQL> Lock table CUSTOMER in share row exclusive mode;

Table(s) Locked.

SQL> Lock table CUSTOMER in share mode;

Table(s) Locked.
9. WRITE PL/SQL PROCEDURE FOR AN APPLICATION USING
EXCEPTION HANDLING

SQL> create table ALUMINI


(
alumini_no varchar(5),
name varchar(15),
passout_year date,
address varchar(15)
);

Table created.

SQL> desc ALUMINI;

Name Null? Type

ALUMINI_NO VARCHAR(5)
NAME VARCHAR(15)
PASSOUT_YEAR DATE
ADDRESS VARCHAR(15)

SQL> insert into ALUMINI


values(&alumini_no,'&name','&passout','&address');
Enter value for alumini_no: 101
Enter value for name: mohana
Enter value for passout: 10-may-2010
Enter value for address: chetpet
old 1: insert into alumini_02
values(&alumini_no,'&name','&passout','&address')
new 1: insert into alumini_02 values(101,'mohana','10-may-2010','chetpet')

1 row created.

SQL> /
Enter value for alumini_no: 102
Enter value for name: bhuvana
Enter value for passout: 05-may-2010
Enter value for address: arcot
old 1: insert into alumini_02
values(&alumini_no,'&name','&passout','&address')
new 1: insert into alumini_02 values(102,'bhuvana','05-may-2010','arcot')

1 row created.
SQL> /
Enter value for alumini_no: 103
Enter value for name: romiya
Enter value for passout: 05-may-2010
Enter value for address: vandavasi
old 1: insert into alumini_0
values(&alumini_no,'&name','&passout','&address')
new 1: insert into alumini_02 values(102,'bhuvana','05-may-2010','arcot')

1 row created.

SQL> /
Enter value for alumini_no: 104
Enter value for name: lakshmi
Enter value for passout: 01-may-2010
Enter value for address: Chennai
old 1: insert into alumini_02
values(&alumini_no,'&name','&passout','&address')
new 1: insert into alumini_02 values(104,'lakshmi','01may2010','chennai')

1 row created.

SQL> select * from ALUMINI;

ALUMI NAME PASSOUT_YEAR ADDRESS

101 mohana 10-MAY-10 chetpet


102 bhuvana 05-MAY-10 arcot
103 romiya 05-MAY-10 vandhavasi
104 lakshmi 01-MAY-10 chennai

SQL> commit

commit complete.

EXCEPTION HANDLING
ed alu_02.sql

SQL> create or replace function findaddress(alumino in number)return varchar2


is address varchar2(150);
begin
select name||','||passout_year||','||address into address
from ALUMINI where alumini_no=alumino;
return address;
exception
when no_data_found then
dbms_output.put_line('output for no_data_found exception: there are no
records');
when too_many_rows then
dbms_output.put_line('output for too_many_rows exception: returns more than
one rows');
end;
/

Running the function

SQL> set serveroutput on;


SQL> @ alu_02;

Function created.

ed alu_03.sql

SQL> declare
address varchar2(150);
alumino number(5);
begin
dbms_output.put_line('enter alumino');
alumino:=&alumino;
address:=findaddress(alumino);
dbms_output.put_line('output is'||address);
end;
/

Run the function with TOO_MANY_ROWS EXCEPTION

SQL> set serveroutput on;


SQL> @ alu_03;
Enter value for alumino: 101
old 6: alumino:=&alumino;
new 6: alumino:=101;
enter alumino
output is mohana,10-MAY-10,chetpet

PL/SQL procedure successfully completed.


Run the function with NO_DATA_FOUND EXCEPTION

SQL> set serveroutput on;


SQL> @ alu_03;

Enter value for alumino: 106


old 6: alumino:=&alumino;
new 6: alumino:=106;
enter alumino
output for no_data_found exception: there are no records
declare
*
ERROR at line 1:
ORA-06503: PL/SQL: Function returned without value
ORA-06512: at "SCOTT.FINDADDRESS", line 11
ORA-06512: at line 7

SQL> select * from ALUMINI;

ALUMI NAME PASSOUT_YEAR ADDRESS

101 mohana 10-MAY-10 chetpet


102 bhuvana 05-MAY-10 arcot
103 romiya 05-MAY-10 vandhavasi
104 lakshmi 01-MAY-10 chennai

SQL> commit;

Commit complete.
10.WRITE PL/SQL PROCEDURE FOR AN APPLICATION USING
CURSORS

SQL> create table cursors_01


(
e_no number(5),
e_name varchar2(15),
salary number(10)
);

Table created.

SQL> desc cursors_01;

Name Null? Type

E_NO NUMBER(5)
E_NAME VARCHAR2(15)
SALARY NUMBER(10)

SQL> insert into cursors_01 values(&e_no,'&name',&salary);


Enter value for e_no: 101
Enter value for name: smith
Enter value for salary: 3000
old 1: insert into cursors_01 values(&e_no,'&name',&salary)
new 1: insert into cursors_01 values(101,'smith',3000)

1 row created.

SQL> /
Enter value for e_no: 102
Enter value for name: jones
Enter value for salary: 5000
old 1: insert into cursors_01 values(&e_no,'&name',&salary)
new 1: insert into cursors_01 values(101,'smith',3000)

1 row created.

SQL> /
Enter value for e_no: 103
Enter value for name: hayes
Enter value for salary: 1500
old 1: insert into cursors_01 values(&e_no,'&name',&salary)
new 1: insert into cursors_01 values(103,'hayes',1500)
1 row created.

SQL> /
Enter value for e_no: 104
Enter value for name: johnson
Enter value for salary: 1000
old 1: insert into cursors_01 values(&e_no,'&name',&salary)
new 1: insert into cursors_01 values(104,'johnson',1000)

1 row created.

SQL> select * from cursors_01;

E_NO E_NAME SALARY

101 smith 3000


102 jones 5000
103 hayes 1500
104 johnson 1000

SQL> commit;

Commit complete.

CURSOR
ed cur_01.sql

SQL>
declare
cursor emp_cur is select * from cursors_01 where salary>2000;
emp_no cursors_01.e_no % type;
emp_name cursors_01.e_name % type;
emp_sal cursors_01.salary % type;
begin
open emp_cur;
loop
fetch emp_cur into emp_no,emp_name,emp_sal;
exit when emp_cur % notfound;
update cursors_01 set salary=salary+100 where e_no=emp_no;
end loop;
commit;
close emp_cur;
end;
/
SQL> set serveroutput on;
SQL> @ cur_01;

PL/SQL procedure successfully completed.

SQL> select * from cursors_01;

E_NO E_NAME SALARY


---- ------ ------
101 smith 3100
102 jones 5100
103 hayes 1500
104 johnson 1000

SQL> commit;

Commit complete.
11.WRITE A PL/SQL PROCEDURE FOR AN APPLICATION USING
FUNCTIONS

SQL> create table PHONE BOOK


(
phone_no number(6) primary key,
user_name varchar2(10),
door_no number(4),
street varchar2(15),
place varchar2(10),
pincode number(6)
);

Table created.

SQL> desc PHONE BOOK;

Name Null? Type

PHONE_NO NOT NULL NUMBER(6)


USER_NAME VARCHAR2(10)
DOOR_NO NUMBER(4)
STREET VARCHAR2(15)
PLACE VARCHAR2(10)
PINCODE NUMBER(6)

SQL> insert into PHONE BOOK


values(&phone_no,'&user_name',&door_no,'&street','&place',&pincode);
Enter value for phone_no: 227788
Enter value for user_name: uma
Enter value for door_no: 10
Enter value for street: new street
Enter value for place: vandhavasi
Enter value for pincode: 604406
old 1: insert into ph_bk_01
values(&phone_no,'&user_name',&door_no,'&street','&place',&pincode)
new 1: insert into ph_bk_01 values(227788,'uma',10,'new
street','vandhavasi',604406)

1 row created.

SQL> /
Enter value for phone_no: 225544
Enter value for user_name: pooja
Enter value for door_no: 24
Enter value for street: bazar street
Enter value for place: thellar
Enter value for pincode: 604408
old 1: insert into ph_bk_01
values(&phone_no,'&user_name',&door_no,'&street','&place',&pincode)
new 1: insert into ph_bk_01 values(225544,'pooja',24,'bazar
street','thellar',604408)

1 row created.

SQL> /
Enter value for phone_no: 224477
Enter value for user_name: priya
Enter value for door_no: 17
Enter value for street: police street
Enter value for place: chetpet
Enter value for pincode: 606801
old 1: insert into ph_bk_01
values(&phone_no,'&user_name',&door_no,'&street','&place',&pincode)
new 1: insert into ph_bk_01 values(224477,'priya',17,'police
street','chetpet',606801)

1 row created.

SQL> /
Enter value for phone_no: 226053
Enter value for user_name: sathya
nter value for door_no: 100
Enter value for street: gandhi street
Enter value for place: vellore
Enter value for pincode: 604478
old 1: insert into ph_bk_01
values(&phone_no,'&user_name',&door_no,'&street','&place',&pincode)
new 1: insert into ph_bk_01 values(226053,'sathya',100,'gandhi
street','vellore',604478)

1 row created.

SQL> select * from PHONE BOOK;

PHONE_NO USER_NAME DOOR_NO STREET PLACE PINCODE

227788 uma 10 new street vandhavasi 604406


225544 pooja 24 bazar street thellar 604408
224477 priya 17 police street chetpet 606801
226053 sathya 18 gandhi street vellore 604478
SQL> commit;

Commit complete.
FUNCTIONS

ed ph_01.sql

SQL>
create or replace function findaddress(phone in number)return varchar is
address varchar(150);
begin
select user_name||','||door_no||','||street||','||place||','||pincode into address
from PHONE BOOK where phone_no=phone;
return address;
exception
when no_data_found then
dbms_output.put_line('ans:phone_no is not found');
end;
/

Running the procedure

SQL> set serveroutput on;


SQL> @ ph_01;

Function created.

ed ph_11.sql

SQL>
declare
address varchar2(150);
phone number(7);
begin
dbms_output.put_line('enter phone_no');
phone:=&phone;
address:=findaddress(phone);
dbms_output.put_line('output'||address);
end;
/

Running the procedure

SQL> set serveroutput on;


SQL> @ ph_11;
Enter value for phone: 227788
old 6: phone:=&phone;
new 6: phone:=227788;
output uma,10,new street,vandhavasi,604406

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.
12. WRITE A PL/SQL PROCEDURE FOR AN APPLICATION
USING
PACKAGE
SQL> create or replace package Manage_Employee Is
procedure Add_Emp(P_ID number, P_Name varchar);
procedure Edit_Emp(P_ID number, P_Name varchar);
end Manage_Employee;
/

Package created.

SQL> create or replace package body Manage_Employee IS


procedure Add_Emp(P_ID number, P_Name varchar) IS
begin
dbms_output.put_line(‘Employee Added’);
end Add_Emp;
procedure Edit_Emp(P_ID number, P_Name varchar) IS
begin
dbms_output.put_line(‘Employee Updated’);
end Edit_Emp;
end;
/

Package body created.

SQL> Execute Manage_Employee.Add_Emp(101, ‘AAA’);

Employee Added

PL/SQL procedure successfully completed.

SQL> Execute Manage_Employee.Edit_Emp(101, ‘BBB’);

Employee Updated

PL/SQL procedure successfully completed.

You might also like