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

DATABASE MANAGEMENT SYSTEMS LAB

GODAVARI INSTITUTE OF ENGINEERING ANDTECHNOLOGY

Department of COMPUTER SCIENCE AND ENGINEERING

Name: PinNo:

CERTIFICATE

Certified that this is the bonafide record of practical work done by

Mr./Ms.
a Student of with PinNo:
in the Laboratory during the Academic year

No. of Experiments Conducted: No. of Experiments attended:

Faculty In-charge Head of the Department

Submitted for Practical Examination Conducted on

Examiner–1 Examiner – 2
DATABASE MANAGEMENT SYSTEMS LAB

INDEX
Exp
Date Name of the Experiment Page Signature Marks
No
No.
06/11/2021 Creation, altering and dropping of tables and
1 inserting rows into a table (use constraints while
creating tables) examples using select command.
13/11/2021 Queries (along with sub queries) using any, all,
2 in, exists, notexists, union, interset, constraints.
20/11/2021 Queries using aggregate functions (count, sum,
3 avg, max and min), group by, having and creation
and dropping of views.
27/11/2021 Queries using conversion functions (to_char,
4 to_number and to_date), string functions
(concatenation, lpad, rpad, ltrim, rtrim, lower,
upper, initcap, length, substr and instr), date
functions (sysdate, next_day, add_months,
last_day, months_between, least, greatest, trunc,
round, to_char, to_date)
11/12/2021 Creation of simple pl/sql program which includes
5 declaration section, executable section and
exception –handling section
08/01/2022 Insert data into student table and use commit,
6 rollback and savepoint in pl/sql block.

29/01/2022 Develop a program that includes the features


7 nested if, case and case expression. The program
can be extended using the nullif and coalesce
functions.
05/02/2022 Program development using while loops,
8 numeric for loops, nested loops using error
handling, built –in exceptions, use defined
exceptions, raise- application error.
05/02/2022 Programs development using creation of
9 procedures, passing parameters in and out of
procedures.
12/02/2022 Program development using creation of stored
10 functions, invoke functions in sql statements and
write complex functions.
12/02/2022 Program development using creation of package
11 specification, package bodies, private objects,
package variables and cursors and calling stored
packages.
19/02/2022 Develop programs using features parameters in a
12 cursor, for update cursor, where current of clause
and cursor variables.

19/02/2022 Develop programs using before and after


13 triggers, row and statement triggers and instead
of triggers.
DATABASE MANAGEMENT SYSTEMS LAB
Database Management Systems Lab DATE: / /

WEEK-1 EXPERIMENT:Creation, altering and dropping of tables and inserting


rows into a table (use constraints while creating tables) examples using SELECT
command.

AIM: Aim of the experiment is to CREATE, ALTER and DROP the tables and INSERT rows
into a table.
CREATE SYNTAX:
CREATE TABLE TABLE_NAME (column1datatype,column2 datatype,column3 datatype,....);
CREATE EXAMPLE:
CREATE TABLE STUDENTS(pin int not null,lastname varchar(25),firstname varchar(25),
phone_no int not null, email varchar(25) not null);
DROP SYNTAX:
DROP TABLE TABLE_NAME;
DROP EXAMPLE:
DROP TABLE STUDENTS;
CREATE TABLE STUDENTS(pin int not null, lastname varchar(25), firstname varchar(25),
phone_no int not null, email varchar(25) not null);
INSERT SYNTAX:
INSERT INTO TABLE_NAME VALUES (column1 data,column2 data,.....columnN data);
INSERT EXAMPLE:
INSERT INTO STUDENTS VALUES (1001,'xyz','abc',12346789,'[email protected]');
INSERT INTO STUDENTS VALUES (1002,'yxz','bac',21346789,'[email protected]');
ALTER SYNTAX:
ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATATYPE;
ALTER EXAMPLE:
ALTER TABLE STUDENTS ADD GRADE VARCHAR(20);
SELECT SYNTAX:
SELECT * FROM table_name;
SELECT EXAMPLE:
SELECT * FROM STUDENTS;
Every time you can check the data in the database table using the querySELECT * FROM

TABLE_NAME; and the structure/description of the table can be seen using DESC

TABLE_NAME;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-2 EXPERIMENTS:QUERIES (ALONG WITH SUB QUERIES) USING ANY, ALL,


IN, EXISTS, NOT-EXISTS, UNION, INTERSET, CONSTRAINTS.

