BSC-IV SEM-Database Management Systems Lab
BSC-IV SEM-Database Management Systems Lab
COMPUTER SCIENCE
Database Management
Systems
Lab
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
2 DATAFILE 'tbs_perm_01.dat'
3 SIZE 20M
4 ONLINE;
Tablespace created.
2 TEMPFILE 'tbs_temp_01.dbf'
3 SIZE 5M
4 AUTOEXTEND ON;
Tablespace created.
https://mguugcs.blogspot.in Page.No: 1
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.1: Create a database with name “DreamHome” and now create all the tables listed
above with constraints.
Solution:
User created.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Enter password:
Connected.
SQL> CREATE TABLE Branch(BranchNo varchar(5), Street varchar(10), City varchar(10), PostCode
varchar(6), constraint Branch_PK primary key(BranchNo));
Table created.
SQL> CREATE TABLE Staff(StaffNo varchar(5), Fname varchar(10), Lname varchar(10), Position varchar(10),
Sex varchar2(2), DOB Date, Salary int, BranchNo varchar(5), constraint Staff_PK primary key(StaffNo),
Constraint Staff_FK foreign key(BranchNo) references Branch);
Table created.
https://mguugcs.blogspot.in Page.No: 2
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> CREATE TABLE Client(ClientNo varchar(5), Fname varchar(10), Lname varchar(10), TelNo varchar(10),
PrefType varchar(2), MaxRent int, eMail varchar(15), constraint Client_PK primary key(ClientNo));
Table created.
SQL> CREATE TABLE PrivateOwner(OwnerNo varchar(5), Fname varchar(10), Lname varchar(10), address
varchar(10), TelNo varchar(10), eMail varchar(15), Password varchar(8), Constraint PO_PK primary
key(OwnerNo));
Table created.
Table created.
SQL> CREATE TABLE Viewing(ClientNo varchar(5), PropertyNo varchar(5), ViewDate date, Comments
varchar(10), constraint V_PK primary key(ClientNo, PropertyNo));
Table created.
SQL> CREATE TABLE Registration(ClientNo varchar(5), BranchNo varchar(5), StaffNo varchar(5), DateJoined
Date, constraint R_PK primary key(ClientNo,BranchNo), constraint R_FK foreign key(StaffNo) references
Staff)
Table created.
Question.2: Insert a new row into the table supplying data for all columns.
Inserting records into the Tables:
1 row created
https://mguugcs.blogspot.in Page.No: 3
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> COMMIT;
Commit complete.
https://mguugcs.blogspot.in Page.No: 4
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> SELECT * FROM BRANCH;
SQL> INSERT INTO STAFF VALUES('&STAFFNO', '&FNAME', '&LNAME', '&POSITION', '&SEX', '&DOB',
&SALARY, '&BRANCHNO');
1 row created.
SQL> /
1 row created.
https://mguugcs.blogspot.in Page.No: 5
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
https://mguugcs.blogspot.in Page.No: 6
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> COMMIT;
Commit complete.
1 row created.
SQL> /
1 row created.
https://mguugcs.blogspot.in Page.No: 7
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> COMMIT;
Commit complete.
https://mguugcs.blogspot.in Page.No: 8
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Inserting Records into PRIVATEOWNER Table:
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
https://mguugcs.blogspot.in Page.No: 9
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /
1 row created.
SQL> /
1 row created.
SQL> COMMIT ;
Commit complete.
https://mguugcs.blogspot.in Page.No: 10
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Inserting Records into VIEWING Table:
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
https://mguugcs.blogspot.in Page.No: 11
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /
1 row created.
SQL> COMMIT;
Commit complete.
1 row created.
SQL> /
1 row created.
https://mguugcs.blogspot.in Page.No: 12
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /
1 row created.
SQL> /
1 row created.
SQL>
SQL> /
1 row created.
SQL> COMMIT;
Commit complete.
https://mguugcs.blogspot.in Page.No: 13
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Inserting Records into PROPERTYFORRENT Table:
1 row created.
1 row created
1 row created
https://mguugcs.blogspot.in Page.No: 14
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Enter value for rooms: 6
Enter value for rent: 40000
Enter value for ownerno: AP001
Enter value for staffno: DH004
Enter value for branchno: 04
1 row created
1row created
SQL>COMMIT;
COMMIT COMPLETE
https://mguugcs.blogspot.in Page.No: 15
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> UPDATE BRANCH_TEMP SET POSTCODE='520010' WHERE BRANCHNO='05';
1 row updated.
SQL> COMMIT;
Commit complete.
5 rows deleted.
no rows selected
SQL> ROLLBACK;
Rollback complete.
Table altered.
https://mguugcs.blogspot.in Page.No: 16
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Table dropped.
ERROR:
Table created.
Table truncated.
no rows selected
Index created.
Index dropped.
https://mguugcs.blogspot.in Page.No: 17
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.9: Practice other standard SQL commands for creating, modifying, displaying data
of tables.
1 row updated.
SQL> COMMIT;
Commit complete.
https://mguugcs.blogspot.in Page.No: 18
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.12: List the property numbers of all properties that have been viewed.
PROPERTYNO
-----------------
PA001
PA002
PA003
PG001
PG002
Question.No.13: Produce a list of salaries for all staff, showing only the staffNo, fName, IName,
and salary details.
STAFFNO FNAME LNAME SALARY
------------ ------------ -------------- ---------------
DH001 ARUN ROY 30000
Question.No.14: List all cities where there is either a branch office or a property for rent.
SQL> SELECT CITY FROM BRANCH UNION SELECT CITY FROM PROPERTYFORRENT;
CITY
----------
AMARAVATI
HYDERABAD
SECBAD
https://mguugcs.blogspot.in Page.No: 19
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.15: List all cities where there is a branch office but no properties for rent
SQL> SELECT CITY FROM BRANCH MINUS SELECT CITY FROM PROPERTYFORRENT;
CITY
----------
SECBAD
Question.No.16: List all cities where there is both a branch office and at least one property for
rent
SQL> SELECT CITY FROM BRANCH INTERSECT SELECT CITY FROM PROPERTYFORRENT;
CITY
----------------
AMARAVATI
HYDERABAD
Question.No.17: List the names and comments of all clients who have viewed a property for
rent.
SQL> SELECT C.CLIENTNO, FNAME, LNAME, V.CLIENTNO, PROPERTYNO, COMMENTS FROM CLIENT C,
VIEWING V WHERE C.CLIENTNO=V.CLIENTNO;
SQL> SELECT P.PROPERTYNO, STREET, CITY, CLIENTNO, VIEWDATE, COMMENTS FROM PROPERTYFORRENT
P LEFT JOIN VIEWING V ON P.PROPERTYNO = V.PROPERTYNO;
https://mguugcs.blogspot.in Page.No: 20
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.19: List complete details of all staff who work at the branch in Secunderabad.
SQL> SELECT * FROM STAFF S WHERE EXISTS (SELECT CITY FROM BRANCH B WHERE CITY='SECBAD' AND
S.BRANCHNO = B.BRANCHNO);
Question.No.21: List all staff with a salary between ₹20,000 and ₹30,000
SQL> SELECT STAFFNO, FNAME, LNAME, POSITION, SALARY FROM STAFF WHERE SALARY BETWEEN 20000
AND 30000 ;
Question.No.22: Identify all clients who have viewed all properties with three rooms.
SQL> SELECT ClientNo FROM Viewing WHERE propertyNo IN (SELECT propertyNo FROM
PropertyForRent WHERE rooms = 3);
CLIENTNO
------------
001
003
Question.No.23: How many properties cost more than ₹50000 per month to rent
SQL> SELECT COUNT (PROPERTYNO) FROM PROPERTYFORRENT WHERE RENT > 50000;
COUNT (PROPERTYNO)
----------------------------
2
https://mguugcs.blogspot.in Page.No: 21
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
VIEWS_IN_FEBRUARY
------------------------------
2
Question.No.25: Find the total number of Managers and the sum of their salaries.
SQL> SELECT COUNT (STAFFNO) AS NO_OF_MANAGERS, SUM(SALARY) AS TOTAL_SALARY FROM STAFF
WHERE POSITION = 'MANAGER';
NO_OF_MANAGERS TOTAL_SALARY
-------------------------- ---------------------
2 112000
Question.No.27: Find the number of staff working in each branch and the sum of their salaries.
02 2 72000
03 1 25000
04 1 60000
SQL> SELECT STAFFNO, FNAME, LNAME, POSITION FROM STAFF WHERE POSITION IN ('MANAGER',
'SUPERVISOR');
https://mguugcs.blogspot.in Page.No: 22
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.29: Find all owners with the string ‘Hyderabad’ in their address.
SQL> SELECT OWNERNO, FNAME, LNAME, ADDRESS, TEL_NO FROM PRIVATEOWNER WHERE ADDRESS LIKE
'%HYD%';
Question.No.30: List the details of all viewings on property PA002 where a comment has not
been supplied.
SQL> SELECT CLIENTNO, VIEWDATE FROM VIEWING WHERE PROPERTYNO = 'PA002' AND COMMENTS IS
NULL;
CLIENTNO VIEWDATE
-------------- --------------
002 11-FEB-18
Question.No.31: Produce a list of salaries for all staff, arranged in descending order of salary
SQL> SELECT STAFFNO, FNAME, LNAME, SALARY FROM STAFF ORDER BY SALARY DESC;
SQL> SELECT PROPERTYNO, TYPE, ROOMS, RENT FROM PROPERTYFORRENT ORDER BY TYPE;
PG002 MF 10 65000
PA002 MF 10 100000
PA001 MF 3 50000
https://mguugcs.blogspot.in Page.No: 23
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.33: Find the number of staff working in each branch and the sum of their salaries
SQL> SELECT BRANCHNO, COUNT(STAFFNO) AS STAFFCOUNT, SUM(SALARY) AS TOTALSAL FROM STAFF
02 2 72000
03 1 25000
04 1 60000
Question.No.34: For each branch office with more than one member of staff, find the number
of staff working in each branch and the sum of their salaries.
Question.No.35: List the staff who work in the branch at ‘JNTU Road.
SQL> SELECT STAFFNO, FNAME, LNAME, POSITION FROM STAFF WHERE BRANCHNO = (SELECT BRANCHNO
FROM BRANCH WHERE STREET= 'JNTU ROAD');
Question.No.36: List all staff whose salary is greater than the average salary, and show by how
much their salary is greater than the average.
SQL> SELECT STAFFNO, FNAME, LNAME, POSITION, SALARY - (SELECT AVG (SALARY) FROM STAFF) AS
SALDIFF FROM STAFF WHERE SALARY > (SELECT AVG (SALARY) FROM STAFF);
https://mguugcs.blogspot.in Page.No: 24
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.37: List the properties that are handled by staff who work in the branch at ‘SD
ROAD’.
SQL> SELECT PROPERTYNO, STREET, CITY, POSTCODE, TYPE, ROOMS, RENT FROM
PROPERTYFORRENT WHERE STAFFNO IN (SELECT STAFFNO FROM STAFFWHERE BRANCHNO =
(SELECT BRANCHNO FROM BRANCH WHERE STREET = 'SD ROAD'));
Question.No.38: Find all staff whose salary is larger than the salary of at least one member of
staff at branch 03.
SQL> SELECT STAFFNO, FNAME, LNAME, POSITION, SALARY FROM STAFF WHERE SALARY > SOME (SELECT
SALARY FROM STAFF WHERE BRANCHNO = '03');
Question.No.39: Find all staff whose salary is larger than the salary of every member of staff at
branch 03
SQL> SELECT STAFFNO, FNAME, LNAME, POSITION, SALARY FROM STAFF WHERE SALARY > ALL (SELECT
SALARY FROM STAFF WHERE BRANCHNO = '03');
Question.No.40: List the names of all clients who have viewed a property, along with any
comments supplied.
SQL> SELECT C.CLIENTNO, FNAME, LNAME, PROPERTYNO, COMMENTS FROM CLIENT C, VIEWING V
https://mguugcs.blogspot.in Page.No: 25
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.41: For each branch office, list the staff numbers and names of staff who manage
properties and the properties that they manage.
Question.No.42: For each branch, list the staff numbers and names of staff who manage
properties, including the city in which the branch is located and the properties that the staff
manage.
SQL> SELECT B.BRANCHNO, B.CITY, S.STAFFNO, FNAME, LNAME, PROPERTYNO FROM BRANCH B, STAFF S,
PROPERTYFORRENT P WHERE B.BRANCHNO = S.BRANCHNO AND S.STAFFNO = P.STAFFNO ORDER BY
B.BRANCHNO, S.STAFFNO, PROPERTYNO;
Question.No.43: Find the number of properties handled by each staff member, along with the
branch number of the member of staff.
02 DH002 1
02 DH004 1
03 DH003 1
04 DH005 1
https://mguugcs.blogspot.in Page.No: 26
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.44: List all branch offices and any properties that are in the same city.
SQL> CREATE TABLE BRANCH1 AS SELECT BRANCHNO, CITY FROM BRANCH;
Table created.
Table created.
SQL> SELECT B.*, P.* FROM BRANCH1 B LEFT JOIN PROPERTYFORRENT1 P ON B.CITY=P.CITY;
02 SECBAD
11 rows selected.
Question.No.45: List all properties and any branch offices that are in the same city.
SQL> SELECT B.*, P.* FROM BRANCH1 B RIGHT JOIN PROPERTYFORRENT1 P ON B.CITY=P.CITY;
https://mguugcs.blogspot.in Page.No: 27
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
04 AMARAVATI PG002 AMARAVATI
10 rows selected.
Question.No.46: List the branch offices and properties that are in the same city along with any
unmatched branches or properties.
SQL> SELECT B.*, P.* FROM BRANCH1 B FULL JOIN PROPERTYFORRENT1 P ON B.CITY=P.CITY;
02 SECBAD
11 rows selected.
SQL> SELECT STAFFNO, FNAME, LNAME, POSITION FROM STAFF S WHERE EXISTS (SELECT * FROM BRANCH
B WHERE S.BRANCHNO = B.BRANCHNO AND CITY='AMARAVATI');
Question.No.48: Construct a list of all cities where there is either a branch office or a property.
SQL> (SELECT CITY FROM BRANCH WHERE CITY IS NOT NULL) UNION (SELECT CITY FROM
PROPERTYFORRENT WHERE CITY IS NOT NULL);
CITY
----------
AMARAVATI
HYDERABAD
SECBAD
https://mguugcs.blogspot.in Page.No: 28
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Question.No.49: Construct a list of all cities where there is both a branch office and a property
SQL> (SELECT CITY FROM BRANCH WHERE CITY IS NOT NULL) INTERSECT (SELECT CITY FROM
PROPERTYFORRENT WHERE CITY IS NOT NULL);
CITY
--------------
AMARAVATI
HYDERABAD
Question.No.50: Create a view so that the manager at branch 03 can see the details only for staff
who work in his or her branch office.
SQL> CREATE VIEW BRANCH3VIEW AS SELECT * FROM STAFF WHERE BRANCHNO = '03';
View created.
Question.No.51: Create a view of the staff details at branch B003 that excludes salary
information, so that only managers can access the salary details for staff who work at their
branch.
SQL> CREATE VIEW STAFF3VIEW AS SELECT STAFFNO, FNAME, LNAME, POSITION, SEX FROM STAFF
WHERE BRANCHNO = '03';
View created.
Question.No.52: Create a view of staff who manage properties for rent, which includes the
branch number they work at, their staff number, and the number of properties they manage.
SQL> CREATE VIEW STAFFVIEW (BRANCHNO, STAFFNO, CNT) AS SELECT S.BRANCHNO, S.STAFFNO,
COUNT(*) FROM STAFF S, PROPERTYFORRENT P WHERE S.STAFFNO = P.STAFFNO GROUP BY
S.BRANCHNO, S.STAFFNO;
View created.
https://mguugcs.blogspot.in Page.No: 29
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> SELECT * FROM STAFFVIEW;
View dropped.
Question.No.54: Give the user with authorization identifier Manager all privileges on the Staff
table
SQL> CREATE USER C##MANAGR IDENTIFIED BY MAN1;
User created.
Grant succeeded
Question.No.55: Give users C##Personnel and C##Director the privileges SELECT and UPDATE
on column salary of the Staff table
User created.
Grant succeeded.
Question.No.56: Revoke the privilege SELECT on the Branch table from all users.
Revoke succeeded
Question.No.57: Revoke all privileges you have given to Director on the Staff table.
Revoke succeeded.
https://mguugcs.blogspot.in Page.No: 30
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> DECLARE
2 S_ID STAFF.STAFFNO%TYPE :='DH020';
3 S_NAME STAFF.FNAME%TYPE;
4 S_POS STAFF.POSITION%TYPE;
5 BEGIN
6 SELECT FNAME, POSITION INTO S_NAME, S_POS
7 FROM STAFF
8 WHERE STAFFNO = S_ID;
9 DBMS_OUTPUT.PUT_LINE ('STAFF No : '|| S_ID);
10 DBMS_OUTPUT.PUT_LINE ('Name : '|| S_NAME);
11 DBMS_OUTPUT.PUT_LINE ('POSITION : ' || S_POS);
12 EXCEPTION
13 WHEN NO_DATA_FOUND THEN
14 DBMS_OUTPUT.PUT_LINE('GIVEN STAFF MEMBER DOES NOT EXIST!');
15 WHEN OTHERS THEN
16 DBMS_OUTPUT.PUT_LINE('ERROR!');
17* END;
SQL> /
SQL> DECLARE
2 S_STAFFNO STAFF.STAFFNO%type;
3 S_NAME STAFF.FNAME%type;
4 S_SAL STAFF.SALARY%type;
5 CURSOR S_STAFF is SELECT STAFFNO, FNAME,SALARY FROM STAFF;
6 BEGIN
7 DBMS_OUTPUT.PUT_LINE('STAFFNO ' || ' FNAME ' ||' SAL' );
8 DBMS_OUTPUT.PUT_LINE('===========================' );
9 OPEN S_STAFF;
10 LOOP
11 FETCH S_STAFF into S_STAFFNO, S_NAME, S_SAL;
12 EXIT WHEN S_STAFF%notfound;
13
14 DBMS_OUTPUT.PUT_LINE(S_STAFFNO || ' ' ||S_NAME || ' ' ||S_SAL);
15 END LOOP;
16 CLOSE S_STAFF;
17 END;
18 /
https://mguugcs.blogspot.in Page.No: 31
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
STAFFNO FNAME SAL
===============================
DH001 ARUN 30000
DH002 BHARATHI 52000
DH003 CHARAN 25000
DH004 DHARANI 20000
DH005 EMMANUEL 60000
Procedure created.
Function created.
https://mguugcs.blogspot.in Page.No: 32
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> DECLARE
2 RESULT NUMBER(5);
3 BEGIN
4 RESULT := FUN_ADD(100,200);
5 DBMS_OUTPUT.PUT_LINE('Addition Result is: ' || RESULT);
6 END;
7 /
Package created.
https://mguugcs.blogspot.in Page.No: 33
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> SELECT * FROM EMP;
Trigger created.
SQL> INSERT INTO STAFF VALUES ('DH006', 'SUNDARA', 'KRISHNA', 'CEO', 'M', '20-APRIL-1969', 85000,
'03');
1 row created.
https://mguugcs.blogspot.in Page.No: 34
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> BEGIN
2 DBMS_OUTPUT.PUT_LINE('Factorial ='||FACTORIAL(4));
3 END;
SQL> /
Factorial =24
*****
https://mguugcs.blogspot.in Page.No: 35