Professional Documents
Culture Documents
INTRODUCTION TO SQL
SQL is a programming language for querying and modifying data and managing
databases. SQL was standardized first by the ANSI and (later) by the ISO. Most
database management systems implement a majority of one of these standards and
add their proprietary extensions. SQL allows the retrieval, insertion, updating, and
deletion of data.
The first version of SQL was developed at IBM by Donald D. Chamberlin and
Raymond F. Boyce in the early 1970s. This version, initially called SEQUEL, was
designed to manipulate and retrieve data stored in IBM's original relational database
product, System R. IBM patented their version of SQL in 1985, while the SQL
language was not formally standardized until 1986, by the American National
Standards Institute (ANSI) as SQL-86. Subsequent versions of the SQL standard have
been released by ANSI and as International Organization for Standardization (ISO)
standards.
FEATURES OF SQL:
SQL COMMANDS
DDL
Data Definition Language (DDL) statements are used to define the database
structure or schema.
DDL Commands: Create , Alter ,Drop , Rename, Truncate
DML
Data Manipulation Language (DML) statements are used for managing data within
schema objects
DCL
Data Control Language (DCL) statements is used to create roles, permissions, and
referential integrity as well it is used to control access to database by securing it.
TCL
Transaction Control (TCL) statements are used to manage the changes made by
DML statements. It allows statements to be grouped together into logical
transactions.
SYNTAX’S OF COMMANDS
CREATE TABLE
ALTER A TABLE
pg. 3
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
DROP TABLE
TRUNCATE TABLE
INSERT
( OR )
UPDATE
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value;
DELETE
SELECT
SELECT column_name(s)
FROM table_name;
OUTPUT:-TABLE CREATED
OUTPUT:-
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
OUTPUT:-Table renamed.
OUTPUT:-
OUTPUT:-Table altered.
pg. 6
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
OUTPUT:-
OUTPUT:-Table dropped.
(NOT NULL)
pg. 7
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
Table created.
1 row created.
SQL> /
Enter value for rollno: 502
Enter value for name: ABI
Enter value for branch: CSE
old 1: INSERT INTO STUD VALUES(&ROLLNO,'&NAME','&BRANCH')
new 1: INSERT INTO STUD VALUES(502,'ABI','CSE')
1 row created.
*
ERROR:CANNOT INSERT NULL INTO("SCOTT",'STUD',ROLLNO)
(UNIQUE)
Table created.
1 row created.
SQL> /
Enter value for rollno: 502
Enter value for name: ABI
Enter value for branch: CSE
old 1: INSERT INTO STUD VALUES(&ROLLNO,'&NAME','&BRANCH')
new 1: INSERT INTO STUD VALUES(502,'ABI','CSE')
1 row created.
SQL> /
Enter value for rollno: 502
Enter value for name: BHAVYA
Enter value for branch: CSE
old 1: INSERT INTO STUD VALUES(&ROLLNO,'&NAME','&BRANCH')
new 1: INSERT INTO STUD VALUES(502,'BHAVYA','CSE')
INSERT INTO STUD VALUES(502,'BHAVYA','CSE')
*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C001290) violated
(PRIMARY KEY)
Table created.
pg. 9
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
1 row created.
SQL> /
Enter value for rollno: 502
Enter value for name: ABI
Enter value for branch: CSE
old 1: INSERT INTO STUD VALUES(&ROLLNO,'&NAME','&BRANCH')
new 1: INSERT INTO STUD VALUES(502,'ABI','CSE')
1 row created.
SQL> /
Enter value for rollno: 502
Enter value for name: BHAVYA
Enter value for branch: CSE
old 1: INSERT INTO STUD VALUES(&ROLLNO,'&NAME','&BRANCH')
new 1: INSERT INTO STUD VALUES(502,'BHAVYA','CSE')
INSERT INTO STUD VALUES(502,'BHAVYA','CSE')
*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C001290) violated
(CHECK)
Table created.
1 row created.
SQL> /
Enter value for rno: 565
Enter value for name: rohit
Enter value for sal: 35000
old 1: insert into stud values(&rno,'&name',&sal)
new 1: insert into stud values(565,'rohit',35000)
insert into stud values(565,'rohit',35000)
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.NO_CK) violated
( FOREIGN KEY )
SOL>create table adm(stuid number(6) constraint stuid_pk primary key,sname
varchar2(15),per number(5));
Table created.
1 row created.
pg. 11
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
SQL> /
Enter value for stuid: 2
Enter value for sname: rohit
Enter value for per: 89
old 1: insert into adm values(&stuid,'&sname',&per)
new 1: insert into adm values(2,'rohit',89)
1 row created.
SQL> /
Enter value for stuid: 3
Enter value for sname: sachin
Enter value for per: 99
old 1: insert into adm values(&stuid,'&sname',&per)
new 1: insert into adm values(3,'sachin',99)
1 row created.
SQL> /
Enter value for stuid: 4
Enter value for sname: naveen
Enter value for per: 70
old 1: insert into adm values(&stuid,'&sname',&per)
new 1: insert into adm values(4,'naveen',70)
1 row created.
Table created.
pg. 12
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
1 row created.
SQL> /
Enter value for stuid: 5
Enter value for branch: cse
Enter value for sec: b
old 1: insert into course values(&stuid,'&branch','&sec')
new 1: insert into course values(5,'cse','b')
insert into course values(5,'cse','b')
*
ERROR at line 1:
ORA-02291: integrity constraint (SCOTT.SID_FK) violated - parent key not found
1 row deleted.
1 row deleted.
OUTPUT:-
OUTPUT:-
View created.
OUTPUT:-
OUTPUT:-
1 row updated.
OUTPUT:-
OUTPUT:-
OUTPUT:-
Table dropped.
OUTPUT:-
CREATING A USER
SQL>CONNECT SYSTEM/MANAGER;
SQL>CONNECT "USERNAME"/"PASSWORD";
EXAMPLE
CREATING A USER
SQL>CONNECT SYSTEM/MANAGER;
SQL>CONNECT CSE2/CSECSE;
OUTPUT:-
pg. 15
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
8 rows selected.
OUTPUT:-
Savepoint created.
OUTPUT:-
1 row updated.
OUTPUT:-
Savepoint created.
OUTPUT:-
1 row deleted.
OUTPUT:-
Savepoint created.
OUTPUT:-
1 row created.
pg. 16
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
OUTPUT:-
8 rows selected.
OUTPUT:-
Rollback complete.
OUTPUT:-
EID ENAME ESAL EBRANCH
---------- ---------- ---------- ----------------
1 scotty 6500 a
3 david 7000 c
4 max 8000 b
5 mark 7000 a
6 jeff 12000 a
7 matt 10000 b
8 steve 7000 c
OUTPUT:-
Rollback complete.
OUTPUT:-
EID ENAME ESAL EBRANCH
---------- ---------- ---------- -----------
1 scotty 6500 a
2 wayne 10000 b
3 david 7000 c
pg. 17
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
4 max 8000 b
5 mark 7000 a
6 jeff 12000 a
7 matt 10000 b
8 steve 7000 c
OUTPUT:-
Rollback complete.
OUTPUT:-
OUTPUT:-
Savepoint created.
OUTPUT:-
1 row deleted.
OUTPUT:-
pg. 18
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
SQL> commit;
OUTPUT:-
Commit complete.
OUTPUT:-
*
ERROR at line 1:
ORA-01086 :savepoint 's4' never established
OUTPUT:-
pg. 19
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
14 rows selected.
14 rows selected.
SQL> select empno,ename,sal from emp where sal between 2500 and 5000;
SQL>select ename,job,sal,deptno from emp where sal not between 1500 and 5000;
6 rows selected.
8 rows selected.
10 rows selected.
10 rows selected.
9 rows selected.
14 rows selected.
14 rows selected.
OUTPUT:-
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
---------- ---------- --------- --------- ---------- ---------
-------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
OUTPUT:-
OUTPUT:-
pg. 26
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
SQL> select empno,ename from emp where sal in(select max(sal) from emp);
OUTPUT:-
EMPNO ENAME
---------- ----------
7839 KING
SQL> select empno,ename from emp where sal in(select max(sal) from emp group
by deptno);
OUTPUT:-
EMPNO ENAME
---------- ----------
7698 BLAKE
7788 SCOTT
7902 FORD
7839 KING
SQL> select empno,ename,job,sal from emp where sal>all(select avg(sal) from emp
group by deptno);
OUTPUT:-
SQL> select empno,ename,job,sal from emp where sal<all(select avg(sal) from emp
group by deptno);
OUTPUT:-
7 rows selected.
SQL> select ename,job,sal from emp where sal>any(select sal from emp where
job='CLERK');
OUTPUT:-
ENAME JOB SAL
---------- --------- ----------
ALLEN SALESMAN 1600
WARD SALESMAN 1250
JONES MANAGER 2975
MARTIN SALESMAN 1250
BLAKE MANAGER 2850
CLARK MANAGER 2450
SCOTT ANALYST 3000
KING PRESIDENT 5000
TURNER SALESMAN 1500
ADAMS CLERK 1100
JAMES CLERK 950
13 rows selected.
SQL> select ename,job,sal from emp where sal<any(select sal from emp where
job='CLERK');
OUTPUT:-
ENAME JOB SAL
---------- --------- ----------
SMITH CLERK 800
WARD SALESMAN 1250
MARTIN SALESMAN 1250
ADAMS CLERK 1100
JAMES CLERK 950
SQL> select ename,job,sal from emp where sal=any(select sal from emp where
job='CLERK');
OUTPUT:-
pg. 28
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
SQL> select deptno,dname from dept d where exists(select * from emp e where
d.deptno=e.deptno);
OUTPUT:-
DEPTNO DNAME
---------- --------------
10 ACCOUNTING
20 RESEARCH
30 SALES
SQL> select deptno,dname from dept d where not exists(select * from emp e where
d.deptno=e.deptno);
OUTPUT:-
DEPTNO DNAME
---------- --------------
40 OPERATIONS
Table created.
1 row created.
SQL> /
Enter value for sid: 31
Enter value for sname: lubber
pg. 29
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
1 row created.
SQL> /
Enter value for sid: 58
Enter value for sname: rusty
Enter value for rating: 10
Enter value for age: 35
old 1: insert into s1 values(&sid,'&sname',&rating,&age)
new 1: insert into s1 values(58,'rusty',10,35)
1 row created.
SQL> create table s2(sid number(5),sname varchar2(10),rating number(5),age
number(10));
Table created.
1 row created.
SQL> /
Enter value for sid: 31
Enter value for sname: lubber
Enter value for rating: 8
Enter value for age: 55
old 1: insert into s2 values(&sid,'&sname',&rating,&age)
new 1: insert into s2 values(31,'lubber',8,55)
1 row created.
SQL> /
Enter value for sid: 44
Enter value for sname: guppy
Enter value for rating: 5
Enter value for age: 35
old 1: insert into s2 values(&sid,'&sname',&rating,&age)
new 1: insert into s2 values(44,'guppy',5,35)
pg. 30
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
1 row created.
SQL> /
Enter value for sid: 58
Enter value for sname: rusty
Enter value for rating: 10
Enter value for age: 35
old 1: insert into s2 values(&sid,'&sname',&rating,&age)
new 1: insert into s2 values(58,'rusty',10,35)
1 row created.
SNAME
----------
dustin
guppy
lubber
rusty
yuppy
SNAME
----------
dustin
lubber
rusty
yuppy
lubber
guppy
rusty
7 rows selected.
pg. 31
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
SID
----------
31
58
AGE
----------
45
56
FUNCTIONS:
AGGREGATE FUNCTIONS
output:-
output:-
COUNT(*)
----------
4
output:-
SUM(SAL)
----------
14720
pg. 32
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
output:-
AVG(SAL)
----------
3680
output:-
MAX(SAL)
----------
7000
output:-
MIN(SAL)
----------
1000
OUTPUT:-
14 rows selected.
OUTPUT:-
DEPTNO MAX(SAL)
---------- ----------
10 5000
20 3000
30 2850
OUTPUT:-
DEPTNO MIN(SAL)
---------- ----------
10 1300
20 800
30 950
OUTPUT:-
DEPTNO MAX(SAL)
---------- ----------
30 2850
OUTPUT:-
pg. 34
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
DEPTNO MIN(SAL)
---------- ----------
10 1300
OUTPUT:-
DEPTNO COUNT(*)
---------- ----------
10 3
20 5
30 6
3 rows selected.
CONVERSION FUNCTIONS(TO_CHAR)
STRING FUNCTIONS
OUTPUT:-ORACLECORPORATION
OUTPUT:-*********ORACLE
OUTPUT:-ORACLE*********
OUTPUT:-MITHSS
OUTPUT:-SSMITH
OUTPUT:-dbms
OUTPUT:-DBMS
OUTPUT:-Oracle Corporation
pg. 36
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
OUTPUT:-8
OUTPUT:-CDEF
OUTPUT:-14
DATE FUNCTIONS
OUTPUT:-29-DEC-08
OUTPUT:-05-JAN-09
OUTPUT:-28-FEB-09
OUTPUT:-31-DEC-08
OUTPUT:-
OUTPUT:-10-JAN-07
OUTPUT:-10-JAN-07
pg. 37
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
OUTPUT:-28-DEC-08
OUTPUT:-01-DEC-08
SQL>SELECT TRUNC(SYSDATE,'YEAR')FROM DUAL;
OUTPUT:-01-JAN-08
OUTPUT:-28-DEC-08
OUTPUT:-01-JAN-09
OUTPUT:-01-JAN-09
NUMBER FUNCTIONS
OUTPUT:-
ROUND(12.36) ROUND(14.63)
------------ ------------
12 15
OUTPUT:-
FLOOR(12.87) FLOOR(11.23)
------------ ------------
12 11
OUTPUT:-
CEIL(16.23) CEIL(12.78)
----------- -----------
17 13
OUTPUT:-
TRUNC(56.63)
------------
56
OUTPUT:-
MOD(11,4)
----------
3
OUTPUT:-
POWER(2,3)
----------
8
OUTPUT:-
OUTPUT:-
ABS(12) ABS(-89)
---------- ----------
12 89
pg. 39
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
OUTPUT:-
SQRT(25)
--------
5
INTRODUCTION TO PL/SQL
SERVER
CLIENT
When PL/SQL Engine is locted upon the SERVER,the whole PL/SQL block is passed to
the PL/SQL Engine on the ORACLE SERVER.
When the PL/SQL Engine is located upon the CLIENT,the PL/SQL processing is done
on the CLIENT SIDE.All SQL statenents that are embedded within the PL/SQL
block,are sent to the ORACLE SERVER for further processing.
If the PL/SQL block does not contain any SQL statements,the entire block is
executed on the CLIENT SIDE.
PL/SQL BLOCK
DECLARE
--Declarations of memory variables,constants,cursors etc.,in PL/SQL
BEGIN
--SQL executable statements
--PL/SQL executable statements
EXCEPTION
pg. 40
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
/*SQL or PL/SQL code to handle errors that may arise during the execution of the
code block between BEGIN and EXCEPTION section
END;
1. BRANCHING
2. SELECTION
3. LOOPING
BRANCHING STATEMENTS
1.Simple IF
2.ELSIF
3.ELSE IF
SIMPLE IF
IF condition THEN
statement1;
statement2;
END IF;
IF-THEN-ELSE STATEMENT
IF condition THEN
statement1;
ELSE
statement2;
END IF;
ELSIF STATEMENTS
IF condition1 THEN
statement1;
ELSIF condition2 THEN
statement2;
ELSIF condition3 THEN
statement3;
pg. 41
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
ELSE
statementn;
END IF;
NESTED IF
IF condition THEN
statement1;
ELSE
IF condition THEN
statement2;
ELSE
statement3;
END IF;
END IF;
ELSE
statement3;
END IF;
SELECTION IN PL/SQL
SIMPLE CASE
CASE SELECTOR
WHEN Expr1 THEN statement1;
WHEN Expr2 THEN statement2;
:
:
:
ELSE
statementn;
END CASE;
SEARCHED CASE
CASE
pg. 42
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
ITERATIONS IN PL/SQL
SIMPLE LOOP
LOOP
statement1;
EXIT [ WHEN Condition];
END LOOP;
WHILE LOOP
FOR LOOP
declare
a number(10);
b number(10);
pg. 43
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
begin
a:=&a;
b:=&b;
dbms_output.put_line('THE PREV VALUES OF A AND B WERE');
dbms_output.put_line(a);
dbms_output.put_line(b);
a:=a+b;
b:=a-b;
a:=a-b;
dbms_output.put_line('THE VALUES OF A AND B ARE');
dbms_output.put_line(a);
dbms_output.put_line(b);
end;
OUTPUT:
SQL> @ SWAPPING.SQL
17 /
Enter value for a: 5
old 5: a:=&a;
new 5: a:=5;
Enter value for b: 3
old 6: b:=&b;
new 6: b:=3;
THE PREV VALUES OF A AND B WERE
5
3
THE VALUES OF A AND B ARE
3
5
declare
a number(10);
b number(10);
c number(10);
begin
dbms_output.put_line('THE PREV VALUES OF A AND B WERE');
pg. 44
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
dbms_output.put_line(a);
dbms_output.put_line(b);
a:=&a;
b:=&b;
c:=a;
a:=b;
b:=c;
dbms_output.put_line('THE VALUES OF A AND B ARE');
dbms_output.put_line(a);
dbms_output.put_line(b);
end;
OUTPUT:
SQL> @ SWAPPING2.SQL
19 /
Enter value for a: 5
old 6: a:=&a;
new 6: a:=5;
Enter value for b: 3
old 7: b:=&b;
new 7: b:=3;
THE PREV VALUES OF A AND B WERE
5
3
THE VALUES OF A AND B ARE
3
5
declare
a number;
b number;
begin
a:=&a;
b:=&b;
if a=b then
dbms_output.put_line('BOTH ARE EQUAL');
elsif a>b then
pg. 45
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
dbms_output.put_line('A IS GREATER');
else
dbms_output.put_line('B IS GREATER');
end if;
end;
OUTPUT:
SQL> @ GREATESTOF2.sql
13 /
Enter value for a: 5
old 5: a:=&a;
new 5: a:=5;
Enter value for b: 2
old 6: b:=&b;
new 6: b:=2;
A IS GREATER
declare
a number;
b number;
c number;
begin
a:=&a;
b:=&b;
c:=&c;
if a=b and b=c and c=a then
dbms_output.put_line('ALL ARE EQUAL');
elsif a>b and a>c then
dbms_output.put_line('A IS GREATER');
elsif b>c then
pg. 46
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
dbms_output.put_line('B IS GREATER');
else
dbms_output.put_line('C IS GREATER');
end if;
end;
OUTPUT:
SQL> @ GREATESTOF3.sql
17 /
Enter value for a: 8
old 6: a:=&a;
new 6: a:=8;
Enter value for b: 9
old 7: b:=&b;
new 7: b:=9;
Enter value for c: 7
old 8: c:=&c;
new 8: c:=7;
B IS GREATER
declare
java number(10);
dbms number(10);
co number(10);
se number(10);
es number(10);
ppl number(10);
total number(10);
avgs number(10);
per number(10);
begin
dbms_output.put_line('ENTER THE MARKS');
java:=&java;
dbms:=&dbms;
co:=&co;
pg. 47
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
se:=&se;
es:=&es;
ppl:=&ppl;
total:=(java+dbms+co+se+es+ppl);
per:=(total/600)*100;
if java<40 or dbms<40 or co<40 or se<40 or es<40 or ppl<40 then
dbms_output.put_line('FAIL');
if per>75 then
dbms_output.put_line('GRADE A');
elsif per>65 and per<75 then
dbms_output.put_line('GRADE B');
elsif per>55 and per<65 then
dbms_output.put_line('GRADE C');
else
dbms_output.put_line('INVALID INPUT');
end if;
dbms_output.put_line('PERCENTAGE IS '||per);
dbms_output.put_line('TOTAL IS '||total);
end;
OUTPUT:
SQL> @ GRADE.sql
31 /
Enter value for java: 80
old 12: java:=&java;
new 12: java:=80;
Enter value for dbms: 70
old 13: dbms:=&dbms;
new 13: dbms:=70;
Enter value for co: 89
old 14: co:=&co;
new 14: co:=89;
Enter value for se: 72
old 15: se:=&se;
new 15: se:=72;
Enter value for es: 76
old 16: es:=&es;
new 16: es:=76;
Enter value for ppl: 71
old 17: ppl:=&ppl;
new 17: ppl:=71;
GRADE A
PERCENTAGE IS 76
TOTAL IS 458
PL/SQL procedure successfully completed.
pg. 48
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
declare
a number;
t number;
arm number;
d number;
begin
a:=&a;
t:=a;
arm:=0;
while t>0
loop
d:=mod(t,10);
arm:=arm+power(d,3);
t:=trunc(t/10);
end loop;
if arm=a then
dbms_output.put_line('given no is an armstrong no'|| a);
else
dbms_output.put_line('given no is not an armstrong no');
end if;
end;
pg. 49
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
OUTPUT:
SQL> @ ARMSTRONGNUM.sql
Enter value for a: 407
old 7: a:=&a;
new 7: a:=407;
given no is an armstrong no407
SQL> /
Enter value for a: 406
old 7: a:=&a;
new 7: a:=406;
given no is not an armstrong no
declare
a number;
d number:=0;
sum1 number:=0;
begin
a:=&a;
while a>0
loop
d:=mod(a,10);
sum1:=sum1+d;
a:=trunc(a/10);
end loop;
dbms_output.put_line('sum is'|| sum1);
end;
OUTPUT:
SQL> @ SUMOFDIGITS.sql
16 /
Enter value for a: 564
old 7: a:=&a;
new 7: a:=564;
sum is15
declare
a number;
rev number;
d number;
begin
a:=&a;
rev:=0;
while a>0
loop
d:=mod(a,10);
rev:=(rev*10)+d;
a:=trunc(a/10);
end loop;
dbms_output.put_line('no is'|| rev);
end;
OUTPUT:
SQL> @ REVERSE2.sql
16 /
Enter value for a: 536
old 6: a:=&a;
new 6: a:=536;
no is635
pg. 51
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
declare
gn varchar2(5):=4567;
sl number(2);
rv varchar2(5);
begin
sl:=length(gn);
for i in reverse 1..sl
loop
rv:=rv||substr(gn,i,1);
end loop;
dbms_output.put_line('given no r is'||gn);
dbms_output.put_line('given no in reverse order is'||rv);
end;
OUTPUT:
SQL> @ REVERSE.sql
14 /
given no r is4567
given no in reverse order is7654
pg. 52
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
declare
a number;
c number:=0;
i number;
begin
a:=&a;
for i in 1..a
loop
if mod(a,i)=0 then
c:=c+1;
end if;
end loop;
if c=2 then
dbms_output.put_line(a ||'is a prime number');
else
dbms_output.put_line(a ||'is not a prime number');
end if;
end;
OUTPUT:
SQL> @ PRIME.SQL
19 /
Enter value for a: 11
old 6: a:=&a;
new 6: a:=11;
11is a prime number
pg. 53
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
declare
n number;
f number:=1;
begin
n:=&n;
for i in 1..n
loop
f:=f*i;
end loop;
dbms_output.put_line('the factorial is'|| f);
end;
OUTPUT:
SQL> @ FACTORIAL.sql
12 /
Enter value for n: 5
old 5: n:=&n;
new 5: n:=5;
the factorial is120
pg. 54
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
declare
a number;
b number;
c number;
n number;
i number;
begin
n:=&n;
a:=0;
b:=1;
dbms_output.put_line(a);
dbms_output.put_line(b);
for i in 1..n-2
loop
c:=a+b;
dbms_output.put_line(c);
a:=b;
b:=c;
end loop;
end;
OUTPUT:
SQL> @ FIBONACCI.sql
21 /
Enter value for n: 5
old 8: n:=&n;
new 8: n:=5;
0
1
1
2
3
pg. 55
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
TABLE NAME:AREAS
RADIUS AREA
Table created.
--PROGRAM
declare
pi constant number(4,2):=3.14;
radius number(5):=3;
area number(6,2);
begin
while radius<7
loop
area:=pi*power(radius,2);
insert into areas values(radius,area);
radius:=radius+1;
end loop;
end;
OUTPUT:
SQL> @ AREAOFCIRCLE.SQL
13 /
PL/SQL procedure successfully completed.
SQL> SELECT * FROM AREAS;
RADIUS AREA
---------- ----------
3 28.26
4 50.24
5 78.5
6 113.04
--PROGRAM
declare
mano number(5);
mcb number(6,2);
minibal constant number(7,2):=1000.00;
fine number(6,2):=100.00;
begin
mano:=&mano;
select cur_bal into mcb from acct where acctno=mano;
if mcb<minibal then
update acct set cur_bal=cur_bal-fine where acctno=mano;
end if;
end;
OUTPUT:
SQL> @ BANKACC.sql
13 /
Enter value for mano: 855
old 7: mano:=&mano;
new 7: mano:=855;
CUBE
c number;
begin
c:=n*n*n;
return c;
end;
output:-
SQL> @cub
/
Function created.
CUBE(6)
------
216
FACTORIAL
create or replace function fact(n number)return number
as
fac number:=1;
begin
for i in 1..n
loop
pg. 59
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
fac:=fac*i;
end loop;
return fac;
end;
output:-
SQL> @func.sql;
12 /
Function created.
FACT(5)
----------
120
IN- PROCEDURE
create or replace procedure inpro(dno number,depname varchar2,city varchar2)
as
begin
insert into dept (deptno,dname,loc)values(dno,depname,city);
end;
OUTPUT:-
SQL> select * from dept;
SQL> @pro1
/
Procedure created.
OUT-PROCEDURE
OUTPUT:
SQL> @proc2
/
Procedure created.
pg. 61
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
SQL> declare
2 x varchar2(20);
3 y varchar2(30);
4 ch number;
5 begin
6 ch:=&ch;
7 outpro(ch,x,y);
8 dbms_output.put_line(x || ' ' || y);
9 end;
10 /
Enter value for ch: 10
old 6: ch:=&ch;
new 6: ch:=10;
ACCOUNTING NEW YORK
BEFORE TRIGGER
create or replace trigger tday before insert or delete or update on emp
declare
we varchar2(10);
begin
we:=to_char(sysdate,'dy');
if we='sat' or we='sun' then
raise_application_error(-20015,'its a weekend');
end if;
end;
output:-
SQL> @trig1
/
pg. 62
Dept of Computer Science & Engineering
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
Trigger created.
ERROR at line 1:
ORA-20015: its a weekend
ORA-06512: at "SCOTT.TDAY", line 6
ORA-04088: error during execution of trigger 'SCOTT.TDAY'
AFTER TRIGGER
create or replace trigger ttime after insert or delete or update on emp1 for each row
declare
tt varchar2(5);
begin
tt:=to_char(sysdate,'hh24');
if tt not between 10 and 17 then
raise_application_error(-20010,'not working hours');
end if;
end;
output:-
SQL> @trig2;
10 /
Trigger created.
*
ERROR at line 1:
ORA-20010: not working hours
ORA-06512: at "SCOTT.TTIME", line 6
ORA-04088: error during execution of trigger 'SCOTT.TTIME'
pg. 64
Dept of Computer Science & Engineering