AIM: Aim of the experiment is to illustrate ANY, ALL, IN, EXISTS, NOTEXISTS, UNION,
INTERSET, Constraints along with Sub-Queries
DESCRIPTION OF THE OPERATORS:
ALL: The ALL operator is used to compare a value to all values in another value set.
AND: The AND operator allows the existence of multiple conditions in ansql statement's where
clause.
ANY: The ANY operator is used to compare a value to any applicable value in the list as per the
condition.
EXISTS:The EXISTS operator is used to search for the presence of a row in a specified table
that meets a certain criterion.
IN: The IN operator is used to compare a value to a list of literal values that have been specified.
UNION: The UNION is a binary set operator in DBMS. It is used to combine the result set of
two select queries.
INTERSECT:INTERSECT is a binary set operator in DBMS. The intersection operation
between two selections returns only the common data sets or rows between them.
COONSTARINTS:CONSTRAINTS enforce limits to the data or type of data that can
beinserted/updated/deleted from a table.
EMPLOYEES TABLE:
CREATE TABLEEMPLOYEES(idint,namevarchar(100),ageint,address varchar(100),basic
int,primary key(id));
Insertion of rows/data in to the created table is as follows:
INSERT INTO EMPLOYEES VALUES (1,'Rakesh',30,'Eluru',15658.00);
INSERT INTO EMPLOYEES VALUES (2,'Krishna',45,'Eluru ',35480.00);
INSERT INTO EMPLOYEES VALUES (3,'Kaushik',23,'Kotak ',8000.00);
INSERT INTO EMPLOYEES VALUES (4,'Chandu',30,'Amalapuram ',33568.00);
INSERT INTO EMPLOYEES VALUES (5,'Harish',27,'Kakinada',48500.00);
INSERT INTO EMPLOYEES VALUES (6,'Satya',22,'Murari',42500.00);
INSERT INTO EMPLOYEES VALUES (7,'Murali',24,'Rajamahendravaram',45845.00);
INSERT INTO EMPLOYEES VALUES (8,'Mastan',48,'Indore',15584.00);

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

CUSTOMERS TABLE:
CREATE TABLE CUSTOMERS(ID INT,NAME VARCHAR(100),AGE INT,ADDRESS
VARCHAR(100),SALARY INT);
Insertion of rows/data in to the created table is as follows:
INSERT INTO CUSTOMERS VALUES (1,'Ramesh',32,'Ahmedabad',2000.00);
INSERT INTO CUSTOMERS VALUES (2,'Khilan',25,'Delhi ',1500.00);
INSERT INTO CUSTOMERS VALUES (3,'kaushik',23,'Kota ',2000.00);
INSERT INTO CUSTOMERS VALUES (4,'Chaitali',25,'Mumbai ',6500.00);
INSERT INTO CUSTOMERS VALUES (5,'Hardik',27,'Bhopal',8500.00);
INSERT INTO CUSTOMERS VALUES (6,'Komal',22,'MP',4500.00);
INSERT INTO CUSTOMERS VALUES (7,'Muffy',24,'Indore',10000.00);
INSERT INTO CUSTOMERS VALUES (8,'Mastan',28,'Indore',20000.00);

I. AT FIRST LET US ILLUSTRATE SAMPLE SUB-QUERIES


Q:DISPLAY ALL THE DETAILS OF THE EMPLOYEES WHOSE BASIC IS
GREATER THAN HARISH'S BASIC
A:SELECT * FROM EMPLOYEES
WHERE BASIC>=(SELECT BASIC FROM EMPLOYEES WHERE NAME='HARISH');

Q:DISPLAY THE NAMES OF THE EMPLOYEES WHO ARE NOT FROM HARISH'S
WORK PLACE;
A:SELECT NAME FROM EMPLOYEES
WHERE ADDRESS! = (SELECT ADDRESS FROM EMPLOYEES WHERE NAME =
'Harish');

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q:DISPLAY ALL THE DETAILS OF THE EMPLOYEES WHOSE SALARY IS


GREATER THAN AVERAGE SALARY OF ALL EMPLOYEES
A:SELECT * FROM EMPLOYEES
sWHERE BASIC> (SELECT AVG(BASIC) FROM EMPLOYEES);

II. ALL:
Q:DISPLAY ALL THE DETAILS OF THE EMPLOYEES WHERE AGE OF AN
EMPLOYEE IN EMPLOYEE TABLE IS GREATER THAN AGE OF ALL
CUSTOMERS IN CUSTOMERS TABLE
A:SELECT * FROM EMPLOYEES
WHERE AGE > ALL (SELECT AGE FROM CUSTOMERS);

Q:DISPLAY ALL THE DETAILS OF THE EMPLOYEES WHERE AGE OF AN


EMPLOYEE IN EMPLOYEE TABLE IS GREATER THAN AGE OF ALL
CUSTOMERS IN CUSTOMERS TABLE AND BASIC OF AN EMPLOYEE SHOULD
BE GREATER THAN 50000;
A:SELECT * FROM EMPLOYEES
WHERE BASIC > 50000 AND
AGE > ALL (SELECT AGE FROM CUSTOMERS);

Q:DISPLAY THE NAMES OF THE EMPLOYEES WHOSE AGE IS GREATER THAN


