SANKETIKA POLYTECHNIC COLLEGE
DIPLOMA IN COMPUTER ENGINEERING 
 CME II YEAR III SEMESTER 
LAB MANUAL 
FOR RELATIONAL DATABASE MANAGEMENT 
SYSTEM 
C-09       
SANKETIKA POLYTECHNIC COLLEGE 
AFFILIATED TO STATE BOARD OF TECHNICAL EDUCATION AND TRAINING 
HYDERABAD    
  SANKETIKA POLYTECHNIC COLLEGE     
1. Students should be regular and come prepared for the lab practice. 
GENERAL I NSTRUCTI ONS TO STUDENTS 
2. In case a student misses a class, it is his/her responsibility to complete that missed     experiment(s).   
3. Students should bring the observation book, lab journal and lab manual.  
   Prescribed textbook and class notes can be kept ready for reference if required.    
4. They should implement the given experiment individually.  
5. While conducting the experiments students should see that their programs would meet the following 
criteria:  
  Programs  should  be  interactive  with  appropriate  prompt  messages,  error  messages  if  any,  and 
descriptive messages for outputs. 
  Programs should perform input validation (Data type, range error, etc.) and give appropriate error 
messages and suggest corrective actions. 
  Comments should be used to give the statement of the problem and every function should indicate the 
purpose of the function, inputs and outputs 
  Statements within the program should be properly indented 
  Use meaningful names for variables and functions. 
  Make use of Constants and type definitions wherever needed.  
6. Once the experiment(s) get executed, they should show the program and results to the instructors and 
copy the same in their observation book.  
7. Questions for lab tests and exam need not necessarily be limited to the questions in the manual, but 
could involve some variations and / or combinations of the questions.            
  SANKETIKA POLYTECHNIC COLLEGE    
MINIMUM HARDWARE REQUIREMENTS 
At least, your system should meet the following requirements: 
  1GB RAM  
  Requirement for swap space in Oracle installation is as follows: 
o  Available RAM                       Swap Space Required 
o  Between 1 GB and 2 GB        1.5 times the size of RAM 
o  Between 2 GB and 8 GB       Equal to the size of RAM 
o  More than 8 GB                     .75 times the size of RAM 
  400MB free space in /tmp directory 
  Depending on type of the installation, 1.5-3.5 GB free space for Oracle Software 
  1.5GB free space if new Oracle Database is created               
  SANKETIKA POLYTECHNIC COLLEGE    
RDBMS LAB 
Subject Title : RDBMS LAB  
Subject Code : CM- 309  
Periods per week : 03  
Periods per Semester : 45   
1. Know installation of Oracle 
List of experiments 
2. Exercise on creating tables 
3. Exercise on inserting records 
4. Exercise on updating records 
5. Exercise on modifying the structure of the table 
6. Exercise on Select command 
7. Exercise on querying the table using clauses like WHERE, ORDER, IN,  
 AND, OR, NOT  
8. Exercise on creating and deleting of indexes 
9. Exercise on various group functions  
10. Exercise on Number functions, character functions, conversion functions and  
 date functions 
11. Exercise on set operators 
12. Exercise on sub queries 
13. Exercise on Joins 
14. Exercise on various date and number format models 
15. Exercise on Sequences 
16. Exercise on synonyms 
17. Exercise on views 
18. Exercise on creating tables with integrity constraints 
19. Write programs using PL/SQL control statements 
  SANKETIKA POLYTECHNIC COLLEGE    
20. Exercise on PL/SQL cursors 
21. Exercise on PL/SQL exception handling 
22. Exercise on Procedures 
23. Exercise on Functions 
24. Exercise on Recursion 
25. Exercise on Triggers 
26. Exercise on Packages 
27. Exercise on Database Backup.                    
  SANKETIKA POLYTECHNIC COLLEGE     
  To access data from database a query language is required. For this purpose in mid 1970s IBM 
developed a query language called as SEQUEL for its SYSTEM-R project. later it was renamed 
as SQL because the previous name is chosen by an aircraft company. 
INTRODUCTION 
  Later in 1979 oracle corporation introduced the commercially available implementation of SQL. 
In 1986,ANSI standardized the SQL as a query language for  
  RDBMS because SQL works with one specific type of database, called a relational database. 
  SQL means Structured Query Language. 
  It acts as an interface between oracle database and the user. SQL is an integral part of a database 
management system, a language and a tool for communicating with the RDBMS. 
  SQL is not really a complete computer language like COBOL, C, C++, or J ava 
  SQL is very easy to learn as it comprises of simple English words. 
  SQL is not case sensitive language.           
  SANKETIKA POLYTECHNIC COLLEGE     
SNO: 1  EXPERIMENT-1 
DATE:  
AIM 
Using the Oracle Universal Installer, you install the Oracle Database 10g software and create a 
database.  
Installing Oracle Database 10g on Windows  
To install the Oracle software, you must use the Oracle Universal installer. 
1.  For this installation you need either the DVDs or a downloaded version of the DVDs. In this tutorial, you 
install from the downloaded version. From the directory where the DVD files were unzipped, double-
click setup.exe.     
2.  The Oracle Universal Installer starts.   
  SANKETIKA POLYTECHNIC COLLEGE     
3.  You will perform a basic installation with a starter database. Enter orcl for the Global Database Name 
and oracle for the Database Password and Confirm Password. Then click Next.     
4.  The installer now verifies that the system meets all the minimum requirements for installing and 
configuring the chosen product. Please correct any reported errors (warnings are OK) before continuing. 
When the check successfully completes (with or without warnings), click Next.    
5.  If you received any warnings, you can proceed. Click Yes.  
  SANKETIKA POLYTECHNIC COLLEGE       
6.  Review the Summary window to verify what is to be installed. Then, click Install.    
7.   The progress window appears.    
8.  The Configuration Assistants window appears. 
  SANKETIKA POLYTECHNIC COLLEGE       
9.  Your database is now being created.    
10.  When the database has been created, you can unlock the users you want to use. Click Password 
Management.      
11.  Unlock SH, OE and HR users by clicking on the check mark in the Lock Account? column. Enter the 
same name as the user in the New Password and Confirm Password fields. For example, to unlock SH 
user, enter SH in the New Password and Confirm Password fields. Then, click OK. 
  SANKETIKA POLYTECHNIC COLLEGE       
12.  Click OK again.     
13.  Click Exit.    
14.  Click Yes to confirm exit.  
  SANKETIKA POLYTECHNIC COLLEGE                                                                                     
SNO: 2  EXPERIMENT-2 
DATE:  
AIM 
EXERCISE ON CREATING TABLES 
DESCRIPTION 
  The CREATE TABLE statement is used to create a table in a database. 
  The data type specifies what type of data the column can hold. 
  The empty table can be filled with data with the INSERT INTO statement. 
SYNTAX 
CREATE TABLE table_name 
( 
column_name1 data_type, 
column_name2 data_type, 
column_name3 data_type, 
.... 
) 
PROGRAM 
CREATE TABLE Persons 
( 
P_Id int, 
LastName varchar(255), 
FirstName varchar(255), 
Address varchar(255), 
  SANKETIKA POLYTECHNIC COLLEGE    
City varchar(255) 
) 
OUTPUT 
Table created. 
SQL>Select * from Persons 
P_Id  LastName  FirstName  Address  City               
SNO: 3  EXPERIMENT-3 
DATE:  
AIM 
EXERCISE ON INSERTING RECORDS 
DESCRIPTION 
  The INSERT INTO statement is used to insert new records in a table. 
  It is also possible to only add data in specific columns. 
SYNTAX 
It is possible to write the INSERT INTO statement in two forms.  
  The first form doesn't specify the column names where the data will be inserted, only their 
values: 
INSERT INTO table_name 
VALUES (value1, value2, value3,...) 
  The second form specifies both the column names and the values to be inserted: 
