Sunteți pe pagina 1din 15

COLLEGE OF TECHNOLOGY AND ENGINEERING, UDAIPUR

Name: Arvind Singh Chouhan Class: B.Tech. IV Year (I.T.)


Subject: Parallel and Distributed Database

INDEX

S.No. Experiment Date Signature Remarks


1. Write a program to create a function
for employee table and find average 16-04-2020
salary.

2. Write a program to call a function with


arguments to calculate:
a). Area of circle 17-04-2020
b). Lateral surface area of cone
c). Area of cube
d). Volume of cylinder

3. Write a program to create or replace a 18-04-2020


function.

4. Write a program to create a function


to calculate factorial of a number 18-04-2020
using recursion.

5. Write a program to create a 23-04-2020


procedure.

6. Write a program to update the


employee salary by a factor of 2 and 24-04-2020
print the salary.

7. Write a program to implement multiple 25-04-2020


return statements.

8. Write a program to implement 25-04-2020


CONCAT() function.
COLLEGE OF TECHNOLOGY AND ENGINEERING, UDAIPUR

Name: Arvind Singh Chouhan Class: B.Tech. IV Year (I.T.)


Subject: Parallel and Distributed Database

Date: 16-04-2020
PROGRAM No. 1
AIM: Write a program
to create a function for
employee table and
find average salary.

Code:
Query for creating the
table:
CREATE TABLE
Employee(ID
Varchar(100), FirstName
varchar(100), Lastname
varchar(100), startdate
date, enddate date,
salary integer, city
varchar(100), description
varchar(100));

Query for inserting values


into the table:
INSERT INTO Employee
VALUES('01', 'Aditya',
'Pradhan',
TO_DATE('08/01/2020',
'MM/DD/YYYY'),
TO_DATE('07/31/2020',
'MM/DD/YYYY'), 12400,
'Bangalore', 'TBA');

INSERT INTO Employee


VALUES('02', 'Shreyas',
'Jain',
TO_DATE('08/01/2020',
'MM/DD/YYYY'),
TO_DATE('07/24/2019',
'MM/DD/YYYY'), 50000,
'Jaipur', 'AIT');

INSERT INTO Employee


COLLEGE OF TECHNOLOGY AND ENGINEERING, UDAIPUR

Name: Arvind Singh Chouhan Class: B.Tech. IV Year (I.T.)


Subject: Parallel and Distributed Database

VALUES('03', 'Avi', 'Goyal', v


TO_DATE('08/01/2020', 'MM/DD/YYYY'),
TO_DATE('07/24/2019', 'MM/DD/YYYY'),
g
200000, 'Bangalore',
'Goldman Sachs');
s
Query for creating function:
CREATE FUNCTION avg_sal() a
RETURNS integer AS $avgsal$
declare l
a
v $
g
s
a
l L

i A
n
t N
e
g G
e
r U
;
A
B
E G
G
I E
N
SELECT avg(salary)
into avgsal FROM
EMPLOYEE; RETURN p
avgsal;
END; l
$
p
a
Date: 16-04-2020

SELECT * FROM EMPLOYEE;


Query for calculating the average salary:
SELECT avg_sal();

Output:
COLLEGE OF TECHNOLOGY AND ENGINEERING, UDAIPUR

Name: Arvind Singh Chouhan Class: B.Tech. IV Year (I.T.)


Subject: Parallel and Distributed Database

Date: 17-04-2020
PROGRAM No. 2

AIM: Write a program to call a function with arguments to calculate:


a). Area of circle
b). Lateral surface area of cone
c). Area of cube
d). Volume of cylinder

Code:
a). Query for calculating the area of circle:
CREATE FUNCTION circle_area(radius INTEGER) RETURNS
INTEGER AS $$
BEGIN
RETURN 3.14*POWER(radius, 2);
END;
$$ LANGUAGE PLPGSQL;

Query for calling circle_area function:


SELECT circle_area(4);

b). Query for calculating the lateral surface area of cone :


CREATE FUNCTION cone_area(radius INTEGER, lat INTEGER) RETURNS
INTEGER AS $$
BEGIN
RETURN 3.14*radius*lat;
END;
$$ LANGUAGE PLPGSQL;

Query for calling cone_area function:


SELECT cone_area(5, 3);

c). Query for calculating the area of cube:


COLLEGE OF TECHNOLOGY AND ENGINEERING, UDAIPUR

Name: Arvind Singh Chouhan Class: B.Tech. IV Year (I.T.)


Subject: Parallel and Distributed Database

Date: 17-04-2020

CREATE FUNCTION cube_area(side INTEGER) RETURNS INTEGER


AS $$ BEGIN RETURN 6*POWER(side, 2); END; $$ LANGUAGE
PLPGSQL;

Query for calling cube_area function:


SELECT cube_area(3);

d). Query for calculating the volume of cylinder:


CREATE FUNCTION cylinder_vol(rad INTEGER, height INTEGER)
RETURNS INTEGER AS $$ BEGIN RETURN 3.14*POWER(rad,
2)*height; END; $$ LANGUAGE PLPGSQL;

Query for calling cylinder_vol function:


SELECT cylinder_vol(6, 11);