25 AND BASIC IS GREATER THAN 25000;
A:SELECT * FROM EMPLOYEES
WHEREBASIC >25000 AND AGE>25;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

III. ANY:
Q:DISPLAY ALL THE DETAILS OF THE EMPLOYEES WHERE AGE OF AN
EMPLOYEE IN EMPLOYEE TABLE IS GREATER THAN AGE OF ANY
CUSTOMERS IN CUSTOMERS TABLE AND SALARY OF AN CUSTOMERS
SHOULD BE GREATER THAN 5000;
A:SELECT * FROM EMPLOYEES
WHERE AGE > ANY (SELECT AGE FROM CUSTOMERS WHERE SALARY>5000);

IV. EXISTS:
Q:CHECK WHETHER THE AGE OF AN EMPLOYEE IN EMPLOYEE TABLE IS
PRESENT IN THE AGE COLUMN OF CUSTOMERS TABLE OR NOT, IF YES THEN
DISPLAY THAT EMPLOYEE AGE DETAILS.
A:SELECT AGE FROM EMPLOYEES
WHERE NOT EXISTS (SELECT AGE FROM CUSTOMERS);

NO ROWS SELECTED.

Q:CHECK WHETHER THE AGE OF AN EMPLOYEE IN EMPLOYEE TABLE IS


PRESENT IN THE AGE COLUMN OF CUSTOMERS TABLE OR NOT, IF YES THEN
DISPLAY THAT EMPLOYEE AGE DETAILS WHERE SALARY OF A CUSTOMER IS
GREATER THAN 6500.
A:SELECT AGE FROM CUSTOMERS
WHERE EXISTS (SELECT AGE FROM CUSTOMERS WHERE SALARY > 6500);

V. IN:

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q:DISPLAY ALL THE DETAILS OF THE EMPLOYEES WHOSE AGE IS IN


BETWEEN 25 AND 27
A:SELECT * FROM EMPLOYEES WHERE AGE IN ( 25,27 );

Note that NOT operator can be used as negation to the existing operator like EXISTS, IN,
LIKE, NULL.

VI. UNION:
SQL> select salary from customers union select salary from employees;
SALARY
----------
1500
2000
4500
6500
8000
8500
10000
15584
15658
20000
33568

SALARY
----------
35480
42500
45845
48500

15 rows selected.

VII. INTERSECTION
SQL> select address from customers intersect select address from employees;

ADDRESS
-------------------------
Indore

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-3 EXPERIMENTS:QUERIES USING AGGREGATE FUNCTIONS (COUNT, SUM,


AVG, MAX AND MIN), GROUP BY, HAVING AND CREATION AND DROPPING OF
VIEWS.

AIM: Aim of the experiment is to illustrate the Aggregate functions -COUNT, SUM, AVG,
MAX and MIN, GROUP BY, HAVING and Creation and dropping of Views.

CUSTOMERS TABLE :
CREATE TABLE CUSTOMER_S(ID INT,NAME VARCHAR(100),AGE INT,ADDRESS
VARCHAR(100),SALARY INT);
INSERT INTO CUSTOMER_S VALUES (1,'Ramesh',32,'Ahmedabad',2000.00);
INSERT INTO CUSTOMER_S VALUES (2,'Khilan',25,'Delhi ',1500.00);
INSERT INTO CUSTOMER_S VALUES (3,'kaushik',23,'Kota ',2000.00);
INSERT INTO CUSTOMER_S VALUES (4,'Chaitali',25,'Mumbai ',6500.00);
INSERT INTO CUSTOMER_S VALUES (5,'Hardik',27,'Bhopal',8500.00);
INSERT INTO CUSTOMER_S VALUES (6,'Komal',22,'MP',4500.00);
INSERT INTO CUSTOMER_S VALUES (7,'Muffy',24,'Indore',10000.00);
INSERT INTO CUSTOMER_S VALUES (8,'Mastan',28,'Indore',20000.00);

Every time you can check the data in the database table using the query SELECT * FROM
TABLE_NAME; i.e., SELECT * FROM CUSTOMER_S VALUES

Q: DISPLAY ALL THE DETAILS OF THE PERSON WHO IS IS FROM Bhopal.


A: SELECT * FROM CUSTOMER_S WHERE ADDRESS='BHOPAL';

NO ROWS SELECTED.

[NOTE: THAT SQL IS NOT CASE-SENSITIVE, BUT THE DATA IS CASE-SENSITIVE


FOR THAT REASON THE ABOVE QUERY WONT WORK.]
A: SELECT * FROM CUSTOMER_S WHERE ADDRESS='Bhopal';

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q: DISPLAY NAMES OF THE CUSTOMER_S WHO ARE FROM AHMEDABAD.


A: SELECT NAME FROM CUSTOMER_S WHERE ADDRESS ='Ahmedabad';