INSERT INTO table_name (column1, column2, column3,...) 
VALUES (value1, value2, value3,...)  
PROGRAM 
INSERT INTO Persons 
VALUES (1,'Hansen', 'Ola', 'Timoteivn 10, 'Sandnes') 
  SANKETIKA POLYTECHNIC COLLEGE    
INSERT INTO Persons 
VALUES (2,'Svendson', 'Tove', Borgvn 23, 'Stavanger') 
OUTPUT    
P_Id  LastName  Firstname  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger     
SNO: 4  EXPERIMENT-4 
DATE: 
AIM 
EXERCISE ON UPDATING RECORDS 
DESCRIPTION 
  The UPDATE statement is used to update existing records in a table. 
  The WHERE clause specifies which record or records that should be updated. If you omit the 
WHERE clause, all records will be updated. 
SYNTAX 
UPDATE table_name 
SET column1=value, column2=value2,... 
WHERE some_column=some_value 
PROGRAM 
UPDATE Persons 
SET Address='Nissestien 67', City='Sandnes' 
WHERE LastName='Tjessem' AND FirstName='J akob' 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger 
3  Tjessem J akob  Nissestien 67  Sandnes 
If we had omitted the WHERE clause  
  SANKETIKA POLYTECHNIC COLLEGE    
PROGRAM 
UPDATE Persons 
SET Address='Nissestien 67', City='Sandnes'  
OUTPUT 
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Nissestien 67  Sandnes 
2  Svendson  Tove  Nissestien 67  Sandnes 
3  Tjessem J akob  Nissestien 67  Sandnes              
SNO: 5  EXPERIMENT-5 
DATE:  
AIM 
EXERCISE ON MODYFYING THE STRCTURE OF THE TABLE 
DESCRIPTION 
  The ALTER TABLE statement is used to add, delete, or modify columns in an existing table. 
SYNTAX 
  To add a column in a table, use the following syntax 
ALTER TABLE table_name 
ADD column_name datatype 
  To delete a column in a table, use the following syntax (notice that some database systems don't 
allow deleting a column) 
ALTER TABLE table_name 
DROP COLUMN column_name  
  To change the column name  in a table, use the following syntax  
ALTER TABLE table_name 
RENAME COLUMN t.c1_newtype TO c1  
PROGRAM 
  SANKETIKA POLYTECHNIC COLLEGE    
ALTER TABLE Persons 
ADD DateOfBirth date 
OUTPUT 
P_Id  LastName  FirstName  Address  City  DateOfBirth 
1  Hansen  Ola  Timoteivn 10  Sandnes    
2  Svendson  Tove  Borgvn 23  Sandnes    
3  Pettersen  Kari  Storgt 20  Stavanger     
DROP COLUMN 
  to delete the column named "DateOfBirth" in the "Persons" table DROP COLUMN is used. 
PROGRAM 
ALTER TABLE Persons 
DROP COLUMN DateOfBirth 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger 
3  Tjessem J akob  Nissestien 67  Sandnes            
  SANKETIKA POLYTECHNIC COLLEGE              
SNO: 6  EXPERIMENT-6 
DATE:  
AIM 
EXERCISE ON SELECT COMMAND 
DESCRIPTION 
  The SELECT statement is used to select data from a database. 
SYNTAX 
  to select the content of the columns 
SELECT column_name(s) 
FROM table_name  
  to select all the columns from the "Persons" table. 
SELECT * FROM table_name  
PROGRAM 
SELECT LastName,FirstName FROM Persons 
OUTPUT 
LastName FirstName
Hansen  Ola
  SANKETIKA POLYTECHNIC COLLEGE    
Svendson  Tove
Tjessem J akob  
  To select all the columns from the "Persons" table. 
PROGRAM 
SELECT * FROM Persons 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger 
3  Tjessem J akob  Nissestien 67  Sandnes   
SNO: 7  EXPERIMENT-7 
DATE:  
AIM 
EXERCISE ON QUERYING THE TABLE USING CLAUSES LIKE WHERE, ORDER, 
IN, OUT, AND, OR, NOT 
DESCRIPTION 
  The WHERE clause is used to extract only those records that fulfill a specified criterion. 
  The ORDER BY keyword is used to sort the result-set by a specified column. 
  The ORDER BY keyword sorts the records in ascending order. 
  to sort the records in a descending order, you can use the DESC keyword. 
  The IN operator allows you to specify multiple values in a WHERE clause. 
  The AND operator displays a record if both the first condition and the second condition are true. 
  The OR operator displays a record if either the first condition or the second condition is true. 
  This operator negates a Boolean input. It could be used to reverse output of any other logical 
operator 
WHERE : 
SYNTAX 
SELECT column_name(s) 
FROM table_name 
WHERE column_name operator value 
PROGRAM 
  SANKETIKA POLYTECHNIC COLLEGE    
SELECT * FROM Persons 
WHERE City='Sandnes' 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Tjessem J akob  Nissestien 67  Sandnes  
ORDER BY 
SYNTAX 
SELECT column_name(s) 
FROM table_name 
ORDER BY column_name(s) ASC|DESC 
PROGRAM 
SELECT * FROM Persons 
ORDER BY LastName 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger 
3  Tjessem J akob  Nissestien 67  Sandnes  
  To sort the persons descending by their last name. 
PROGRAM 
SELECT * FROM Persons 
ORDER BY LastName DESC 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
3  Tjessem J akob  Nissestien 67  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger 
1  Hansen  Ola  Timoteivn 10  Sandnes  
SYNTAX 
IN: 
  SANKETIKA POLYTECHNIC COLLEGE    
SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1,value2,...) 
PROGRAM 
SELECT * FROM Persons 
WHERE LastName IN ('Hansen','Svendson') 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger 
SYNTAX 
AND: 
SELECT *  
FROM table_name 
WHERE column_name operator value 
AND column_name operator value 
PROGRAM 
SELECT * FROM Persons 
WHERE FirstName='Tove' 
AND LastName='Svendson' 
OUTPUT 
P_Id   LastName  FirstName  Address  City 
2  Svendson  Tove  Borgvn 23  Stavanger 
SYNTAX 
OR: 
SELECT *  
FROM table_name 
WHERE column_name operator value 
OR column_name operator value  
PROGRAM 
SELECT * FROM Persons 
WHERE FirstName='Tove' 
OR FirstName='Ola' 
OUTPUT 
  SANKETIKA POLYTECHNIC COLLEGE    
P_Id   LastName  FirstName  Address  City 
1  Hansen  Ola  Timoteivn 10  Sandnes 
2  Svendson  Tove  Borgvn 23  Stavanger 
SELECT column_name1,column_name2------column_namen  
FROM table_name 
WHERE NOT column_name operator value 
NOT: 
PROGRAM 
SELECT  P_Id,LastName FROM Persons WHERE  NOT  city= 'Sandnes;  
OUTPUT 
P_Id   LastName  FirstName  Address  City 
2  Svendson  Tove  Borgvn 23  Stavanger    
SNO: 8  EXPERIMENT-8 
DATE:  
AIM 
EXERCISE ON CREATING AND DELETING OF INDEXES 
DESCRIPTION 
  An index can be created in a table to find data more quickly and efficiently. 
  The CREATE INDEX statement is used to create indexes in tables. 
  Indexes allow the database application to find data fast; without reading the whole table. 
  Indexes, tables, and databases can easily be deleted/removed with the DROP statement. 
  The DROP INDEX statement is used to delete an index in a table. 
SYNTAX 
CREATE INDEX index_name 
ON table_name (column_name) 
PROGRAM 
  To create an index on a single column 
  SANKETIKA POLYTECHNIC COLLEGE    
create index custsity 
on customer(cust_city);  
OUTPUT  
  To create an index on a combination of columns, you can list the column names within the 
parentheses, separated by commas: 
PROGRAM 
CREATE  INDEX custcity_country<br>  
ON customer(cust_city,cust_country); 
OUTPUT  
DROP INDEX 
  The DROP INDEX statement is used to delete an index in a table.  
SYNTAX  
ALTER TABLE table_name DROP INDEX index_name 
PROGRAM 
CREATE INDEX emp_id_ind ON Orders ([Employee ID]); 
DROP INDEX Orders.emp_id_ind;  
OUTPUT 
Index deleted         
  SANKETIKA POLYTECHNIC COLLEGE                         
SNO: 9  EXPERIMENT-9 
DATE:  
AIM 
EXERCISE ON VARIOUS GROUP FUNCTIONS 
DESCRIPTION 
SQL has many built-in functions for performing calculations on data. 
SQL aggregate functions return a single value, calculated from values in a column. 
Useful aggregate functions: 
  AVG() - Returns the average value 
  COUNT() - Returns the number of rows 
  FIRST() - Returns the first value 
  LAST() - Returns the last value 
  MAX() - Returns the largest value 
  MIN() - Returns the smallest value 
  SUM() - Returns the sum 
AVG() FUNCTION 
  SANKETIKA POLYTECHNIC COLLEGE    
DESCRIPTION 
         The AVG() function returns the average value of a numeric column. 
SYNTAX 
SELECT AVG(column_name) FROM table_name 
PROGRAM 
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders 
OUTPUT 
OrderAverage 
950  
  To find the customers that have an OrderPrice value higher than the average OrderPrice 
value. 
PROGRAM  
SELECT Customer FROM Orders 
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)  
OUTPUT  
Customer 
 Hansen  
Nilsen 
J ensen  
COUNT() FUNCTION 
DESCRIPTION 
  The COUNT() function returns the number of rows that matches a specified criteria. 
SYNTAX 
  SQL COUNT(column_name) Syntax 
The COUNT(column_name) function returns the number of values (NULL values will not be counted) of 
the specified column: 
SELECT COUNT(column_name) FROM table_name 
  SANKETIKA POLYTECHNIC COLLEGE    
  SQL COUNT(*) Syntax 
The COUNT(*) function returns the number of records in a table 
SELECT COUNT(*) FROM table_name 
  SQL COUNT(DISTINCT column_name) Syntax 
The COUNT(DISTINCT column_name) function returns the number of distinct values of the specified 
column 
SELECT COUNT(DISTINCT column_name) FROM table_name 
PROGRAM 
  SQL COUNT(column_name) 
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders 
WHERE Customer='Nilsen' 
OUTPUT 
CustomerNilsen 
2 
  SQL COUNT(*)  
SELECT COUNT(*) AS NumberOfOrders FROM Orders  
Output 
NumberOfOrders 
6  
  SQL COUNT(DISTINCT column_name) 
SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders  
Output  
NumberOfCustomers 
3 
FIRST() FUNCTION 
DESCRIPTION 
  The FIRST() function returns the first value of the selected column. 
  SANKETIKA POLYTECHNIC COLLEGE    
SYNTAX 
SELECT FIRST(column_name) FROM table_name 
PROGRAM 
SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders 
  if FIRST() function is not supported: 
SELECT OrderPrice FROM Orders ORDER BY O_Id LIMIT 1  
OUTPUT 
ORDERPRICE 
1000  
LAST() FUNCTION 
DESCRIPTION 
  The LAST() function returns the last value of the selected column. 
SYNTAX 
SELECT LAST(column_name) FROM table_name 
PROGRAM 
SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders 
  If LAST() function is not supported 
SELECT OrderPrice FROM Orders ORDER BY O_Id DESC LIMIT 1 
OUTPUT 
LastOrderPrice 
100 
MAX() FUNCTION 
DESCRIPTIOM 
  The MAX() function returns the largest value of the selected column. 
SYNTAX 
  SANKETIKA POLYTECHNIC COLLEGE    
SELECT MAX(column_name) FROM table_name 
PROGRAM 
SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders 
OUTPUT 
LargestOrderPrice 
2000  
MIN() FUNCTION 
DESCRIPTION 
  The MIN() function returns the smallest value of the selected column. 
SYNTAX 
SELECT MIN(column_name) FROM table_name 
PROGRAM 
SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders 
OUTPUT 
SmallestOrderPrice 
100    
SUM() FUNCTION 
DESCRIPTION 
  The SUM() function returns the total sum of a numeric column. 
SYNTAX 
SELECT SUM(column_name) FROM table_name 
PROGRAM 
SELECT SUM(OrderPrice) AS OrderTotal FROM Orders 
OUTPUT  
  SANKETIKA POLYTECHNIC COLLEGE    