Output:
Date: 17-04-2020
Date: 18-04-2020
PROGRAM No. 3

AIM: Write a program to create or replace a function.

Code:
CREATE OR REPLACE FUNCTION func()
RETURNS void AS
$$
BEGIN
RAISE NOTICE 'This is function func()';
END;
$$ language plpgsql;

Output:

PROGRAM No. 4 Date: 18-04-2020

AIM: Write a program to create a function to calculate factorial of a


number using recursion.

Code:
CREATE FUNCTION factorial(num INTEGER)
RETURNS INTEGER AS $$
BEGIN
if num = 1
then RETURN 1;
else RETURN (num*factorial(num-1));
end if;
END;
$$ language plpgsql;

Output:
Date: 23-04-2020
PROGRAM No. 5

AIM: Write a program to create a procedure.

Code:
CREATE OR REPLACE FUNCTION proc()
RETURNS void AS $$
BEGIN
RAISE NOTICE 'proc() called successfully!';
END;
$$ language plpgsql;

Output:

Date: 24-04-2020

PROGRAM No. 6

AIM: Write a program to update the employee salary by a factor of 2 and


print the salary.

Code:
Query for creating the table:
CREATE TABLE Employee(ID Varchar(100), First_name varchar(100),
Last_name varchar(100), start_date date, end_date date, salary integer,
city varchar(100), description varchar(100));

Query for inserting values into the table:


INSERT INTO Employee VALUES('01', 'Aditya', 'Pradhan', TO_DATE('08/01/2020',
'MM/DD/YYYY'), TO_DATE('07/31/2020', 'MM/DD/YYYY'), 12400, 'Bangalore',
'TBA');

INSERT INTO Employee VALUES('02', 'Shreyas', 'Jain', TO_DATE('08/01/2020',


'MM/DD/YYYY'), TO_DATE('07/24/2019', 'MM/DD/YYYY'), 50000, 'Jaipur', 'AIT');
INSERT INTO Employee VALUES('03', 'Avi', 'Goyal', TO_DATE('08/01/2020',
'MM/DD/YYYY'), TO_DATE('07/24/2019', 'MM/DD/YYYY'), 200000, 'Bangalore',
'Goldman Sachs');

Query for creating function:


CREATE OR REPLACE FUNCTION doubleTheSalary()
RETURNS void AS $$
BEGIN
UPDATE Employee SET salary = salary * 2;
END;
$$ language plpgsql;

Query for calling the function:


SELECT doubleTheSalary();

Output:
Date: 24-04-2020

PROGRAM No. 7 Date: 25-04-2020

AIM: Write a program to implement multiple return statements.

Code:
CREATE OR REPLACE FUNCTION
EmployeeSalaryInfo(empFirstName VARCHAR, empLastName
VARCHAR) RETURNS VARCHAR AS $$
DECLARE currentEmpSalary INTEGER;
maxEmpSalary INTEGER;
fullPercentage INTEGER;
BEGIN
SELECT salary INTO currentEmpSalary FROM Employee WHERE
first_name = empFirstName AND last_name = empLastName;
SELECT MAX(salary) INTO maxEmpSalary FROM Employee;
fullPercentage = (currentEmpSalary*100/maxEmpSalary);
IF fullPercentage = 100 THEN RETURN 'Full';
ELSIF fullPercentage > 80 THEN RETURN 'Some Room';
ELSIF fullPercentage > 60 THEN RETURN 'More Room';
ELSIF fullPercentage > 0 THEN RETURN 'Lots of Room';
ELSE RETURN 'Empty';
END IF;
END;
$$ LANGUAGE plpgsql;
Output:
Date: 25-04-2020
PROGRAM No. 8

AIM: Write a program to implement CONCAT() function.

Code:
Query for creating the table:
CREATE TABLE Employee(ID Varchar(100), First_name varchar(100),
Last_name varchar(100), start_date date, end_date date, salary integer,
city varchar(100), description varchar(100));

Query for inserting values into the table:


INSERT INTO Employee VALUES('01', 'Aditya', 'Pradhan', TO_DATE('08/01/2020',
'MM/DD/YYYY'), TO_DATE('07/31/2020', 'MM/DD/YYYY'), 12400, 'Bangalore',
'TBA');

INSERT INTO Employee VALUES('02', 'Shreyas', 'Jain', TO_DATE('08/01/2020',


'MM/DD/YYYY'), TO_DATE('07/24/2019', 'MM/DD/YYYY'), 50000, 'Jaipur', 'AIT');

INSERT INTO Employee VALUES('03', 'Avi', 'Goyal', TO_DATE('08/01/2020',


'MM/DD/YYYY'), TO_DATE('07/24/2019', 'MM/DD/YYYY'), 200000, 'Bangalore',
'Goldman Sachs');

Query for creating function:


CREATE OR REPLACE FUNCTION CONCATENATE(empFirstName
VARCHAR, empLastName VARCHAR) RETURNS VARCHAR AS $$
BEGIN
RETURN empFirstName||empLastName;
END;
$$ LANGUAGE plpgsql;

Query for calling the function:


SELECT CONCATENATE(first_name, last_name) FROM Employee;

Output:
Date: 25-04-2020

S-ar putea să vă placă și