Q: DISPLAY ALL THE DETAILS OF THE CUSTOMERS WHOSE SALARY IS


GREATER THAN 2000
A: SELECT * FROM CUSTOMER_S WHERE SALARY>2000;

Q: DISPLAY ALL THE DETAILS OF THE CUSTOMER_S WHOSE SALARY IS LESS


THAN 2000
A: SELECT * FROM CUSTOMER_S WHERE SALARY<2000;

Q: DISPLAY ALL THE DETAILS OF THE CUSTOMER_S WHOSE SALARY IS NOT


EQUAL TO 2000
A: SELECT * FROM CUSTOMER_S WHERE SALARY!=2000;

Q: DISPLAY MINIMUM SALARY FROM CUSTOMER_S TABLE


A: SELECT MIN(SALARY) FROM CUSTOMER_S;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q: DISPLAY MAXIMUM SALARY FROM CUSTOMER_S TABLE


A: SELECT MAX(SALARY) FROM CUSTOMER_S;

Q: DISPLAY AVERAGE SALARY FROM CUSTOMER_S TABLE


A: SELECT AVG(SALARY) FROM CUSTOMER_S;

Q: DISPLAY ALL THE DETAILS OF THE CUSTOMER_S WHOSE SALARY IS


MINIMUM.
A: SELECT * FROM CUSTOMER_S WHERE SALARY = (SELECT MIN(SALARY) FROM
CUSTOMERS);

A: SELECT * FROM CUSTOMERS WHERE SALARY IN (SELECT MIN(SALARY) FROM


CUSTOMER_S);

Q: DISPLAY ALL THE DETAILS OF THE CUSTOMER_S WHOSE SALARY IS


GREATER THAN AVERAGE SALARY AMONG ALL.
A: SELECT * FROM CUSTOMER_S WHERE SALARY > (SELECT AVG(SALARY) FROM
CUSTOMER_S);

Q: DISPLAY THE TOTAL SALARY FROM THE CUSTOMER_S TABLE


A: SELECT SUM(SALARY) FROM CUSTOMER_S;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q: DISPLAY THE NUMBER OF ROWS IN THE CUSTOMER_S TABLE


A: SELECT COUNT(*) FROM CUSTOMER_S;

Q: DISPLAY THE TOTAL SALARY OF THE CUSTOMER_S ADDRESS WISE


A: SELECT ADDRESS,SUM(SALARY) FROM CUSTOMER_S GROUP BY ADDRESS;

Q: DISPLAY THE NAMES OF THE CUSTOMER_S IN DESCENDING ORDER


A: SELECT NAME FROM CUSTOMER_S ORDER BY NAME DESC;

A: SELECT NAME FROM CUSTOMER_S ORDER BY NAME;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

CREATION AND DROPPING OF VIEWS.


Creation of view Syntax :
CREATE VIEW view_name AS
SELECT column1, column2,…
FROM table_name
WHERE condition;
Q :CREATE A VIEW THAT SHOWS ALL CUSTOMERS WHOSE SALARY IS
ABOVE 5000
A : CREATE VIEW VIEW1 AS
SELECT ID,NAME,SALARY
FROM CUSTOMER_S
WHERE salary>5000;
SELECT * FROM VIEW1;

Dropping of view Syntax :


DROP VIEW view_name;

Q :DROPS THE VIEW1 VIEW OF CUSTOMER_S TABLE


A : DROP VIEW VIEW;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-4 EXPERIMENTS: QUERIES USING CONVERSION FUNCTIONS (TO_CHAR,


TO_NUMBER AND TO_DATE), STRING FUNCTIONS (CONCATENATION, LPAD,
RPAD, LTRIM, RTRIM, LOWER, UPPER, INITCAP, LENGTH, SUBSTR AND INSTR),
DATE FUNCTIONS (SYSDATE, NEXT_DAY, ADD_MONTHS, LAST_DAY,
MONTHS_BETWEEN, LEAST, GREATEST, TRUNC, ROUND, TO_CHAR, TO_DATE)

AIM:AIMOF THE EXPERIMENT IS TO ILLUSTRATE CHARACTER


FUNCTIONS, STRING FUNCTIONS AND DATE FUNCTIONS.

Q:DISPLAY SYSTEM DATE IN THE FOLLOWING FORMAT FRIDAY