OrderTotal 
5700            
SNO: 10  EXPERIMENT-10 
DATE: 
AIM 
EXERCISE ON NUMBER FUNCTIONS,CHARACTER FUNCTIONS, CONVERSION 
FUNCTIONS, AND DATE FUNCTIONS 
DESCRIPTION 
  SQL functions are built into Oracle Database and are available for use in various appropriate SQL 
statements. It performs an operation and returns a single value.. 
  SQL supports many functions. All the functions are categorized into 2 types. 
i.  Single row functions. 
ii.  Multiple row functions. 
1)  Single row functions: They work with data of a single row at a time. They are also called  
scalar 
functions. 
The types of single row functions are:    
  Numeric functions 
  Character functions 
  Date functions 
  Conversion functions  
Numeric functions: These functions operates on numeric data. They are: 
  ABS        MOD 
  CEIL        POWER 
  SANKETIKA POLYTECHNIC COLLEGE    
  FLOOR              ROUND 
  LN         SQRT 
  LOG        TRUNC 
We use dummy table called dual to perform these functions 
ABS 
DESCRIPTION 
  It returns an absolute value of a given number.i.e; a positive number. 
SYNTAX 
ABS(expression) 
PROGRAM 
SELECT ABS(-17.36)   
FROM dual;   
OUTPUT   
CEIL() FUNCTION 
DESCRIPTION 
  This SQL CEIL() will rounded up any positive or negative decimal value within the function 
upwards. 
SYNTAX  
CEIL(expression)  
PROGRAM 
SELECT(CEIL(17.36))   
FROM dual;    
OUTPUT 
  SANKETIKA POLYTECHNIC COLLEGE     
FLOOR() FUNCTION 
DESCRIPTION 
  The SQL FLOOR() rounded up any positive or negative decimal value down to the next least 
integer value.  
SYNTAX 
FLOOR(expression)  
PROGRAM 
SELECT FLOOR(17.36)   
FROM dual;    
OUTPUT  
LN() FUNCTION 
DESCRIPTION 
  The SQL LN() function returns the natural logarithm of n, where n is greater than 0 and its base is 
a number equal to approximately 2.71828183. 
SYNTAX  
LN(expression)  
PROGRAM 
SELECT LN(65) "natural_log of 65"   
FROM dual;    
OUTPUT 
  SANKETIKA POLYTECHNIC COLLEGE     
MOD() FUNCTION 
DESCRIPTION 
  This SQL MOD() function returns the remainder from a division.  
SYNTAX  
MOD( dividend, divider ) 
PROGRAM 
SELECT MOD(25,7)   
FROM dual;  
OUTPUT  
LOG() FUNCTION 
DESCRIPTION 
  LOG returns the logarithm, base m, of n. The base m can be any positive value other than 0 or 1 
and n can be any positive value. 
SYNTAX 
  LOG(X,Y) 
PROGRAM 
SELECT    LOG(10,100)   FROM DUAL;  
OUTPUT   
LOG(10,100)  
  SANKETIKA POLYTECHNIC COLLEGE    
2 
POWER() FUNCTION 
DESCRIPTION 
  This SQL POWER() function returns the value of a number raised to another, where both of the 
numbers are passed as arguments.  
Syntax  
POWER( base, exponent )  
PROGRAM 
SELECT POWER(2,3)   
FROM dual;    
OUTPUT   
ROUND() FUNCTION 
DESCRIPTION 
Returns the numeric value rounded off to the next value specified. 
SYNTAX 
ROUND(number, number of places) 
PROGRAM 
 Select   round(3.4573,2)   from dual; 
OUTPUT  
round(3.4573,2)  
        3.46   
SQRT() FUNCTION 
  SANKETIKA POLYTECHNIC COLLEGE    
DESCRIPTION 
  The SQL SQRT() returns the square root of given value in the argument. 
SYNTAX  
SQRT( expression ) 
PROGRAM 
SELECT SQRT(36)  FROM dual;   
OUTPUT   
TRUNC() FUNCTION  
DESCRIPTION  
  The trunc function returns a number truncated to a certain number of decimal places   
SYNTAX 
trunc( number, [ decimal_places ] )  
PROGRAM 
select   trunc(3.4573,2)   from dual; 
OUTPUT  
trunc  
3.45  
CHARACTER FUNCTIONS 
DESCRIPTION 
  A character or string function is a function which takes one or more characters or numbers as 
parameters and returns a character value.  
LOWER() FUNCTION 
  SANKETIKA POLYTECHNIC COLLEGE    
DESCRIPTION 
The SQL LOWER() function is used to convert all characters of a string to lower case. 
SYNTAX 
LOWER(string)  
PROGRAM 
SELECT LOWER('TESTING FOR LOWER FUNCTION')   
AS Testing_Lower   
FROM dual;    
OUTPUT  
UPPER() FUNCTION 
DESCRIPTION 
  The SQL UPPER() function is used to convert all characters of a string to uppercase.  
SYNTAX 
UPPER(string)  
PROGRAM 
SELECT UPPER('testing for upper function')   
AS Testing_Upper   
FROM dual;    
OUTPUT  
TRIM() FUNCTION 
DESCRIPTION 
  SANKETIKA POLYTECHNIC COLLEGE    
  The SQL TRIM() removes leading and trailing characters(or both) from a character string.  
SYNTAX 
TRIM( [ [{LEADING | TRAILING | BOTH}] [removal_char] 
FROM ] target_string [COLLATE collation_name]) 
PROGRAM 
1.  SELECT TRIM(TRAILING '1' FROM 1234567896541)   
2.  AS TRAILING_TRIM   
3.  FROM dual;   
OUTPUT  
LENGTH() FUNCTION 
DESCRIPTION 
  LENGTH returns the number of characters in char.  
SYNTAX 
LENGTH (char)  
PROGRAM 
select length(mohammed sami) from dual; 
OUTPUT 
LENGTH 
13 
LPAD 
DESCRIPTION 
  Left pads a given string with a given character upto n number of characters.  
SYNTAX 
LPAD(char1,n [,char2]) 
  SANKETIKA POLYTECHNIC COLLEGE    
PROGRAM 
select  lpad(ename,10,*)  from  emp; 
OUTPUT  
Ename  
*****Smith  
******John  
**Mohammed   
LTRIM 
DESCRIPTION 
  Trims a given string from left. 
SYNTAX 
LTRIM(char [, set]) 
PROGRAM 
select ltrim(GEORGE BUSH,GEORGE) from dual; 
OUTPUT 
Ltrim 
-------------- 
BUSH    
RPAD 
DESCRIPTION 
  Right pads a given string with a given character to n number of characters.  
SYNTAX 
RPAD(char1,n [,char2 ]) 
PROGRAM 
  SANKETIKA POLYTECHNIC COLLEGE    
select rpad(ename,10,*) from emp; 
OUTPUT 
Ename 
---------- 
Smith***** 
John****** 
Mohammed** 
Sami******    
CONVERSION FUNCTIONS  
DESCRIPTION 
Conversion functions convert a value from one datatype to another. The first datatype is the input 
datatype. The second datatype is the output datatype. 
  To_char 
  To_date 
To_char 
DESCRIPTION  
  This function converts a date or number to a character string. 
SYNTAX 
       to_char( value, [ format_mask ], [ nls_language ] )  
PROGRAM 
to_char(sysdate, 'Month DD, YYYY'); 
OUTPUT 
TO_CHAR(SYSDATE, 'MONTH DD, YYYY'); 
--------------------------- 
J uly 09, 2003' 
  THE TO_CHAR FUNCTION CONVERTS A NUMBER 
PROGRAM 
select to_char(12345.67,'99,999.9900') from dual; 
OUTPUT 
  SANKETIKA POLYTECHNIC COLLEGE    
TO_CHAR(1234 
------------ 
 12,345.6700 
TO_DATE FUNCTION 
DESCRIPTION 
  To_date function converts a string to a oracle date. 
   SYNTAX 
TO_DATE ( String, [Format], [Optional Setting] ) 
   PROGRAM 
SELECT TO_DATE('99-J AN-05','YY-MON-DD') FROM dual;  
  OUTPUT 
2099 01 05 00:00:00  
MISCELLANEOUS FUNCTIONS 
DESCRIPTION 
  Miscellaneous means mixed or  heterogeneous. 
  Nvl 
  Decode 
Nvl 
DESCRIPTION 
  It will substitute any null values in a table with a user defined value. 
SYNTAX 
NVL( string1, replace_with ) 
PROGRAM 
select empno,ename,sal,comm from emp; 
OUTPUT 
    EMPNO     ENAME          SAL      COMM 
---------            ---------- -     --------     --------- 
  SANKETIKA POLYTECHNIC COLLEGE    
     7369   SMITH           800 
     7499   ALLEN          1600       300 
     7521   WARD           1250       500 
     7566   JONES           2975 
     7654   MARTIN        1250      1400 
     7698   BLAKE           2850 
     7782   CLARK           2450 
     7788   SCOTT             3000 
     7839   KING               5000 
                 9 rows selected. 
  Except for empno 7499,7521,7654,7844 ,the commission for others are null.so to place 
commission as 100 in all places where there is null,we use nvl ( ) function. 
PROGRAM 
select empno,nvl(comm,100) from emp; 
OUTPUT 
    EMPNO   NVL(COMM,100) 
--------- -      ------------ 
     7369           100 
     7499           300 
     7521           500 
     7566           100 
     7654          1400 
     7698           100 
     7782           100 
Decode: Decode is a very useful and handy function for Oracle queries.see the following explanation to 
understand this function. It substitute values by using if-else-then logic. 
PROGRAM 
  SANKETIKA POLYTECHNIC COLLEGE    
select * from employee; 
OUTPUT 
    EMPNO    DEPTNO  
--------- --------- -------------------- 
      590        10 
      652        20 
      754        30   
PROGRAM 
SQL> select empno,decode(deptno,10,'computer',20,'ece',30,'eee','none') from employee;   
OUTPUT 
EMPNO              DECODE(D)  
452  Computer 
584  Ece 
642  eee  
DATE FUNCTIONS 
  ADD_MONTHS(date,n) 
  LAST_DAY(date) 
  MONTHS_BETWEEN(date1 , date2) 
  NEXT_DAY(date,day) 
ADD_MONTHS 
DESCRIPTION 
  The add_months function returns a date plus n months.  
SYNTAX 
  add_months( date1, n ) 
PROGRAM 
Select add_months(1-jan-05,5) from dual; 
OUTPUT 
ADD_MONTH  
01-JUN-05  
  SANKETIKA POLYTECHNIC COLLEGE     
LAST_DAY FUNCTION 
DESCRIPTION 
It returns the date of the last day of the month for a given date. 
SYNTAX 
last_day( date ) 
PROGRAM 
SQL>select LAST_DAY ('12-J AN-99') from dual; 
OUTPUT 
LAST_DAY  
31-JAN-99   
MONTHS_BETWEEN FUNCTION 
DESCRIPTION 
  Function calculates the number of months between two dates and returns that difference as a 
number. 
SYNTAX 
months_between( date1, date2 ) 
PROGRAM 
SQL>select MONTHS_BETWEEN ('31-MAR-1995', '28-FEB-1994') from dual; 
OUTPUT 
MONTHS_BETWEEN('31-MAR-1995','28-FEB-1994') 
----------------------------------------------------------------------- 
                                         13 
NEXT_DAY 
DESCRIPTION 
  This function returns the date of the first day after the specified date which falls on the specified 
day of the week. 
  SANKETIKA POLYTECHNIC COLLEGE    
SYNTAX 
PROGRAM 
NEXT_DAY(date,day) 
SQL>select NEXT_DAY ('15-AUG-2010','FRIDAY') from dual; 
OUTPUT 
NEXT_DAY 
--------- 
20-AUG-10       
SNO: 11  EXPERIMENT-11 
DATE: 
AIM 
EXERCISE ON SET OPERATORS 
DESCRIPTION 
  SET OPERATORS combines 2 or more queries into one result. The datatypes of corresponding 
columns must be same. 
  The set operators are: UNION, INTERSECT, MINUS. 
UNION 
DESCRIPTION 
  The UNION operator is used to combine the result-set of two or more SELECT statements.  
SYNTAX 
SELECT column_name(s) FROM table_name1 
UNION 
SELECT column_name(s) FROM table_name2 
PROGRAM 
  SANKETIKA POLYTECHNIC COLLEGE    
SELECT E_Name FROM Employees_Norway 
UNION 
SELECT E_Name  
FROM Employees_USA 
OUTPUT         
INTERSECT 
DESCRIPTION 
  Intersect only returns the rows that are found in all select statements. 
SYNTAX 
SELECT column_name(s) FROM table_name1 
INTERSECT 
SELECT column_name(s) FROM table_name2; 
PROGRAM 
E_Name 
Hansen, Ola 
Svendson, Tove 
Svendson, Stephen 
Pettersen, Kari 
Turner, Sally 
Kent, Clark 
Scott, Stephen 
  SANKETIKA POLYTECHNIC COLLEGE    
SELECT E_Name FROM  Employees_vizag  
INTERSECT 
SELECT E_Name FROM Employees_chennai; 
OUTPUT 
E_Name 
Stephen 
MINUS:  
DESCRIPTION 
  The SQL MINUS query returns all rows in the first SQL SELECT statement that are not returned 
in the second SQL SELECT statement. 
  Each SQL SELECT statement within the SQL MINUS query must have the same number of 
fields in the result sets with similar data types. 
SYNTAX 
SELECT column_name(s) FROM table_name1 
MINUS 
SELECT column_name(s) FROM table_name2; 
PROGRAM 
SELECT  E_Name FROM Employees_vizag  
MINUS 
SELECT  E_Name FROM Employees_chennai; 
OUTPUT 
E_Name 
tom 
harry 
Peter  
SNO: 12  EXPERIMENT-12 
DATE: 
AIM 
         EXERCISE ON SUB QUERIES 
  SANKETIKA POLYTECHNIC COLLEGE    
DESCRIPTION 
A query within another quey. A select statement whose output is substituted in the condition of another 
select statement .(A query is a statement written for returning specific data). The subquery is executed 
only once. A subquery is enclosed in parenthesis. 
There are three broad divisions of subquery:  
  Single-row subqueries : The single-row
  Multiple-row subqueries : These subqueries return sets of rows. 
subquery returns one row. 
  Correlated subqueries 
SINGLE-ROW SUBQUERIES 
DESCRIPTION 
  The single-row subquery returns one row. 
PROGRAM 
SQL>select * from emp where sal =(select min(sal) from emp);  
OUTPUT  
    EMPNO     ENAME        JOB           MGR      
HIREDATE         
SAL        DEPTNO 
7369  SMITH  CLERK      7902  17-DEC-80             2800        20  
MULTIPLE ROW SUB QUERY  
DESCRIPTION 
  These subqueries return sets of rows.   
PROGRAM 
SQL>select empno,ename,job,sal,deptno from emp where  
deptno in (select deptno from dept where loc ='CHICAGO'); 
OUTPUT 
    EMPNO  ENAME       JOB                 SAL        DEPTNO 
7499  ALLEN  SALESMAN  3600  30 
7524  WARD  SALESMAN  3225  30 
7654  MARTIN  SALESMAN  3222  30 
  SANKETIKA POLYTECHNIC COLLEGE       
3 rows selected.                               
 SNO: 13  EXPERIMENT-13 
DATE: 
AIM 
  SANKETIKA POLYTECHNIC COLLEGE    
EXERCISE ON JOINS 
Description 
The J OIN keyword is used in an SQL statement to query data from two or more tables, based on a 
relationship between certain columns in these tables. 
Tables in a database are often related to each other with keys. 
A primary key is a column (or a combination of columns) with a unique value for each row. Each primary 
key value must be unique within the table.  
 Types of J OIN and the differences between them: 
  JOIN: Return rows when there is at least one match in both tables 
  LEFT JOIN: Return all rows from the left table, even if there are no matches in the right table 
  RIGHT JOIN: Return all rows from the right table, even if there are no matches in the left table 
  FULL JOIN: Return rows when there is a match in one of the tables 
INNER JOIN 
The INNER J OIN keyword returns rows when there is at least one match in both tables. 
SYNTAX 
SELECT column_name(s) 
FROM table_name1 
INNER J OIN table_name2 
ON table_name1.column_name=table_name2.column_name 
PROGRAM 
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo 
FROM Persons 
INNER J OIN Orders 
ON Persons.P_Id=Orders.P_Id 
ORDER BY Persons.LastName 
OUTPUT 
LastName  FirstName  OrderNo 
Hansen  Ola  22456 
Hansen  Ola  24562 
  SANKETIKA POLYTECHNIC COLLEGE    
Pettersen  Kari  77895 
Pettersen  Kari  44678 
LEFT JOIN 
The LEFT J OIN keyword returns all rows from the left table (table_name1), even if there are no matches 
in the right table (table_name2). 
SYNTAX 
SELECT column_name(s) 
FROM table_name1 
LEFT J OIN table_name2 
ON table_name1.column_name=table_name2.column_name 
PROGRAM 
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo 
FROM Persons 
LEFT J OIN Orders 
ON Persons.P_Id=Orders.P_Id 
ORDER BY Persons.LastName 
OUTPUT 
LastName  FirstName  OrderNo 
Hansen  Ola  22456 
Hansen  Ola  24562 
Pettersen  Kari  77895 
Pettersen  Kari  44678 
Svendson  Tove    
RIGHT JOIN 
The RIGHT J OIN keyword returns all the rows from the right table (table_name2), even if there are no 
matches in the left table (table_name1). 
SYNTAX 
SELECT column_name(s) 
FROM table_name1 
RIGHT J OIN table_name2 
ON table_name1.column_name=table_name2.column_name 
  SANKETIKA POLYTECHNIC COLLEGE    
PROGRAM 
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo 
FROM Persons 
RIGHT J OIN Orders 
ON Persons.P_Id=Orders.P_Id 
ORDER BY Persons.LastName 
OUTPUT 
LastName  FirstName  OrderNo 
Hansen  Ola  22456 
Hansen  Ola  24562 
Pettersen  Kari  77895 
Pettersen  Kari  44678 
      34764 
FULL JOIN 
The FULL J OIN keyword return rows when there is a match in one of the tables. 
SYNTAX 
SELECT column_name(s) 
FROM table_name1 
FULL J OIN table_name2 
ON table_name1.column_name=table_name2.column_name 
PROGRAM 
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo 
FROM Persons 
FULL J OIN Orders 
ON Persons.P_Id=Orders.P_Id 
ORDER BY Persons.LastName 
OUTPUT 
LastName  FirstName  OrderNo 
Hansen  Ola  22456 
Hansen  Ola  24562 
Pettersen  Kari  77895 
  SANKETIKA POLYTECHNIC COLLEGE    
Pettersen  Kari  44678 
Svendson  Tove    
      34764                     
SNO: 14  EXPERIMENT-14 
DATE: 
  SANKETIKA POLYTECHNIC COLLEGE    
AIM 
EXERCISE ON VARIOUS DATE AND NUMBER FORMAT MODELS 
DESCRIPTION 
A format model is a character literal that describes the format of datetime or numeric data stored in a 
character string. A format model does not change the internal representation of the value in the database. 
In SQL statements, you can use a format model as an argument of the to_char  and to_date  functions to 
specify: 
  The format for Oracle to use to return a value from the database 
  The format for a value you have specified for Oracle to store in the database 
NUMBER FORMAT MODELS 
  A number format model is composed of one or more number format elements.  
  The number format models in the following functions: 
  TO_CHAR 
  TO_NUMBER  
  TO_BINARY_FLOAT 
  TO_BINARY_DOUBLE 
TO_CHAR FUNCTION  
DESCRIPTION 
  To_char function converts a number or date to a string. 
SYNTAX 
to_char( value, [ format_mask ], [ nls_language ] )  
PROGRAM 
SELECT to_char(21, '000099') FROM dual; 
OUTPUT 
000021 
TO_NUMBER  
DESCRIPTION 
 The to_number function converts a string to a number. 
SYNTAX 
  SANKETIKA POLYTECHNIC COLLEGE    
to_number( string1, [ format_mask ], [ nls_language ] )  
PROGRAM 
SELECT to_number('546', '999') FROM dual; 
OUTPUT 
546 
TO_BINARY_FLOAT 
DESCRIPTION 
  It returns a single-precision floating-point number. 
SYNTAX 
SELECT TO_BINARY_FLOAT(number) 
FROM table_name; 
PROGRAM 
SELECT dec_num, TO_BINARY_FLOAT(dec_num) 
  FROM float_point_demo;  
OUTPUT  
   DEC_NUM TO_BINARY_FLOAT(DEC_NUM) 
---------- ------------------------ 
   1234.56               1.235E+003  
TO_BINARY_DOUBLE 
DESCRIPTION 
  It returns a double-precision floating-point number. 
SYNTAX 
SELECT TO_BINARY_DOUBLE (number) FROM table_name; 
PROGRAM 
CREATE TABLE float_point_demo 
  (dec_num NUMBER(10,2), bin_double BINARY_DOUBLE, bin_float BINARY_FLOAT);  
INSERT INTO float_point_demo 
  VALUES (1234.56,1234.56,1234.56); 
  SANKETIKA POLYTECHNIC COLLEGE     
SELECT * FROM float_point_demo;  
OUTPUT  
   DEC_NUM BIN_DOUBLE  BIN_FLOAT 
---------- ---------- ---------- 
   1234.56 1.235E+003 1.235E+003  
PROGRAM 
SELECT dec_num, TO_BINARY_DOUBLE(dec_num) 
  FROM float_point_demo;  
OUTPUT    
 DEC_NUM TO_BINARY_DOUBLE(DEC_NUM) 
---------- ------------------------- 
   1234.56                1.235E+003  
DATE FORMAT MODELS 
  In the To_ datetime functions to translate a character value that is in a format other than the 
default format into a datetime value. 
The to_ datetime functions are  TO_CHAR, TO_DATE, TO_TIMESTAMP, TO_TIMESTAMP_TZ 
TO_CHAR 
PROGRAM 
SELECT to_char(sysdate, 'Month DD, YYYY') FROM dual; 
OUTPUT 
J uly 09, 2003 
TO_DATE 
  The to_date function converts a string to a date. 
SYNTAX 
to_date( string1, [ format_mask ], [ nls_language ] ) 
PROGRAM 
SELECT to_date('2003/07/09', 'yyyy/mm/dd') FROM DUAL; 
OUTPUT 
  SANKETIKA POLYTECHNIC COLLEGE    
JULY 9,2003 
TO_TIMESTAMP 
  The to_timestamp function converts a string to a timestamp. 
SYNTAX 
to_timestamp( string1, [ format_mask ] [ 'nlsparam' ] ) 
PROGRAM 
SELECT to_timestamp('2003/12/13 10:13:18', 'YYYY/MM/DD HH:MI:SS') FROM DUAL;  
OUTPUT 
 13-DEC-03 10.13.18.000000000 AM 
TO_TIMESTAMP_TZ 
  Convert a character string to a value of TIMESTAMP WITH TIME ZONE 
 SYNTAX 
to_timestamp_tz( string1 , [ format_mask ] [ 'nlsparam' ] )  
PROGRAM 
SELECT TO_TIMESTAMP_TZ('1999-12-01 11:00:00 -8:00','YYYY-MM-DD HH:MI:SS TZH:TZM') 
FROM DUAL;  
OUTPUT   
TO_TIMESTAMP_TZ('1999-12-0111:00:00-08:00','YYYY-MM-DDHH:MI:SSTZH:TZM') 
-------------------------------------------------------------------- 
01-DEC-99 11.00.00.000000000 AM -08:00     
SNO: 15  EXPERIMENT-15 
DATE: 
  SANKETIKA POLYTECHNIC COLLEGE    
AIM 
EXERCISE ON SEQUENCES 
DESCRIPTION 
  Sequences are frequently used in databases because many applications require each row in a table 
to contain a unique value, and sequences provide an easy way to generate them. 
  It is an object in oracle.It generates a series of numbers. It can generate unique sequential 
numbers for using a primary key column of a table. 
SYNTAX 
CREATE SEQUENCE [schema_name . ] sequence_name 
    [ AS [ built_in_integer_type | user-defined_integer_type ] ] 
    [ START WITH <constant>] 
    [ INCREMENT BY <constant>] 
    [ { MINVALUE [ <constant>] } | { NO MINVALUE } ] 
    [ { MAXVALUE [ <constant>] } | { NO MAXVALUE } ] 
    [ CYCLE | { NO CYCLE } ] 
    [ { CACHE [ <constant>] } | { NO CACHE } ] 
    [ ; ]          
PROGRAM 
SQL>create sequence ss 
     minvalue 1 
    maxvalue 10 
    start with 1 
    increment by 1;  
OUTPUT 
Sequence created. 
PROGRAM 
SQL>select ss.nextval from dual; 
OUTPUT 
  NEXTVAL 
--------- 
        1  
SQL> select ss.nextval from dual; 
  NEXTVAL 
--------- 
        2 
SQL> select ss.nextval from dual; 
  NEXTVAL 
  SANKETIKA POLYTECHNIC COLLEGE    
--------- 
        3 
SQL> select  ss.currval from dual; 
  CURRVAL 
--------- 
        3 
SQL> select ss.nextval from dual; 
  NEXTVAL 
--------- 
        4 
SQL>alter sequence ss 
  2  maxvalue 5; 
Sequence altered. 
PROGRAM 
SQL>select ss.nextval from dual; 
OUTPUT 
  NEXTVAL 
--------- 
        5 
PROGRAM 
SQL>select ss.nextval from dual; 
OUTPUT 
select ss.nextval from dual 
* 
ERROR at line 1: 
ORA-08004: sequence SS.NEXTVAL exceeds MAXVALUE and cannot be instantiated  
DROPA SEQUENCE 
SYNTAX 
DROP SEQUENCE { [ database_name . [ schema_name ] . | schema_name. ]    sequence_name } [ ,...n ] 
[ ; ]          
PROGRAM 
SQL>drop sequence ss; 
OUTPUT 
Sequence dropped. 
PROGRAM 
  SANKETIKA POLYTECHNIC COLLEGE    
 SQL>create sequence ss 
   minvalue 1 
  maxvalue 5 
  start with 1 
  increment by 1; 
OUTPUT 
Sequence created. 
PROGRAM 
SQL>create table sports(spid number,spname varchar2(20)); 
Table created. 
SQL>insert into sports values(ss.nextval,'cricket'); 
1 row created. 
SQL> insert into sports values(ss.nextval,'chess'); 
1 row created. 
SQL> insert into sports values(ss.nextval,'tennis'); 
1 row created. 
SQL> insert into sports values(ss.nextval,'football'); 
1 row created. 
SQL> insert into sports values(ss.nextval,'hockey'); 
1 row created. 
PROGRAM 
SQL> insert into sports values(ss.nextval,'volleyball'); 
OUTPUT 
 insert into sports values(ss.nextval,'volleyball') 
             * 
ERROR at line 1: 
ORA-08004: sequence SS.NEXTVAL exceeds MAXVALUE and cannot be instantiated 
  SANKETIKA POLYTECHNIC COLLEGE    
PROGRAM 
SQL>select * from sports; 
OUTPUT 
     SPID SPNAME 
--------- -------------------- 
        1 cricket 
        2 chess 
        3 tennis 
        4 football 
        5 hockey 
SQL>drop sequence ss; 
OUTPUT 
Sequence dropped.            
SNO: 16  EXPERIMENT-16 
DATE: 
  SANKETIKA POLYTECHNIC COLLEGE    
AIM 
EXERCISE ON SYNONYMS 
DESCRIPTION 
  A synonym is an alias or alternate name for a table, view, sequence, or other schema object.  
  They are used mainly to make it easy for users to access database objects owned by other users. 
PROGRAM 
SQL>create synonym workers for emp; 
OUTPUT 
Synonym created. 
PROGRAM 
SQL>create synonym employees for workers; 
OUTPUT 
Synonym created. 
PROGRAM 
SQL>select * from workers; 
OUTPUT 
  EMPNO ENAME      JOB             MGR        HIREDATE        SAL      COMM    DEPTNO 
--------- ---------- --------- --------- --------- --------- --------- ------------------------------------------- 
     7369   SMITH      CLERK              7902   17-DEC-80      2800                      20 
     7499  ALLEN      SALESMAN      7698   20-FEB-81      3600          300          30 
     7521 WARD       SALESMAN       7698   22-FEB-81      3250         500          30 
     7566 J ONES      MANAGER         7839   02-APR-81      4975                      20 
     7654 MARTIN     SALESMAN      7698   28-SEP-81        3250       1400          30 
     7698 BLAKE      MANAGER        7839   01-MAY-81      4850                     30 
     7782 CLARK      MANAGER        7839   09-J UN-81       4450                     10 
     7788 SCOTT      ANALYST           7566   19-APR-87       5000                     20 
     7839 KING       PRESIDENT               7-NOV-81       7000                      10 
  SANKETIKA POLYTECHNIC COLLEGE    
     7844 TURNER     SALESMAN       7698   08-SEP-81        3500           0          30 
     7876 ADAMS      CLERK                7788   23-MAY-87      3100                     20 
     7900 J AMES      CLERK                 7698   03-DEC-81       2950                     30 
     7902 FORD       ANALYST             7566   03-DEC-81       5000                     20 
     7934 MILLER     CLERK               7782   23-J AN-82        3300                     10 
14 rows selected. 
PROGRAM 
SQL>select * from employees; 
OUTPUT 
EMPNO ENAME      JOB             MGR        HIREDATE        SAL      COMM    DEPTNO 
--------- ---------- --------- --------- --------- --------- --------- ------------------------------------------- 
     7369   SMITH      CLERK              7902   17-DEC-80      2800            20 
     7499  ALLEN      SALESMAN      7698   20-FEB-81      3600       300          30 
     7521 WARD       SALESMAN       7698   22-FEB-81      3250       500          30 
     7566 J ONES      MANAGER         7839   02-APR-81      4975                      20 
     7654 MARTIN     SALESMAN      7698   28-SEP-81        3250      1400          30 
     7698 BLAKE      MANAGER        7839   01-MAY-81      4850                      30 
     7782 CLARK      MANAGER        7839   09-J UN-81       4450                     10 
     7788 SCOTT      ANALYST           7566   19-APR-87       5000                     20 
     7839 KING       PRESIDENT               7-NOV-81       7000                      10 
     7844 TURNER     SALESMAN       7698   08-SEP-81        3500         0          30 
     7876 ADAMS      CLERK                7788   23-MAY-87      3100                     20 
     7900 J AMES      CLERK                 7698   03-DEC-81       2950                      30 
     7902 FORD       ANALYST             7566   03-DEC-81       5000                      20 
     7934 MILLER     CLERK               7782   23-J AN-82        3300                     10 
14 rows selected. 
DROP SYNONYM 
  SANKETIKA POLYTECHNIC COLLEGE    
PROGRAM 
SQL> drop synonym workers; 
OUTPUT 
Synonym dropped. 
PROGRAM 
SQL> select * from employee; 
OUTPUT 
select * from employee 
              * 
ERROR at line 1: 
ORA-00942: table or view does not exist               
SNO: 17  EXPERIMENT-17 
DATE: 
  SANKETIKA POLYTECHNIC COLLEGE     
AIM 
EXERCISE ON VIEWS 
DESCRIPTION 
  A VIEW is a virtual table, through which a selective portion of the data from one or more 
tables can be seen. Views do not contain data of their own. 
   They are used to restrict access to the database or to hide data complexity. A view is stored as 
a SELECT statement in the database.  
  DML operations on a view like INSERT, UPDATE, DELETE affects the data in the original 
table upon which the view is based. 
SYNTAX  
CREATE VIEW view_name  
AS  
SELECT column_list  
FROM table_name [WHERE condition];  
PROGRAM 
CREATE VIEW CUSTOMERS_VIEW AS 
SELECT name, age 
FROM  CUSTOMERS; 
View can also be queried as a table. 
SELECT * FROM CUSTOMERS_VIEW; 
OUTPUT 
| name     | age | 
-------------------- 
| Ramesh   |  32 | 
| Khilan   |  25 | 
| kaushik  |  23 | 
| Chaitali |  25 | 
| Hardik   |  27 | 
| Komal    |  22 | 
| Muffy    |  24 |  
UPDATE A VIEW 
PROGRAM 
UPDATE CUSTOMERS_VIEW 
      SET AGE =35 
  SANKETIKA POLYTECHNIC COLLEGE    
      WHERE name='Ramesh'; 
OUTPUT  
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
------------------------------------------------------------ 
|  1 | Ramesh   |  35 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  6 | Komal    |  22 | MP        |  4500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+
DELETING ROWS FROM A VIEW 
PROGRAM 
DELETE FROM CUSTOMERS_VIEW 
      WHERE age =22; 
OUTPUT 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
|  1 | Ramesh   |  35 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+
DROP A VIEW 
to drop the view if it is no longer needed.  
 SYNTAX  
DROP VIEW view_name; 
PROGRAM 
DROP VIEW CUSTOMERS_VIEW;  
OUTPUT 
View dropped  
  SANKETIKA POLYTECHNIC COLLEGE    
AIM 
EXERCISE ON CREATING TABLES WITH INTEGRITY CONSTRAINTS 
DESCRIPTION 
Constraints are used to limit the type of data that can go into a table. 
Constraints can be specified when a table is created (with the CREATE TABLE statement) or after the 
table is created (with the ALTER TABLE statement). 
We will focus on the following constraints: 
  NOT NULL  
  UNIQUE  
  PRIMARY KEY  
  FOREIGN KEY  
  CHECK  
  DEFAULT  
By default, a table column can hold NULL values. 
SQL NOT NULL Constraint 
  The NOT NULL constraint enforces a column to NOT accept NULL values. 
  The NOT NULL constraint enforces a field to always contain a value. This means that you cannot 
insert a new record, or update a record without adding a value to this field. 
SYNTAX 
 (Column_name [data type] [NOT NULL], 
OR 
(Column_name data type [Constraint <name>] NOT NULL,  
PROGRAM 
SQL>create table persons(pid number not null,lastname varchar2(20) not null,firstname varchar2(20)); 
OUTPUT 
Table created. 
PROGRAM 
SQL>insert into persons values(&pid,'&lastname','&firstname'); 
Enter value for pid: 1 
SNO: 18  EXPERIMENT-18 
DATE: 
  SANKETIKA POLYTECHNIC COLLEGE    
Enter value for lastname: priya 
Enter value for firstname: sri 
old   1: insert into persons values(&pid,'&lastname','&firstname') 
new   1: insert into persons values(1,'priya','sri') 
OUTPUT 
1 row created. 
SQL> / 
Enter value for pid:  
Enter value for lastname: kavya 
Enter value for firstname: sri 
old   1: insert into persons values(&pid,'&lastname','&firstname') 
new   1: insert into persons values(,'kavya','sri') 
insert into persons values(,'kavya','sri') 
         * 
ERROR at line 1: 
ORA-00936: missing expression  
PROGRAM 
SQL> select * from persons; 
OUTPUT 
      PID       LASTNAME             FIRSTNAME 
---------      --------------------           -------------------- 
        1     priya                             sri 
SQL UNIQUE Constraint 
  The UNIQUE constraint uniquely identifies each record in a database table. 
  The UNIQUE and PRIMARY KEY constraints both provide a guarantee for uniqueness for a 
column or set of columns. 
  A PRIMARY KEY constraint automatically has a UNIQUE constraint defined on it. 
SYNTAX 
[Constraint <name>] UNIQUE (<column_name>); 
PROGRAM 
SQL>create table persons(pid number not null unique,lastname varchar2(20) not null,firstname  
  SANKETIKA POLYTECHNIC COLLEGE    
  2  varchar2(20)); 
OUTPUT 
Table created. 
PROGRAM 
SQL> desc persons; 
OUTPUT 
 Name                                                  Null?    Type 
 ----------------------------------------------------- -------- ----------------------------------- 
 PID                                                   NOT NULL NUMBER 
 LASTNAME                                              NOT NULL VARCHAR2(20) 
 FIRSTNAME                                                      VARCHAR2(20) 
PROGRAM 
SQL>insert into persons values(&pid,'&lastname','&firstname'); 
Enter value for pid: 1 
Enter value for lastname: priya 
Enter value for firstname: sri 
old   1: insert into persons values(&pid,'&lastname','&firstname') 
new   1: insert into persons values(1,'priya','sri') 
OUTPUT 
1 row created. 
SQL> / 
Enter value for pid: 1 
Enter value for lastname: kavya 
Enter value for firstname: sri 
old   1: insert into persons values(&pid,'&lastname','&firstname') 
new   1: insert into persons values(1,'kavya','sri') 
insert into persons values(1,'kavya','sri') 
  SANKETIKA POLYTECHNIC COLLEGE    
            * 
ERROR at line 1: 
ORA-00001: unique constraint (SCOTT.SYS_C001261) violated 
PROGRAM 
SQL> select * from persons; 
      PID LASTNAME             FIRSTNAME 
--------- -------------------- -------------------- 
        1 priya                sri 
SQL PRIMARY KEY Constraint 
  The PRIMARY KEY constraint uniquely identifies each record in a database table. 
  Primary keys must contain unique values. 
  A primary key column cannot contain NULL values. 
  Each table should have a primary key, and each table can have only ONE primary key. 
SYNTAX 
 (Column_name data type [Constraint <name>] PRIMARY KEY, 
PROGRAM 
SQL> create table persons(pid number primary key,lastname varchar2(20) not null,firstname  
  2  varchar2(20)); 
OUTPUT 
Table created. 
PROGRAM 
SQL> desc persons; 
OUTPUT 
 Name                                                  Null?    Type 
 ----------------------------------------------------- -------- ----------------------------------- 
 PID                                                                   NUMBER 
 LASTNAME                               NOT NULL VARCHAR2(20) 
  SANKETIKA POLYTECHNIC COLLEGE    
 FIRSTNAME                                                      VARCHAR2(20) 
PROGRAM 
SQL>insert into persons values(&pid,'&lastname','&firstname'); 
Enter value for pid: 1 
Enter value for lastname: priya 
Enter value for firstname: sri 
old   1: insert into persons values(&pid,'&lastname','&firstname') 
new   1: insert into persons values(1,'priya','sri') 
OUTPUT 
1 row created. 
SQL> / 
Enter value for pid: 1 
Enter value for lastname: kavya 
Enter value for firstname: sri 
old   1: insert into persons values(&pid,'&lastname','&firstname') 
new   1: insert into persons values(1,'kavya','sri') 
insert into persons values(1,'kavya','sri') 
            * 
ERROR at line 1: 
ORA-00001: unique constraint (SCOTT.SYS_C001261) violated 
SQL> select * from persons; 
      PID   LASTNAME             FIRSTNAME 
---------    -------------------- -------------------- 
        1       priya                sri 
SQL FOREIGN KEY Constraint 
  A FOREIGN KEY in one table points to a PRIMARY KEY in another table. 
PROGRAM 
  SANKETIKA POLYTECHNIC COLLEGE    
SQL>create table persons(pid number(5) primary key,pname varchar2(20),city varchar2(20)); 
OUTPUT 
Table created. 
PROGRAM 
SQL>create table orders(oid number(5),orderno number(5),pid number(5),constraint fk_persons foreign  
key(pid) references persons(pid)); 
OUTPUT 
Table created. 
PROGRAM 
SQL>insert into persons values(&pid,'&pname','&city'); 
Enter value for pid: 1 
Enter value for pname: madhu 
Enter value for city: delhi 
old   1: insert into persons values(&pid,'&pname','&city') 
new   1: insert into persons values(1,'madhu','delhi') 
OUTPUT 
1 row created. 
SQL> 2 
SP2-0226: Invalid line number 
SQL> / 
Enter value for pid: 2 
Enter value for pname: nitish 
Enter value for city: kolkata 
old   1: insert into persons values(&pid,'&pname','&city') 
new   1: insert into persons values(2,'nitish','kolkata') 
OUTPUT 
1 row created. 
  SANKETIKA POLYTECHNIC COLLEGE    
SQL> / 
Enter value for pid: 3 
Enter value for pname: kamal 
Enter value for city: chennai 
old   1: insert into persons values(&pid,'&pname','&city') 
new   1: insert into persons values(3,'kamal','chennai') 
1 row created. 
PROGRAM 
SQL> select * from persons; 
OUTPUT 
      PID PNAME                CITY 
--------- -------------------- -------------------- 
        1 madhu                delhi 
        2 nitish               kolkata 
        3 kamal                Chennai             
  SANKETIKA POLYTECHNIC COLLEGE    
PL/SQL 
  INTRODUCTION 
The PL/SQL programming language was developed by Oracle Corporation in the late 1980s as procedural 
extension language for SQL and the Oracle relational database. Following are notable facts about 
PL/SQL: 
  PL/SQL is a completely portable, high-performance transaction-processing language. 
  PL/SQL provides a built-in interpreted and OS independent programming environment. 
  PL/SQL can also directly be called from the command-line SQL*Plus interface. 
  Direct call can also be made from external programming language calls to database.  
  PL/SQL's general syntax is based on that of ADA and Pascal programming language. 
  Apart from Oracle, PL/SQL is available in TimesTen in-memory database and IBM DB2.  
  FEATURES OF PL/SQL 
PL/SQL has the following features: 
  PL/SQL is tightly integrated with SQL. 
  It offers extensive error checking. 
  It offers numerous data types. 
  It offers a variety of programming structures. 
  It supports structured programming through functions and procedures. 
  It supports object oriented programming. 
  It supports developing web applications and server pages. 
  ADVANTAGES OF PL/SQL 
PL/SQL has the following advantages: 
  SQL is the standard database language and PL/SQL is strongly integrated with SQL.  
  PL/SQL allows sending an entire block of statements to the database at one time. This reduces 
network traffic and provides high performance for the applications. 
  PL/SQL give high productivity to programmers as it can query, transform, and update data in a 
database. 
  PL/SQL saves time on design and debugging by strong features, such as exception handling, 
encapsulation, data hiding, and object-oriented data types. 
  Applications written in PL/SQL are fully portable. 
  PL/SQL provides high security level. 
  PL/SQL provides access to predefined SQL packages. 
  PL/SQL provides support for Object-Oriented Programming. 
  PL/SQL provides support for Developing Web Applications and Server Pages    
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 19  EXPERIMENT-19 
DATE: 
AIM 
WRITE A PROGRAM USING PL/SQL CONTROL STATEMENTS 
DESCRIPTION 
  Decision making structures require that the programmer specify one or more conditions to be 
evaluated or tested by the program, along with a statement or statements to be executed if the 
condition is determined to be true, and optionally, other statements to be executed if the condition 
is determined to be false.  
  PL/SQL programming language provides following types of decision making statements. 
  IF - THEN statement  
  IF-THEN-ELSE statement  
   IF-THEN-ELSIF statement 
  Case statement 
IF - THEN STATEMENT  
DESCRIPTION 
  The IF statement associates a condition with a sequence of statements enclosed by the keywords 
THEN and END IF.  
  If the condition is TRUE, the statements get executed and if the condition is FALSE or NULL 
then the IF statement does nothing.  
SYNTAX: 
IF condition THEN S; 
      END IF; 
PROGRAM 
DECLARE 
   a number(2) :=10; 
BEGIN 
   a:=10; 
  -- check the boolean condition using if statement  
   IF( a <20 ) THEN 
      -- if condition is true then print the following   
      dbms_output.put_line('a is less than 20 ' ); 
   END IF; 
   dbms_output.put_line('value of a is : ' || a); 
END; 
/ 
OUTPUT 
a is less than 20 
value of a is : 10  
PL/SQL procedure successfully completed. 
IF-THEN-ELSIF STATEMENT 
DESCRIPTION  
  SANKETIKA POLYTECHNIC COLLEGE    
  The IF-THEN-ELSIF statement allows you to choose between several alternatives 
SYNTAX 
IF(boolean_expression 1)THEN  
   S1; -- Executes when the boolean expression 1 is true  
ELSIF( boolean_expression 2) THEN 
   S2;  -- Executes when the boolean expression 2 is true  
ELSIF( boolean_expression 3) THEN 
   S3; -- Executes when the boolean expression 3 is true  
ELSE  
   S4; -- executes when the none of the above condition is true  
END IF; 
PROGRAM 
DECLARE 
   a number(3) :=100; 
BEGIN 
   IF ( a =10 ) THEN 
      dbms_output.put_line('Value of a is 10' ); 
   ELSIF ( a =20 ) THEN 
      dbms_output.put_line('Value of a is 20' ); 
   ELSIF ( a =30 ) THEN 
      dbms_output.put_line('Value of a is 30' ); 
   ELSE 
       dbms_output.put_line('None of the values is matching'); 
   END IF; 
   dbms_output.put_line('Exact value of a is: '|| a );  
END; 
/ 
OUTPUT 
None of the values is matching 
Exact value of a is: 100  
PL/SQL procedure successfully completed.   
CASE STATEMENT 
DESCRIPTION 
  The CASE statement selects one sequence of statements to execute.  
SYNTAX 
CASE selector 
    WHEN 'value1' THEN S1; 
    WHEN 'value2' THEN S2; 
    WHEN 'value3' THEN S3; 
    ... 
    ELSE Sn;  -- default case 
END CASE;  
PROGRAM 
DECLARE 
   grade char(1) :='A'; 
BEGIN 
  SANKETIKA POLYTECHNIC COLLEGE    
   CASE grade 
      when 'A' then dbms_output.put_line('Excellent'); 
      when 'B' then dbms_output.put_line('Very good'); 
      when 'C' then dbms_output.put_line('Well done'); 
      when 'D' then dbms_output.put_line('You passed'); 
      when 'F' then dbms_output.put_line('Better try again'); 
      else dbms_output.put_line('No such grade'); 
   END CASE; 
END; 
/ 
OUTPUT 
Excellent  
PL/SQL procedure successfully completed.  
LOOP STATEMENTS 
DESCRIPTION 
  A loop statement allows us to execute a statement or group of statements multiple times. 
  PL/SQL provides the following types of loop to handle the looping requirements. 
  WHILE LOOP 
  FOR LOOP 
WHILE LOOP 
DESCRIPTION 
  A WHILE LOOP statement in PL/SQL programming language repeatedly executes a target 
statement as long as a given condition is true. 
SYNTAX 
WHILE condition LOOP 
sequence_of_statements 
END LOOP; 
PROGRAM 
DECLARE 
  a number(2) :=10; 
BEGIN 
  WHILE a <20 LOOP 
      dbms_output.put_line('value of a: ' || a); 
      a :=a +1; 
   END LOOP; 
END; 
/ 
  SANKETIKA POLYTECHNIC COLLEGE    
OUTPUT 
value of a: 10 
value of a: 11 
value of a: 12 
value of a: 13 
  value of a: 14 
value of a: 15 
value of a: 16 
value of a: 17 
value of a: 18 
value of a: 19  
  PL/SQL procedure successfully completed. 
FOR LOOP 
DESCRIPTION 
A FOR LOOP is a repetition control structure that allows you to efficiently write a loop that needs to 
execute a specific number of times. 
Syntax: 
FOR counter IN initial_value .. final_value LOOP 
   sequence_of_statements; 
END LOOP;  
PROGRAM  
DECLARE 
   a number(2) ; 
BEGIN 
   FOR a IN REVERSE 10 .. 20 LOOP 
      dbms_output.put_line('value of a: ' || a); 
   END LOOP; 
END; 
/ 
OUTPUT 
value of a: 20 
value of a: 19 
value of a: 18 
value of a: 17 
value of a: 16 
value of a: 15 
value of a: 14 
value of a: 13 
value of a: 12 
value of a: 11 
value of a: 10  
PL/SQL procedure successfully completed.  
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 20  EXPERIMENT-20 
DATE:  
AIM 
EXERCISE ON PL/SQL CURSORS 
DESCRIPTION 
  Oracle creates a memory area, known as context area, for processing an SQL statement, which 
contains  all  information  needed  for  processing  the  statement,  for  example,  number  of  rows 
processed etc. 
  A cursor is a pointer to this context area. PL/SQL controls the context area through a cursor. A 
cursor holds the rows (one or more) returned by a SQL statement. The set of rows the cursor holds 
is referred to as the active set. 
  You can name a cursor so that it could be referred to in a program to fetch and process the rows 
returned by the SQL statement, one at a time. There are two types of cursors: 
  Implicit cursors 
  Explicit cursors  
IMPLICIT CURSORS 
DESCRIPTION 
  Implicit cursors are automatically created by Oracle whenever an SQL statement is executed, when 
there is no explicit cursor for the statement.  
  Programmers cannot control the implicit cursors and the information in it. 
PROGRAM 
  DECLARE  
     total_rows number(2); 
  BEGIN 
     UPDATE customers 
     SET salary =salary +500; 
     IF sql%notfound THEN 
        dbms_output.put_line('no customers selected'); 
     ELSIF sql%found THEN 
        total_rows :=sql%rowcount; 
        dbms_output.put_line( total_rows || ' customers selected '); 
     END IF;  
  END; 
  / 
OUTPUT 
  6 customers selected 
  SANKETIKA POLYTECHNIC COLLEGE    
  PL/SQL procedure successfully completed.  
EXPLICIT CURSOR 
DESCRIPTION 
  Explicit cursors are programmer defined cursors for gaining more control over the context area.  
  An explicit cursor should be defined in the declaration section of the PL/SQL Block. It is created 
on a SELECT Statement which returns more than one row. 
SYNTAX 
CURSOR cursor_name IS select_statement; 
PROGRAM 
DECLARE 
   c_id customers.id%type; 
   c_name customers.name%type; 
   c_addr customers.address%type; 
   CURSOR c_customers is 
      SELECT id, name, address FROM customers; 
BEGIN 
   OPEN c_customers; 
   LOOP 
      FETCH c_customers into c_id, c_name, c_addr; 
      dbms_output.put_line(c_id || ' ' || c_name || ' ' || c_addr); 
      EXIT WHEN c_customers%notfound; 
   END LOOP; 
   CLOSE c_customers; 
END; 
/ 
OUTPUT 
1 Ramesh Ahmedabad  
2 Khilan Delhi  
3 kaushik Kota     
4 Chaitali Mumbai   
PL/SQL procedure successfully completed.      
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 21  EXPERIMENT-21 
DATE:  
AIM 
EXERCISE ON EXCEPTION HANDLING 
DESCRIPTION 
  An  error  condition  during  a  program  execution  is  called  an  exception  in  PL/SQL.  PL/SQL 
supports programmers to catch such conditions using EXCEPTION block in the program and an 
appropriate action is taken against the error condition.  
  There are two types of exceptions: 
  Systen-defined exceptions 
  User-defined exceptions  
SYNTAX  
DECLARE 
   <declarations section>
BEGIN 
   <executable command(s)>
EXCEPTION 
   <exception handling goes here >
   WHEN exception1 THEN  
       exception1-handling-statements  
   WHEN exception2  THEN  
      exception2-handling-statements  
   WHEN exception3 THEN  
      exception3-handling-statements 
   ........ 
   WHEN others THEN 
      exception3-handling-statements 
END; 
PROGRAM 
DECLARE 
   c_id customers.id%type :=&cc_id; 
   c_name  customers.name%type; 
   c_addr customers.address%type;  
   -- user defined exception 
   ex_invalid_id  EXCEPTION; 
BEGIN 
   IF c_id <=0 THEN 
      RAISE ex_invalid_id; 
   ELSE 
      SELECT  name, address INTO  c_name, c_addr 
  SANKETIKA POLYTECHNIC COLLEGE    
      FROM customers 
      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 must 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; 
/  
OUTPUT 
Enter value for cc_id: -6 (let's enter a value -6) 
old  2: c_id customers.id%type :=&cc_id; 
new  2: c_id customers.id%type :=-6; 
ID must be greater than zero!  
PL/SQL procedure successfully completed.             
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 22  EXPERIMENT-22 
DATE: 
AIM 
EXERCISE ON PROCEDURES 
DESCRIPTION 
  Procedures these subprograms do not return a value directly, mainly used to perform an action. 
  A procedure is created with the CREATE OR REPLACE PROCEDURE statement.  
SYNTAX 
CREATE [OR REPLACE] PROCEDURE procedure_name 
[(parameter_name [IN | OUT | IN OUT] type [, ...])] 
{IS | AS} 
BEGIN 
  <procedure_body >
END procedure_name;  
PROGRAM 
DECLARE 
   a number; 
   b number; 
   c number;  
PROCEDURE findMin(x IN number, y IN number, z OUT number) IS 
BEGIN 
   IF x <y THEN 
      z:=x; 
   ELSE 
      z:=y; 
   END IF; 
END;   
BEGIN 
   a:=23; 
   b:=45; 
   findMin(a, b, c); 
   dbms_output.put_line(' Minimum of (23, 45) : ' || c); 
END; 
/  
OUTPUT 
Minimum of (23, 45) : 23  
  SANKETIKA POLYTECHNIC COLLEGE    
PL/SQL procedure successfully completed.  
PROGRAM 
DECLARE 
   a number; 
PROCEDURE squareNum(x IN OUT number) IS 
BEGIN 
  x :=x * x; 
END;  
BEGIN 
   a:=23; 
   squareNum(a); 
   dbms_output.put_line(' Square of (23): ' || a); 
END; 
/  
OUTPUT 
Square of (23): 529  
PL/SQL procedure successfully completed.               
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 23  EXPERIMENT-23 
DATE:  
AIM 
EXERCISE ON FUNCTIONS 
DESCRIPTION 
  A  function  is  a  named  PL/SQL  Block  which  is similar to  a  procedure. The  major  difference 
between a procedure and a function is, a function must always return a value, but a procedure 
may or may not return a value. 
  A standalone function is created using the CREATE FUNCTION statement.   
SYNTAX  
CREATE [OR REPLACE] FUNCTION function_name 
[(parameter_name [IN | OUT | IN OUT] type [, ...])] 
RETURN return_datatype 
{IS | AS} 
BEGIN 
   <function_body >
END [function_name];  
PROGRAM 
DECLARE 
   a number; 
   b number; 
   c number; 
FUNCTION findMax(x IN number, y IN number)  
RETURN number 
IS 
    z number; 
BEGIN 
   IF x >y THEN 
      z:=x; 
   ELSE 
      Z:=y; 
   END IF;  
   RETURN z; 
END;  
BEGIN 
   a:=23; 
   b:=45;  
   c :=findMax(a, b); 
  SANKETIKA POLYTECHNIC COLLEGE    
   dbms_output.put_line(' Maximum of (23,45): ' || c); 
END; 
/  
OUTPUT 
Maximum of (23,45): 78  
PL/SQL procedure successfully completed.                      
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 24  EXPERIMENT-24 
DATE:  
AIM 
EXERCISE ON RECURSION 
DESCRIPTION 
  A program or subprogram may call another subprogram.  
  When a subprogram calls itself, it is referred to as a recursive call and the process is known as 
recursion. 
PROGRAM 
DECLARE 
   num number; 
   factorial number;  
FUNCTION fact(x number) 
RETURN number  
IS 
   f number; 
BEGIN 
   IF x=0 THEN 
      f :=1; 
   ELSE 
      f :=x * fact(x-1); 
   END IF; 
RETURN f; 
END;  
BEGIN 
   num:=6; 
   factorial :=fact(num); 
   dbms_output.put_line(' Factorial '|| num || ' is ' || factorial); 
END; 
/ 
OUTPUT 
Factorial 6 is 720   
PL/SQL procedure successfully completed.    
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 25  EXPERIMENT-25 
DATE: 
AIM 
EXERCISE ON TRIGGERS 
DESCRIPTION 
Triggers  are  stored  programs,  which  are  automatically  executed  or  fired  when  some  events  occur. 
Triggers are in fact, written to be executed in response to any of the following events: 
  A database manipulation (DML) statement (DELETE, INSERT, or UPDATE). 
  A database definition (DDL) statement (CREATE, ALTER, or DROP). 
  A database operation (SERVERERROR, LOGON, LOGOFF, STARTUP, or SHUTDOWN). 
Triggers could be defined on the table, view, schema, or database with which the event is associated 
SYNTAX 
CREATE [OR REPLACE ] TRIGGER trigger_name  
{BEFORE | AFTER | INSTEAD OF }  
{INSERT [OR] | UPDATE [OR] | DELETE}  
[OF col_name]  
ON table_name  
[REFERENCING OLD AS o NEW AS n]  
[FOR EACH ROW]  
WHEN (condition)   
DECLARE 
   Declaration-statements 
BEGIN  
   Executable-statements 
EXCEPTION 
   Exception-handling-statements 
END; 
PROGRAM 
CREATE OR REPLACE TRIGGER display_salary_changes 
BEFORE DELETE OR INSERT OR UPDATE ON customers 
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; 
  SANKETIKA POLYTECHNIC COLLEGE    
/ 
OUTPUT 
Trigger created.  
TRIGGERING A TRIGGER 
PROGRAM 
INSERT statement which will create a new record in the table: 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) 
VALUES (7, 'Kriti', 22, 'HP', 7500.00 ); 
OUTPUT 
Old salary: 
New salary: 7500 
Salary difference: 
UPDATE statement which will update an existing record in the table: 
UPDATE customers 
SET salary =salary +500 
WHERE id =2; 
OUTPUT 
Old salary: 1500 
New salary: 2000 
Salary difference: 500           
  SANKETIKA POLYTECHNIC COLLEGE    
SNO: 26  EXPERIMENT-26 
DATE:  
AIM 
EXERCISE ON PACKAGES 
DESCRIPTION 
PL/SQL  packages  are  schema  objects  that  groups  logically  related  PL/SQL  types,  variables  and 
subprograms. 
A package will have two mandatory parts: 
  Package specification 
  Package body or definition 
SYNATX 
CREATE [OR REPLACE] PROCEDURE proc_name [list of parameters]  
IS     
   Declaration section  
BEGIN     
   Execution section  
EXCEPTION     
  Exception section  
END;  
PACKAGE SPECIFICATION 
PROGRAM 
CREATE PACKAGE cust_sal AS 
   PROCEDURE find_sal(c_id customers.id%type); 
END cust_sal; 
/ 
OUTPUT 
Package created. 
PACKAGE BODY 
PROGRAM 
CREATE OR REPLACE PACKAGE BODY cust_sal AS 
   PROCEDURE find_sal(c_id customers.id%TYPE) IS 
   c_sal customers.salary%TYPE; 
   BEGIN 
      SELECT salary INTO c_sal 
  SANKETIKA POLYTECHNIC COLLEGE    
      FROM customers 
      WHERE id =c_id; 
      dbms_output.put_line('Salary: '|| c_sal); 
   END find_sal; 
END cust_sal; 
/ 
OUTPUT 
Package body created. 
USING PACKAGE ELEMENTS 
DECLARE 
   code customers.id%type :=&cc_id; 
BEGIN 
   cust_sal.find_sal(code); 
END; 
/ 
OUTPUT 
Enter value for cc_id: 1 
Salary: 3000  
PL/SQL procedure successfully completed.