THE 20TH OF JULY 2018 AT 11:00:00
A: SELECT TO_CHAR(SYSDATE,'FMDAY "THE" DDTH "OF" FMMONTH,
YYYY, "AT" HH24:MI:SS')FROM DUAL;

Q: DISPLAY SYSTEM DATE IN THE FORMAT 20THJULY 2018


A: SELECT TO_CHAR (SYSDATE,'ddthFMMonth, YYYY')FROM DUAL;

Q:DISPLAY SYSTEM IN THE FORMAT 20/07/2018


A: SELECT TO_CHAR (SYSDATE,'dd/month/YYYY') FROM DUAL;

Q: CONVERT 15 TO 15000 WITHOUT USING ANY ARTHIMATIC


OPERATORS
A: SELECT TO_CHAR (15,'999V9999') FROM DUAL;

Q: DISPLAY NUMERIC FORM OF THE DATE WHEN CHARACTER


DATE AS AN INPUT
A: SELECT TO_DATE(‘JULY 20 2018','MONTH DD,YY') FROM DUAL;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q: WRITE A QUERY TO CONVERT UPPER CASE LETTERS TO


LOWER CASE.
EX: DBMS TO DBMS.
A: SELECT LOWER('DATABASE MANAGEMENT SYSTEMS') FROM
DUAL;

Q: WRITE A QUERY TO CONVERT LOWER CASE LETTERS TO


UPPER CASE.
A: SELECT UPPER('database management systems') FROM DUAL;

Q: WRITE A QUERY TO CONCATENATE TWO STRINGS


A: SELECT CONCAT('DATABASE','MANAGEMENT') FROM DUAL;

Q: WRITE A QUERY TO CONCATENATE THREE STRINGS


A:SELECTCONCAT(CONCAT('DATABASE','MANAGEMENT'),'SYSTEMS')
FROM DUAL;

Q: WRITE A QUERY TO CONCATENATE ‘N’ STRINGS


A: SELECT CONCAT(CONCAT(CONCAT('A', 'B'),'C'),’D’)FROM DUAL;

Q: IDENTIFY THE NO. OF CONCAT COMMANDS USED TO CONCATENATE ‘N’


STRINGS.
A:FROM THE ABOVE SELECT COMMANDS CONCATENATION OF TWO STRINGS
NEED 1 CONCAT COMMAND, CONCATENATION OF THREE STRINGS NEED 2
CONCAT COMMANDS, CONCATENATION OF FOUR STRINGS NEED 3 CONCAT
COMMANDS, LIKE WISE CONCATENATION OF ‘N’ STRINGS NEEDS ‘N-1’ CONCAT
COMMANDS.

Q: WRITE A QUERY TO CONVERT STARTING LETTER OF THE


WORD IN A SENTENCE TO UPPER CASE

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

A: SELECT INITCAP('database management systems') FROM DUAL;

Q: WRITE A SQL QUERY TO FIND THE LENGTH OF THE GIVEN


STRING AND IDENTIFY WHETHER THE SPACES ARE BEING
COUNTED OR NOT.
A: SELECT LENGTH('databasemanagementsystems') FROM DUAL;

A: SELECT LENGTH('database management systems') FROM DUAL;

Q: WRITE A SQL QUERY TO ILLUSTRATE INSTR


A: SELECT INSTR('DATABASE MANAGEMENT SYSTEMS','A') FROM
DUAL;

Q: WRITE A SQL QUERY TO ILLUSTRATE SUBSTR


A: SELECT SUBSTR('DATABASE MANAGEMENT SYSTEMS','6') FROM
DUAL;

Q: WRITE A SQL QUERY TO CONVERT DBMS AS **********DBMS


USING LPAD
A: SELECT LPAD('DBMS',10,'*')FROM DUAL;

Q: WRITE A SQL QUERY TO CONVERT DBMS AS DBMS**********


USING RPAD
A: SELECT RPAD('DBMS',10,'*')FROM DUAL;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q: WRITE A SQL QUERY TO REMOVE NULL CHARACTERS ON LEFT


SIDE OF THE GIVEN STRING
A: SELECT LTRIM('DBMS') FROM DUAL;

Q: WRITE A SQL QUERY TO REMOVE NULL CHARACTERS ON


RIGHT SIDE OF THE GIVEN STRING
A: SELECT RTRIM('DBMS') FROM DUAL;

Q: WRITE A SQL QUERIES TO ILLUSTRATE SYSDATE.


A: SELECT SYSDATE FROM DUAL;

Q: WRITE A SQL QUERIES TO DISPLAY LAST_DAY OF THE


SYSDATE.
A: SELECT LAST_DAY(SYSDATE) FROM DUAL;

Q: WRITE A SQL QUERIES TO DISPLAY NEXT_DAY OF THE


SYSDATE.
A: SELECT NEXT_DAY('20-JULY-2018','FRIDAY') FROM DUAL;

Q: WRITE A SQL QUERIES TO DISPLAY DATE AFTER TWO MONTHS


OF THE SYSDATE.
A: SELECT ADD_MONTHS(SYSDATE,2) FROM DUAL;

Q: WRITEa A SQL QUERIES TO DISPLAY MONTHS BETWEEN TWO


GIVEN.

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

A:SELECT MONTHS_BETWEEN('20-NOV-2016','20-JAN-2015') FROM


DUAL;

Q: WRITE A SQL QUERY TO ILLUSTRATE LEAST, GREATEST,


ROUND FUNCTIONS.
A: SELECT LEAST(10,11,12) FROM DUAL;

A: SELECT LEAST('S','F','A') FROM DUAL;

A: SELECT GREATEST(10,11,12) FROM DUAL;

A: SELECT GREATEST('S','F','A') FROM DUAL;

A: SELECT ROUND(21.8008) FROM DUAL;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-5 EXPERIMENTS: CREATION OF SIMPLE PL/SQL PROGRAM WHICH


INCLUDES DECLARATION SECTION, EXECUTABLE SECTION AND EXCEPTION –
HANDLING SECTION (EX. STUDENT MARKS CAN BE SELECTED FROM THE TABLE
AND PRINTED FOR THOSE WHO SECURED FIRST CLASS AND AN EXCEPTION CAN
BE RAISED IF NO RECORDS WERE FOUND)

SQL> select * from student;


NAME PIN ID MARKS
-------------------- ---------- ---------- ----------
Sampath 20551A4260 60 8
Shariff 20551A4231 31 8
Aditya 20551A4202 2 8
Rohith 20551A4209 9 9
Nithin 20551A4216 16 8

SQL> declare
2 top varchar2(25);
3 begin
4 select name into top from student where marks=10;
5 dbms_output.put_line('The NAMES ARE : '||top);
6 exception
7 whenno_data_found then dbms_output.put_line('NO ONE SCORED FIRST
CLASS');
8 end;
9 /
NO ONE SCORED FIRST CLASS

PL/SQL procedure successfully completed.

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-6 EXPERIMENTS:INSERT DATA INTO STUDENT TABLE AND USE COMMIT,


ROLLBACK AND SAVEPOINT IN PL/SQL BLOCK.

Create table stu(name varchar(10),branch varchar(10));


Insert into stu values(‘sai’,’it’);
SAVEPOINT h;
Savepoint created
SQL> set serveroutput on;

PROGRAM:
SQL> begin
savepoint g;
insert into stu values('mahi','cse');
exception
when dup_val_on_index then
rollback to g;
commit;
end;
/
SQL> Rollback to h;
Rollback completed

SQL> SELECT * FROM stu;

OUTPUT:

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-7 EXPERIMENTS: DEVELOP A PROGRAM THAT INCLUDES THE FEATURES


NESTED IF, CASE AND CASE EXPRESSION. THE PROGRAM CAN BE EXTENDED
USING THE NULLIF AND COALESCE FUNCTIONS.
Syntax:
DECLARE
<declare section>
BEGIN
<executable section>
EXCEPTION
<exception handling>
END;

NESTED IF:
SQL> declare --NESTED IF(2nd internal - 1st Qn)
2 a number:=&a;
3 b number:=&b;
4 begin
5 if a!=b then
6 if a>b then
7 dbms_output.put_line('A is the greatest');
8 else
9 dbms_output.put_line('B is the greatest');
10 end if;
11 end if;
12 end;
13 /
Enter value for a: 10
old 2: a number:=&a;
new 2: a number:=10;
Enter value for b: 20
old 3: b number:=&b;
new 3: b number:=20;
B is the greatest

PL/SQL procedure successfully completed.

CASE EXPRESSION:
SQL> declare --CASE EXPRESSION(2nd internal - 1st Qn)
2 grade varchar2(1):='&grade';
3 begin
4 case grade
5 when 'A' then dbms_output.put_line('Excellent');
6 when 'B' then dbms_output.put_line('GOOD');
7 when 'C' then dbms_output.put_line('Average');
8 when 'F' then dbms_output.put_line('Fail');
9 else

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

10 dbms_output.put_line('Invalid Grade Entered');


11 end case;
12 end;
13 /
Enter value for grade: A
old 2: grade varchar2(1):='&grade';
new 2: grade varchar2(1):='A';
Excellent

PL/SQL procedure successfully completed.

CASE EXPRESSION:
SQL>declare --SEARCHED CASE EXPRESSION(2nd internal - 1st Qn)
2 grade varchar2(1):='&grade';
3 begin
4 case
5 when grade='A' then dbms_output.put_line('Excellent');
6 when grade='B' then dbms_output.put_line('GOOD');
7 when grade='C' then dbms_output.put_line('Average');
8 when grade='F' then dbms_output.put_line('Fail');
9 else
10 dbms_output.put_line('Invalid Grade Entered');
11 end case;
12 end;
13 /
Enter value for grade: A
old 2: grade varchar2(1):='&grade';
new 2: grade varchar2(1):='A';
Excellent

PL/SQL procedure successfully completed.

NULLIF AND COALESCE FUNCTION:

SQL> declare --NULLIF AND COALESCE FUNCTION(2nd internal - 1st Qn)


2 a number;
3 b number:=&b;
4 begin
5 ifnullif(b,a) is not null then
6 dbms_output.put_line(coalesce(a,b));
7 end if;
8 end;
9 /
Enter value for b: 2
old 3: b number:=&b;
new 3: b number:=2;
2
PL/SQL procedure successfully completed.

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q1: TO READ A NUMBER FORM KEY BOARD AND DISPLAY THE SAME ON THE
SCREEN
DECLARE
N NUMBER:= :N;
BEGIN
DBMS_OUTPUT.PUT_LINE(N);
END;
/
Output:

Q2: ADDITION OF TWO NUMBERS


DECLARE
N NUMBER:= :N;
M NUMBER:= :M;
C NUMBER;
BEGIN
C:=M+N;
DBMS_OUTPUT.PUT_LINE('SUM OF THE ENTERED NUMBERS IS');
DBMS_OUTPUT.PUT_LINE(C);
END;
/
Output:

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Q3: MODULUS OPERATOR ILLUSTRATION


DECLARE
N NUMBER:= :N;
C NUMBER;
BEGIN
C:=MOD(N,2);
DBMS_OUTPUT.PUT_LINE('ENTERED INPUT NUMBER IS');
DBMS_OUTPUT.PUT_LINE(N);
DBMS_OUTPUT.PUT_LINE('MODULUS OF THE ENTERED NUMBERS IS');
DBMS_OUTPUT.PUT_LINE(C);
END;
/
Output:

Q4: TO DISPLAY FIRST N NATURAL NUMBERS


DECLARE
N NUMBER:= :N;
I NUMBER;
BEGIN
FOR I IN 1..N
LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
END; /
Output:

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-8 EXPERIMENTS: PROGRAM DEVELOPMENT USING WHILE LOOPS,


NUMERIC FOR LOOPS, NESTED LOOPS USING ERROR HANDLING, BUILT –IN
EXCEPTIONS, USE DEFINED EXCEPTIONS, RAISE- APPLICATION ERROR.

1) AIM: ADDITION AT RUN TIME


DECLARE
A NUMBER;
B NUMBER;
C NUMBER;
D NUMBER;
BEGIN
A:=:A;
B:=:B;
C:=:C;
D:= A+B+C;
DBMS_OUTPUT.PUT_LINE('SUM OF' || A || 'AND' || B || ' AND ' || C|| ‘IS’ || D);
END;
/
Output:

PL/SQL procedure successfully completed.

2) AIM: SIMPLE LOOP TO GET SUM OF 100 NUMBERS.


PROGRAM:
DECLARE
A NUMBER;
S1 NUMBER DEFAULT 0;
BEGIN
A:=1;
LOOP
S1:=S1+A;
EXIT WHEN(A=100);
A:=A+1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('SUM BETWEEN 1 TO 100 IS' || S1);
END;
/

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

Output:

PL/SQL procedure successfully completed.

3) AIM: While Loop for sum of 100 odd numbers.


PROGRAM:
DECLARE
N NUMBER;
ENDVALUE NUMBER;
SUM1 NUMBER DEFAULT 0;
BEGIN
ENDVALUE:=:ENDVALUE;
N:=1;
WHILE(N<ENDVALUE)
LOOP
SUM1:=SUM1+N;
N:=N+2;
END LOOP;
DBMS_OUTPUT.PUT_LINE('SUM OF ODD NUMBERS BETWEEN 1 AND ' || ENDVALUE
|| 'IS' || SUM1);
END;
/
Output:

PL/SQL procedure successfully completed.

4) AIM: if else for finding maximum of three numbers


Program:
DECLARE
A NUMBER;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

B NUMBER;
C NUMBER;
BEGIN
A:=:A;
B:=:B;
C:=:C;
DBMS_OUTPUT.PUT_LINE('A IS '||A||' B IS '||B||' C IS '||C);
IF(A>B)AND(A>C)THEN
DBMS_OUTPUT.PUT_LINE(' A IS MAXIMUM');
ELSIF(B>A)AND(B>C)THEN
DBMS_OUTPUT.PUT_LINE('B IS MAXIMUM');
ELSE
DBMS_OUTPUT.PUT_LINE('C IS MAXIMUM');
END IF;
END;
/
Output:

PL/SQL procedure successfully completed.

5) AIM: select column from table employ by using memory variable


Program:
DECLARE
MVSALARY NUMBER(10,2);
BEGIN
SELECT SALARY INTO MVSALARY
FROM
EMPLOY
WHERE ENAME=’SAI’;
DBMS_OUTPUT.PUT_LINE(‘THE SALARY OF EMPLOY IS’ || TO_CHAR9MVSALARY));
END;
/

Output:
The salary of employ is 50000
PL/SQL procedure successfully completed.

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-9 EXPERIMENTS: PROGRAMS DEVELOPMENT USING CREATION OF


PROCEDURES, PASSING PARAMETERS IN AND OUT OF PROCEDURES.

Syntax:
CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_name [IN | OUT | IN OUT] type [,…])]
{IS | AS}
BEGIN
<procedure body>
END procedure_name;

->create table enquiry(enqno1 number,fname varchar2(30));


->insert into enquiry values(111,'sai');
->insert into enquiry values(112,'sindhu');
Program:
create procedure findname(enquiryno1 IN number,fname1 OUT varchar2)
is
fname2 varchar2(30);
begin
select fname into fname2
from enquiry
where enqno1=enquiryno1;
fname1:=fname2;
exception
when no_data-found then
raise_application_error(-20100,'The given number is not present');
end;
/
/*calling procedure*/
declare
enqno2 number(5);
fname2 varchar2(30);
begin
enqno2:=111;
findname(enqno2,fname2);
dbms_output.put_line(fname2);
end;
/

Output:sai

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-10 EXPERIMENTS: PROGRAM DEVELOPMENT USING CREATION OF


STORED FUNCTIONS, INVOKE FUNCTIONS IN SQL STATEMENTS AND WRITE
COMPLEX FUNCTIONS.

->create table dept(deptno int,dname varchar(10));


->insert into dept values(1219,'sai');
Program:
create or replace function getname(dno number)
return varchar2 as
fname1 varchar2(30);
begin
select dname
into fname1
from dept
where deptno=dno;
return(fname1);
exception
whenno_data_found then
raise_application_error(-20100,'The dno is present');
end;
/*calling function*/
declare
fname2 varchar2(30);
deptno2 number(5);
begin
deptno:=1219;
fname2:=getname(dno);
dbms_output.put_line(fname2);
end; /

output:sai

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-11 EXPERIMENTS: PROGRAM DEVELOPMENT USING CREATION OF


PACKAGE SPECIFICATION, PACKAGE BODIES, PRIVATE OBJECTS, PACKAGE
VARIABLES AND CURSORS AND CALLING STORED PACKAGES.

(1)CREATE A TABLE DEPT1


->create table dept1(dname varchar2(10),deptno number);
->insert into dept values('accounting',10);
->insert into dept values('hr',20);
(2)CREATE A TABLE DEPT
->create table dept(dno number,vt varchar2(10),dloc varcar2(20));
(3)CREATING PACKAGE HEADER
create or replace package test
is
procedure savedept
(dno in number,dloc in varchar);
end; /
(4)CREATING PACKAGE BODY
create or replace package body test
is
function getdno(dno in number)
return varchar
is
dnum varchar(20);
begin
select dname into dnum from dept
where deptno=dno;
return dnum;
end;
procedure savedept
(dno in number,dloc in varchar)
is
vt varchar(20)
begin
vt:=getno(dno);
insert into dept values(dno,vt,dloc);
exception
when dup_val_on_index then
raise_application_error(-2007,'duplicate');
end;
end; /
(5)EXECUTING PROCEDURE
exectest.savedept(10,'vijayawada');
(6)DISPLAY THE TABLE
->select * from dept;

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-12 EXPERIMENTS:DEVELOP PROGRAMS USING FEATURES PARAMETERS


IN A CURSOR, FOR UPDATE CURSOR, WHERE CURRENT OF CLAUSE AND CURSOR
VARIABLES.
Program:
Create table employ( EID number(38),ENAME varchar2(20) SALARY
number(38));
SQL> insert into employ values(1,'sindhu',26000);
1 row created.
SQL> insert into employ values(3,'satya',26000);
1 row created.

Cursor program:
declare
emp_recvarchar(30);
cursor emp_cur is
select ename
from employ where salary > 25000;
Begin
Open emp_cur;
Loop
fetch emp_cur into emp_rec;
exit when emp_cur % notfound;
dbms_output.put_line(emp_rec);
end loop;
close emp_cur;
end;
/
Output:
sindhu
satya
PL/SQL procedure successfully completed.

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A


Database Management Systems Lab DATE: / /

WEEK-13 EXPERIMENTS: DEVELOP PROGRAMS USING BEFORE AND AFTER


TRIGGERS, ROW AND STATEMENT TRIGGERS AND INSTEAD OF TRIGGERS.

(1)CREATE A TRIGGER
create or replace trigger trg2
after insert or delete or update
on dept1
for each row
when(new.deptno>0)
begin
dbms_output.put_line('trigger fired');
end;
/

(2)INSERT
->insert into deptvalues('sindhu',30);
*trigger fired*
*1 row created*
(3)UPADTE
->udpate dept1 set deptno=19 where dname='sindhu';
*trigger fired*
*1 row updated*
(4)DELETE
->delete from dept where deptno=30;
*trigger fired*
*1 row deleted*

DEPARTMENT OF CSE, GIET-A PAGE NO PIN 2 5 5 A

You might also like