0% found this document useful (0 votes)
6 views

BSC-IV SEM-Database Management Systems Lab

The document outlines a practical lab exercise for a B.Sc. Computer Science program focusing on Database Management Systems using Oracle Database 12c. It includes the creation of a relational schema for a case study named 'DreamHome', detailing the tables and their relationships, as well as SQL commands for creating tables, inserting records, and managing user permissions. The document serves as a guide for students to implement and manipulate a database system effectively.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

BSC-IV SEM-Database Management Systems Lab

The document outlines a practical lab exercise for a B.Sc. Computer Science program focusing on Database Management Systems using Oracle Database 12c. It includes the creation of a relational schema for a case study named 'DreamHome', detailing the tables and their relationships, as well as SQL commands for creating tables, inserting records, and managing user permissions. The document serves as a guide for students to implement and manipulate a database system effectively.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

B.Sc.

Programme under Choice Based Credit System

COMPUTER SCIENCE

Database Management
Systems

Lab
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE

Database Management Systems Lab BS406

 Consider the relational schema for part of the DreamHome case


study is:
1. Branch (branchNo, street, city, postcode)
2. Staff (staffNo, fName, IName, position, sex, DOB, salary,
branchNo)
3. PropertyForRent (propertyNo, street, city, postcode, type,
rooms, rent, ownerNo, staffNo, branchNo)
4. Client (clientNo, fName, IName, telNo, prefType, maxRent,
eMail)
5. PrivateOwner (ownerNo, fName, IName, address, telNo, eMail,
password)
6. Viewing (clientNo, propertyNo, viewDate, comment)
7. Registration (clientNo, branchNo, staffNo, dateJoined)

In order to solve the above relational schema using ORACLE Database


12c, the following prerequisites must be satisfied:
1. Click on start menu
2. Select “Oracle-OraDB12Home”
3. Select and Click on “SQL Plus”
This will display a SQL Plus window and prompt you to enter
the user name.
4. Enter your ADMIN/SYS/DBA login credentials.
After a successful login, you can enter the following:

SQL> CREATE TABLESPACE tbs_perm_01

2 DATAFILE 'tbs_perm_01.dat'

3 SIZE 20M

4 ONLINE;

Tablespace created.

SQL> CREATE TEMPORARY TABLESPACE tbs_temp_01

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:

SQL> create user C##DreamHome identified by pwd1DH

default tablespace tbs_perm_01

temporary tablespace tbs_temp_01

quota 20M on tbs_perm_01;

User created.

SQL> GRANT create session TO C##DreamHome;

Grant succeeded.

SQL> GRANT create table TO C##DreamHome;

Grant succeeded.

SQL> GRANT create view TO C##DreamHome;

Grant succeeded.

SQL> GRANT create any trigger TO C##DreamHome;

Grant succeeded.

SQL> GRANT create any procedure TO C##DreamHome;

Grant succeeded.

SQL> GRANT create sequence TO C##DreamHome;

Grant succeeded.

SQL> GRANT create synonym TO C##DreamHome;

Grant succeeded.

SQL> conn C##DreamHome

Enter password:

Connected.

Creating the Table structures:

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.

SQL> CREATE TABLE PropertyForRent(PropertyNo varchar(5), Street varchar(10), City varchar(10),


PostCode varchar(6), Type varchar(5), rooms int, Rent int, OwnerNo varchar(5), StaffNo varchar(5),
BranchNo varchar(5), constraint PFR_PK primary key(PropertyNo), constraint PFR_ST_FK foreign
key(StaffNo) references Staff, constraint PFR_FK foreign key(BranchNo) references Branch, constraint
PFR_PO_FK foreign key(OwnerNo) references PrivateOwner);

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:

Inserting Records into BRANCH Table:

SQL> INSERT INTO BRANCH VALUES('&BRANCHNO', '&STREET', '&CITY', '&POSTCODE');

Enter value for branchno: 01

Enter value for street: STD ROAD

Enter value for city: HYDERABAD

Enter value for postcode: 500010

1 row created

https://mguugcs.blogspot.in Page.No: 3
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /

Enter value for branchno: 02

Enter value for street: SD ROAD

Enter value for city: SECBAD

Enter value for postcode: 500007

1 row created.

SQL> /

Enter value for branchno: 03

Enter value for street: JNTU ROAD

Enter value for city: HYDERABAD

Enter value for postcode: 500072

1 row created.

SQL> /

Enter value for branchno: 04

Enter value for street: MG ROAD

Enter value for city: AMARAVATI

Enter value for postcode: 520001

1 row created.

SQL> /

Enter value for branchno: 05

Enter value for street: ELR ROAD

Enter value for city: AMARAVATI

Enter value for postcode: 520008

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;

BRANCHNO STREET CITY POSTCODE


--------------- -------------- ------------------- ----------------
01 STD ROAD HYDERABAD 500010

02 SD ROAD SECBAD 500007

03 JNTU ROAD HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520008

Inserting Records into STAFF Table:

SQL> INSERT INTO STAFF VALUES('&STAFFNO', '&FNAME', '&LNAME', '&POSITION', '&SEX', '&DOB',
&SALARY, '&BRANCHNO');

Enter value for staffno: DH001

Enter value for fname: ARUN

Enter value for lname: ROY

Enter value for position: SUPERVISOR

Enter value for sex: M

Enter value for dob: 10-JAN-1991

Enter value for salary: 30000

Enter value for branchno: 01

1 row created.

SQL> /

Enter value for staffno: DH002

Enter value for fname: BHARATHI

Enter value for lname: DEVI

Enter value for position: MANAGER

Enter value for sex: F

Enter value for dob: 01-MAY-1991

Enter value for salary: 52000

Enter value for branchno: 02

1 row created.

https://mguugcs.blogspot.in Page.No: 5
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /

Enter value for staffno: DH003

Enter value for fname: CHARAN

Enter value for lname: KUMAR

Enter value for position: SUPERVISOR

Enter value for sex: M

Enter value for dob: 15-AUGUST-1991

Enter value for salary: 25000

Enter value for branchno: 03

1 row created.

SQL> /

Enter value for staffno: DH004

Enter value for fname: DHARANI

Enter value for lname: RANI

Enter value for position: ASSISTANT

Enter value for sex: F

Enter value for dob: 20-NOVEMBER-1991

Enter value for salary: 20000

Enter value for branchno: 02

1 row created.

SQL> /

Enter value for staffno: DH005

Enter value for fname: EMMANUEL

Enter value for lname: RAJ

Enter value for position: MANAGER

Enter value for sex: M

Enter value for dob: 04-FEBRUARY-1990

Enter value for salary: 60000

Enter value for branchno: 04

1 row created.

https://mguugcs.blogspot.in Page.No: 6
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> COMMIT;

Commit complete.

SQL> SELECT * FROM STAFF;

STAFFNO FNAME LNAME POSITION SEX DOB SALARY BRANCHNO


------------ ----------- ---------- ---------- ---------- ---------- ---------- ---------------
DH001 ARUN ROY SUPERVISOR M 10-JAN-91 30000 01

DH002 BHARATHI DEVI MANAGER F 01-MAY-91 52000 02

DH003 CHARAN KUMAR SUPERVISOR M 15-AUG-91 25000 03

DH004 DHARANI RANI ASSISTANT F 20-NOV-91 20000 02

DH005 EMMANUEL RAJ MANAGER M 04-FEB-90 60000 04

Inserting Records into CLIENT Table:

SQL> INSERT INTO CLIENT VALUES('&CLIENTNO', '&FNAME','&LNAME','&TELNO', '&PREFTYPE',


&MAXRENT, '&EMAIL')

Enter value for clientno: 001

Enter value for fname: ANIL

Enter value for lname: KUMAR

Enter value for telno: 9848400001

Enter value for preftype: 1B

Enter value for maxrent: 15000

Enter value for email: [email protected]

1 row created.

SQL> /

Enter value for clientno: 002

Enter value for fname: BHARATH

Enter value for lname: RAO

Enter value for telno: 9440200001

Enter value for preftype: 2B

Enter value for maxrent: 25000

Enter value for email: [email protected]

1 row created.

https://mguugcs.blogspot.in Page.No: 7
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /

Enter value for clientno: 003

Enter value for fname: CHARITHA

Enter value for lname: KIRAN

Enter value for telno: 994801235

Enter value for preftype: 1B

Enter value for maxrent: 20000

Enter value for email: [email protected]

1 row created.

SQL> /

Enter value for clientno: 004

Enter value for fname: DHINESH

Enter value for lname: NARAYAN

Enter value for telno: 9440101010

Enter value for preftype: 2B

Enter value for maxrent: 30000

Enter value for email: [email protected]

1 row created.

SQL> /

Enter value for clientno: 005

Enter value for fname: ESHWAR

Enter value for lname: PRASAD

Enter value for telno: 9848012345

Enter value for preftype: 1B

Enter value for maxrent: 12000

Enter value for email: [email protected]

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:

SQL> INSERT INTO PRIVATEOWNER VALUES('&OWNERNO', '&FNAME', '&LNAME', '&ADDRESS', '&TELNO',


'&EMAIL', '&PASSOWRD');

Enter value for ownerno: TS001

Enter value for fname: KCR

Enter value for lname: KK

Enter value for address: ERRAVALLI

Enter value for telno: 9490334567

Enter value for email: [email protected]

Enter value for passowrd: KK#1502

1 row created.

SQL> /

Enter value for ownerno: TS002

Enter value for fname: KTR

Enter value for lname: KK

Enter value for address: J.HILLS

Enter value for telno: 9490866666

Enter value for email: [email protected]

Enter value for passowrd: HS#2004

1 row created.

SQL> /

Enter value for ownerno: TS003

Enter value for fname: HRAO

Enter value for lname: TN

Enter value for address: SIDDIPET

Enter value for telno: 9866199999

Enter value for email: [email protected]

Enter value for passowrd: SPT#151

1 row created.

https://mguugcs.blogspot.in Page.No: 9
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /

Enter value for ownerno: AP001

Enter value for fname: CBN

Enter value for lname: NARA

Enter value for address: AMARAVATI

Enter value for telno: 9963510004

Enter value for email: [email protected]

Enter value for passowrd: NB#5201

1 row created.

SQL> /

Enter value for ownerno: AP002

Enter value for fname: LOKESH

Enter value for lname: NARA

Enter value for address: AMARAVATI

Enter value for telno: 2445191

Enter value for email: [email protected]

Enter value for passowrd: DVN#2001

1 row created.

SQL> COMMIT ;

Commit complete.

SQL> SELECT * FROM PRIVATEOWNER;

OWNERNO FNAME LNAME ADDRESS TELNO EMAIL PASSWORD


-------------- ---------- ------------- -------------- -------------- ------------- ----------------------
TS001 KCR KK ERRAVALLI 9490334567 [email protected] KK#1502

TS002 KTR KK J.HILLS 9490866666 [email protected] HS#2004

TS003 HRAO TN SIDDIPET 9866199999 [email protected] SPT#151

AP001 CBN NARA AMARAVATI 9963510004 [email protected] NB#5201

AP002 LOKESH NARA AMARAVATI 08662445191 [email protected] DVN#2001

https://mguugcs.blogspot.in Page.No: 10
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Inserting Records into VIEWING Table:

SQL> INSERT INTO VIEWING VALUES ('&CLIENTNO', '&PROPERTYNO', '&VIEWDATE', '&COMMENTS');

Enter value for clientno: 001

Enter value for propertyno: PA001

Enter value for viewdate: 10 FEBRUARY 2018

Enter value for comments: NIL

1 row created.

SQL> /

Enter value for clientno: 002

Enter value for propertyno: PA002

Enter value for viewdate: 11 FEBRUARY 2018

Enter value for comments: NIL

1 row created.

SQL> /

Enter value for clientno: 003

Enter value for propertyno: PA003

Enter value for viewdate: 15 MARCH 2018

Enter value for comments: GOOD

1 row created.

SQL> /

Enter value for clientno: 004

Enter value for propertyno: PG001

Enter value for viewdate: 15 MARCH 2018

Enter value for comments: NICE

1 row created.

https://mguugcs.blogspot.in Page.No: 11
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /

Enter value for clientno: 005

Enter value for propertyno: PG002

Enter value for viewdate: 20 MARCH 2018

Enter value for comments: GOOD

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT * FROM VIEWING;

CLIENT_NO PROPERTY_NO VIEWDATE COMMENTS


========== ========== ========== ==========
001 PA001 10-02-18
002 PA002 11-02-18
003 PA003 15-03-18 GOOD
004 PG001 15-03-18 NICE
005 PG002 20-03-18 GOOD

Inserting Records into REGISTRATION Table:

SQL> INSERT INTO REGISTRATION VALUES ('&CLIENTNO', '&BRANCHNO', '&STAFFNO', '&DATEJOINED');

Enter value for clientno: 001

Enter value for branchno: 01

Enter value for staffno:

Enter value for datejoined:

1 row created.

SQL> /

Enter value for clientno: 002

Enter value for branchno: 02

Enter value for staffno: DH002

Enter value for datejoined: 05 JANUARY 2018

1 row created.

https://mguugcs.blogspot.in Page.No: 12
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> /

Enter value for clientno: 003

Enter value for branchno: 03

Enter value for staffno: DH003

Enter value for datejoined: 14 JANUARY 2018

1 row created.

SQL> /

Enter value for clientno: 004

Enter value for branchno: 04

Enter value for staffno: DH004

Enter value for datejoined: 14 JANUARY 2018

1 row created.

SQL>

SQL> /

Enter value for clientno: 005

Enter value for branchno: 05

Enter value for staffno: DH005

Enter value for datejoined: 20 JANUARY 2018

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT * FROM REGISTRATION;

CLIENT_NO BRANCHNO STAFFNO DATEJOINED


========= ======== ======== ==========
001 01
002 02 DH002 05-01-18
003 03 DH003 14-01-18
004 04 DH004 14-01-18
005 05 DH005 20-01-18

https://mguugcs.blogspot.in Page.No: 13
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
Inserting Records into PROPERTYFORRENT Table:

SQL>INSERT INTO PROPERTYFORRENT VALUES('&PROPERTYNO', '&STREET',


'&CITY', '&POSTCODE', '&TYPE', &ROOMS, &RENT, '&OWNERNO',
'&STAFFNO', '&BRANCHNO')

Enter value for propertyno: PA001


Enter value for street: JBHILLS
Enter value for city: HYDERABAD
Enter value for postcode: 500010
Enter value for type: MF
Enter value for rooms: 3
Enter value for rent: 50000
Enter value for ownerno: TS001
Enter value for staffno: DH001
Enter value for branchno: 03

1 row created.

Enter value for propertyno: PA002


Enter value for street: BJHILLS
Enter value for city: HYDERABAD
Enter value for postcode: 500011
Enter value for type: MF
Enter value for rooms: 10
Enter value for rent: 100000
Enter value for ownerno: TS002
Enter value for staffno: DH002
Enter value for branchno: 02

1 row created

Enter value for propertyno: PA003


Enter value for street: MADHAPUR
Enter value for city: HYDERABAD
Enter value for postcode: 500012
Enter value for type: INDI
Enter value for rooms: 3
Enter value for rent: 25000
Enter value for ownerno: TS003
Enter value for staffno: DH003
Enter value for branchno: 03

1 row created

Enter value for propertyno: PG001


Enter value for street: MINIROAD
Enter value for city: AMARAVATI
Enter value for postcode: 520001
Enter value for type: INDI

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

Enter value for propertyno: PA005


Enter value for street: MAINROAD
Enter value for city: AMARAVATI
Enter value for postcode: 520010
Enter value for type: MF
Enter value for rooms: 10
Enter value for rent: 65000
Enter value for ownerno: AP002
Enter value for staffno: DH005
Enter value for branchno: 05

1row created

SQL>COMMIT;
COMMIT COMPLETE

SQL> SELECT * FROM PROPERTYFORRENT;


PropNo Street City PostCode Type Rooms Rent OwnerNo StaffNo BranchNo
====== ====== ========== ======== ==== ==== ===== ======= ======= ========
PA001 JBHILLS HYDERABAD 500010 MF 3 50000 TS001 DH001 03
PA002 BJHILLS HYDERABAD 500011 MF 10 100000 TS002 DH002 01
PA003 MADHAPUR HYDERABAD 500012 INDI 3 25000 TS003 DH003 03
PG001 MINIROAD AMARAVATI 520001 INDI 6 40000 AP001 DH004 04
PG002 MAINROAD AMARAVATI 520010 MF 10 65000 AP002 DH005 05

Question.No.3: Modify data in the database using UPDATE.

SQL> CREATE TABLE BRANCH_TEMP AS SELECT * FROM BRANCH;


Table created.

SQL> SELECT * FROM BRANCH_TEMP;

BRANCHNO STREET CITY POSTCODE


--------------- -------------- ------------------- ----------------
01 STD ROAD HYDERABAD 500010

02 SD ROAD SECBAD 500007

03 JNTU ROAD HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520008

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.

SQL> SELECT * FROM BRANCH_TEMP;

BRANCHNO STREET CITY POSTCODE


--------------- -------------- ------------------- ----------------
01 STD ROAD HYDERABAD 500010

02 SD ROAD SECBAD 500007

03 JNTU ROAD HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520010

Question.No.4: Delete data from the database using DELETE

SQL> DELETE FROM BRANCH_TEMP;

5 rows deleted.

SQL> SELECT * FROM BRANCH_TEMP;

no rows selected

SQL> ROLLBACK;

Rollback complete.

Question.No.5: Changing a table definition using ALTER

SQL> ALTER TABLE BRANCH_TEMP ADD PHONE VARCHAR2(10);

Table altered.

SQL> SELECT * FROM BRANCH_TEMP;

BRANCHNO STREET CITY POSTCODE PHONE


--------------- -------------- ------------------- ---------------- ---------------
01 STD ROAD HYDERABAD 500010

02 SD ROAD SECBAD 500007

03 JNTU ROAD HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520010

https://mguugcs.blogspot.in Page.No: 16
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE

Question.No.6: Removing a table using DROP

SQL> DROP TABLE BRANCH_TEMP;

Table dropped.

SQL> DESC BRANCH_TEMP;

ERROR:

ORA-04043: object BRANCH_TEMP does not exist

Question.No.7: Removing rows in table using TRUNCATE

SQL> CREATE TABLE TEMP_BRANCH AS SELECT * FROM BRANCH;

Table created.

SQL> SELECT * FROM TEMP_BRANCH;

BRANCHNO STREET CITY POSTCODE PHONE


--------------- -------------- ------------------- ---------------- ---------------
01 STD ROAD HYDERABAD 500010

02 SD ROAD SECBAD 500007

03 JNTU ROAD HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520010

SQL> TRUNCATE TABLE TEMP_BRANCH;

Table truncated.

SQL> SELECT * FROM TEMP_BRANCH;

no rows selected

Question.No.8: Create an index and Removing an index.

SQL> CREATE INDEX BRNCH_IX ON BRANCH_TEMP(BRANCHNO);

Index created.

SQL> DROP INDEX BRNCH_IX;

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.

SQL> CREATE TABLE BRANCH_TEMP AS SELECT * FROM BRANCH;


Table created.

SQL> SELECT * FROM BRANCH_TEMP;

BRANCHNO STREET CITY POSTCODE


--------------- -------------- ------------------- ----------------
01 STD ROAD HYDERABAD 500010

02 SD ROAD SECBAD 500007

03 JNTU ROAD HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520008

SQL> UPDATE BRANCH_TEMP SET POSTCODE='520010' WHERE BRANCHNO='05';

1 row updated.

SQL> COMMIT;

Commit complete.

SQL> SELECT * FROM BRANCH_TEMP;

BRANCHNO STREET CITY POSTCODE


--------------- -------------- ------------------- ----------------
01 STD ROAD HYDERABAD 500010

02 SD ROAD SECBAD 500007

03 JNTU ROAD HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520010

Question.No.10: List full details of all staff.

SQL> SELECT * FROM STAFF;

STAFFNO FNAME LNAME POSITION SEX DOB SALARY BRANCHNO


======= ======= ======== ========= ===== ======= ========= ==========
DH001 ARUN ROY SUPERVISOR M 10-01-91 30000 01

DH002 BHARATHI DEVI MANAGER F 01-05-91 54600 02

DH003 CHARAN KUMAR SUPERVISOR M 15-08-91 25000 03

DH004 DHARANI RANI ASSISTANT F 20-11-91 21000 02

DH005 EMMANUEL RAJ MANAGER M 04-02-90 60000 04

https://mguugcs.blogspot.in Page.No: 18
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE

Question.No.11: List all staff with a salary greater than ₹10000


SQL> SELECT * FROM STAFF WHERE SALARY>10000;
STAFFNO FNAME LNAME POSITION SEX DOB SALARY BRANCHNO
---------- ----------- ---------- ---------- -- --------- --------------- ------------ ----------------
DH001 ARUN ROY SUPERVISOR M 10-JAN-91 30000 01

DH002 BHARATHI DEVI MANAGER F 01-MAY-91 52000 02

DH003 CHARAN KUMAR SUPERVISOR M 15-AUG-91 25000 03

DH004 DHARANI RANI ASSISTANT F 20-NOV-91 20000 02

DH005 EMMANUEL RAJ MANAGER M 04-FEB-90 60000 04

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

DH002 BHARATHI DEVI 52000

DH003 CHARAN KUMAR 25000

DH004 DHARANI RANI 20000

DH005 EMMANUEL RAJ 60000

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;

CLIENTNO FNAME LNAME CLIENTNO PROPERTYNO COMMENTS


-------------- ---------- ---------- --------------- ------------------ ------------------
001 ANIL KUMAR 001 PA001

002 BHARATH RAO 002 PA002

003 CHARITHA KIRAN 003 PA003 GOOD

004 DHINESH NARAYAN 004 PG001 NICE

005 ESHWAR PRASAD 005 PG002 GOOD

Question.No.18: Produce a status report on property viewings.

SQL> SELECT P.PROPERTYNO, STREET, CITY, CLIENTNO, VIEWDATE, COMMENTS FROM PROPERTYFORRENT
P LEFT JOIN VIEWING V ON P.PROPERTYNO = V.PROPERTYNO;

PROPERTYNO STREET CITY CLIENTNO VIEWDATE COMMENTS


----------------- -------------- ---------- -------------- --------------- ------------------
PA001 JBHILLS HYDERABAD 001 10-FEBRUARY-18

PA002 BJHILLS HYDERABAD 002 11-FEBRUARY-18

PA003 MADHAPUR HYDERABAD 003 15-MARCH-18 GOOD

PG001 MINIROAD AMARAVATI 004 15-MARCH-18 NICE

PG002 MAINROAD AMARAVATI 005 20-MARCH-18 GOOD

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);

STAFFNO FNAME LNAME POSITION SEX DOB SALARY BRANCHNO


------------ ------------ ---------- ---------- ----- ------- ------------ ---------- ---------------
DH002 BHARATHI DEVI MANAGER F 01-MAY-91 52000 02

DH004 DHARANI RANI ASSISTANT F 20-NOV-91 20000 02

Question.No.20: List the addresses of all branch offices in Amaravati or Hyderabad


SQL> SELECT * FROM BRANCH WHERE CITY='AMARAVATI' OR CITY ='HYDERABAD';

BRANCHNO STREET CITY POSTCODE


--------------- ------------ ------------- --------------
01 UPPAL HYDERABAD 500010

03 KUKATPALLY HYDERABAD 500072

04 MG ROAD AMARAVATI 520001

05 ELR ROAD AMARAVATI 520008

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 ;

STAFFNO FNAME LNAME POSITION SALARY


------------- ------------- ------------- --------------- ---------------
DH001 ARUN ROY SUPERVISOR 30000

DH003 CHARAN KUMAR SUPERVISOR 25000

DH004 DHARANI RANI ASSISTANT 20000

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

Question.No.24: How many different properties were viewed in February 2018?

SQL> SELECT COUNT(DISTINCT PROPERTYNO) AS VIEWS_IN_FEBRUARY FROM VIEWING

WHERE VIEWDATE BETWEEN '1-FEBRUARY-18' AND '28-FEBRUARY-18';

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.26: Find the minimum, maximum, and average staff salary.

SQL> SELECT MAX(SALARY), MIN(SALARY), AVG(SALARY) FROM STAFF;

MAX(SALARY) MIN(SALARY) AVG(SALARY)


----------------- -------------------- --------------------
60000 20000 37400

Question.No.27: 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 TOTAL_SALARY FROM


STAFF GROUP BY BRANCHNO ORDER BY BRANCHNO;

BRANCHNO STAFFCOUNT TOTAL_SALARY


--------------- ------------------ --------------------
01 1 30000

02 2 72000

03 1 25000

04 1 60000

Question.No.28: List all managers and supervisors.

SQL> SELECT STAFFNO, FNAME, LNAME, POSITION FROM STAFF WHERE POSITION IN ('MANAGER',
'SUPERVISOR');

STAFFNO FNAME LNAME POSITION


------------ ------------- ---------- ----------------
DH001 ARUN ROY SUPERVISOR

DH002 BHARATHI DEVI MANAGER

DH003 CHARAN KUMAR SUPERVISOR

DH005 EMMANUEL RAJ MANAGER

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%';

OWNERNO FNAME LNAME ADDRESS TEL_NO


-------------- ------------- --------------- ---------------- ---------------------
PO003 KALPANA U HYDERABAD 9490094000

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;

STAFFNO FNAME LNAME SALARY


------------ -------------- -------------- -------------
DH005 EMMANUEL RAJ 60000

DH002 BHARATHI DEVI 52000

DH001 ARUN ROY 30000

DH003 CHARAN KUMAR 25000

DH004 DHARANI RANI 20000

Question.No.32: Produce an abbreviated list of properties arranged in order of property type.

SQL> SELECT PROPERTYNO, TYPE, ROOMS, RENT FROM PROPERTYFORRENT ORDER BY TYPE;

PROPERTYNO TYPE ROOMS RENT


----------------- --------- -------------- ------------
PA003 INDI 3 25000

PG001 INDI 6 40000

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

GROUP BY BRANCHNO ORDER BY BRANCHNO;

BRANCHNO STAFFCOUNT TOTALSAL


--------------- ----------------- ---------------
01 1 30000

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.

SQL> SELECT BRANCHNO, COUNT(STAFFNO) AS STAFFCOUNT, SUM(SALARY) AS TOTALSAL FROM STAFF


GROUP BY BRANCHNO HAVING COUNT(STAFFNO) > 1 ORDER BY BRANCHNO;

BRANCHNO STAFFCOUNT TOTALSAL


---------------- ------------------- -------------------
02 2 72000

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');

STAFFNO FNAME LNAME POSITION


------------ ------------ ---------- ------------------
DH003 CHARAN KUMAR SUPERVISOR

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);

STAFFNO FNAME LNAME POSITION SALDIFF


------------ ------------ ------------ ---- ---------- -------------
DH002 BHARATHI DEVI MANAGER 14600

DH005 EMMANUEL RAJ MANAGER 22600

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'));

PROPERTYNO STREET CITY POSTCODE TYPE ROOMS RENT


--------------------- --------------- ------------- ------------------ --------- -------------- --------------
PA002 BJHILLS HYDERABAD 500011 MF 10 100000

PG001 MINIROAD AMARAVATI 520001 INDI 6 40000

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');

STAFFNO FNAME LNAME POSITION SALARY


------------ ------------- ------------- -------------- -------------
DH005 EMMANUEL RAJ MANAGER 60000

DH002 BHARATHI DEVI MANAGER 54600

DH001 ARUN ROY SUPERVISOR 30000

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');

STAFFNO FNAME LNAME POSITION SALARY


------------ ------------ ------------- -------------- ---------------
DH001 ARUN ROY SUPERVISOR 30000
DH002 BHARATHI DEVI MANAGER 54600
DH005 EMMANUEL RAJ MANAGER 60000

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

WHERE C.CLIENTNO = V.CLIENTNO;

CLIENTNO FNAME LNAME PROPERTYNO COMMENTS


------------- ------------ -------------- ------------------- ------------------
001 ANIL KUMAR PA001

002 BHARATH RAO PA002

003 CHARITHA KIRAN PA003 GOOD

004 DHINESH NARAYAN PG001 NICE

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.

SQL> SELECT S.BRANCHNO, S.STAFFNO, FNAME, LNAME, PROPERTYNO FROM STAFF S,


PROPERTYFORRENT P WHERE S.STAFFNO = P.STAFFNO ORDER BY S.BRANCHNO, S.STAFFNO,
PROPERTYNO;

BRANCHNO STAFFNO FNAME LNAME PROPERTYNO


---------------- ---------------- --------------- ------------- -----------------------
01 DH001 ARUN ROY PA001

02 DH002 BHARATHI DEVI PA002

02 DH004 DHARANI RANI PG001

03 DH003 CHARAN KUMAR PA003

04 DH005 EMMANUEL RAJ PG002

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;

BRANCHNO CITY STAFFNO FNAME LNAME PROPERTYNO


---------------- ------------ ------------- ------------ ------------- ----------------------
01 HYDERABAD DH001 ARUN ROY PA001

02 SECBAD DH002 BHARATHI DEVI PA002

02 SECBAD DH004 DHARANI RANI PG001

03 HYDERABAD DH003 CHARAN KUMAR PA003

04 AMARAVATI DH005 EMMANUEL RAJ PG002

Question.No.43: Find the number of properties handled by each staff member, along with the
branch number of the member of staff.

SQL> SELECT S.BRANCHNO, S.STAFFNO, COUNT (*) AS NO_OF_PROPERTIES FROM STAFF S,


PROPERTYFORRENT P WHERE S.STAFFNO = P.STAFFNO GROUP BY S.BRANCHNO, S.STAFFNO ORDER BY
S.BRANCHNO, S.STAFFNO;

BRANCHNO STAFFNO NO_OF_PROPERTIES


----------------- ------------- -----------------------------
01 DH001 1

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.

SQL> CREATE TABLE PROPERTYFORRENT1 AS SELECT PROPERTYNO, CITY FROM PROPERTYFORRENT;

Table created.

SQL> SELECT B.*, P.* FROM BRANCH1 B LEFT JOIN PROPERTYFORRENT1 P ON B.CITY=P.CITY;

BRANCHNO CITY PROPERTYNO CITY


-------------- ------------ ----------------- ----------------
01 HYDERABAD PA001 HYDERABAD

03 HYDERABAD PA001 HYDERABAD

01 HYDERABAD PA002 HYDERABAD

03 HYDERABAD PA002 HYDERABAD

01 HYDERABAD PA003 HYDERABAD

03 HYDERABAD PA003 HYDERABAD

04 AMARAVATI PG001 AMARAVATI

05 AMARAVATI PG001 AMARAVATI

04 AMARAVATI PG002 AMARAVATI

05 AMARAVATI PG002 AMARAVATI

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;

BRANCHNO CITY PROPETYNO CITY


-------------- ---------- --------------- ----------
01 HYDERABAD PA001 HYDERABAD

01 HYDERABAD PA002 HYDERABAD

01 HYDERABAD PA003 HYDERABAD

03 HYDERABAD PA001 HYDERABAD

03 HYDERABAD PA002 HYDERABAD

03 HYDERABAD A003 HYDERABAD

04 AMARAVATI PG001 AMARAVATI

https://mguugcs.blogspot.in Page.No: 27
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
04 AMARAVATI PG002 AMARAVATI

05 AMARAVATI PG001 AMARAVATI

05 AMARAVATI PG002 A MARAVATI

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;

BRANCHNO CITY PROPERTYNO CITY


--------------- ------------- ----------------- --------------
01 HYDERABAD PA001 HYDERABAD

03 HYDERABAD PA001 HYDERABAD

01 HYDERABAD PA002 HYDERABAD

03 HYDERABAD PA002 HYDERABAD

01 HYDERABAD PA003 HYDERABAD

03 HYDERABAD PA003 HYDERABAD

04 AMARAVATI PG001 AMARAVATI

05 AMARAVATI PG001 AMARAVATI

04 AMARAVATI PG002 AMARAVATI

05 AMARAVATI PG002 AMARAVATI

02 SECBAD

11 rows selected.

Question.No.47: Find all staff who work Amaravati branch office.

SQL> SELECT STAFFNO, FNAME, LNAME, POSITION FROM STAFF S WHERE EXISTS (SELECT * FROM BRANCH
B WHERE S.BRANCHNO = B.BRANCHNO AND CITY='AMARAVATI');

STAFFNO FNAME LNAME POSITION


-------- ------------- -------------- -- ----------
DH005 EMMANUEL RAJ MANAGER

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.

SQL> SELECT * FROM BRANCH3VIEW;

STAFF FNAME LNAME POSITION SEX -DOB SALARY BRANCHNO


----- ---------- ---------- ---------- -- --------- ---------- ----- ------------ --------- ----------------
DH003 CHARAN KUMAR SUPERVISOR M 15-AUG-91 25000 03

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.

SQL> SELECT * FROM STAFF3VIEW;

STAFFNO FNAME LNAME POSITION SEX


------------ ------------- -------------- -------------- -------
DH003 CHARAN KUMAR SUPERVISOR M

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;

BRANC STAFF CNT


----- ----- ----------
01 DH001 1
03 DH003 1
02 DH002 1
02 DH004 1
04 DH005 1

Question.No.53: Removing a view using DROP VIEW

SQL> DROP VIEW 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.

SQL> GRANT ALL PRIVILEGES ON STAFF TO C##MANAGR WITH GRANT OPTION;

Grant succeeded
Question.No.55: Give users C##Personnel and C##Director the privileges SELECT and UPDATE
on column salary of the Staff table

SQL> CREATE USER C##PERSONNEL IDENTIFIED BY PERS1;

User created.

SQL> CREATE USER C##DIRECTOR IDENTIFIED BY DIR1 ;


User created.
SQL> GRANT SELECT, UPDATE(SALARY) ON STAFF TO C##PERSONNEL, C##DIRECTOR;
Grant succeeded.

SQL> GRANT SELECT ON BRANCH TO PUBLIC;

Grant succeeded.
Question.No.56: Revoke the privilege SELECT on the Branch table from all users.

SQL> REVOKE SELECT ON BRANCH FROM PUBLIC;

Revoke succeeded

Question.No.57: Revoke all privileges you have given to Director on the Staff table.

SQL> REVOKE ALL PRIVILEGES ON STAFF FROM C##DIRECTOR;

Revoke succeeded.

https://mguugcs.blogspot.in Page.No: 30
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE

Question.No.58: Demonstrate exceptions in PL/SQL

SQL> SET SERVEROUTPUT ON;

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> /

GIVEN STAFF MEMBER DOES NOT EXIST!

PL/SQL procedure successfully completed.

Question.No.59: Demonstrate cursors in PL/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

PL/SQL procedure successfully completed.

Question.No.60: Write PL/SQL queries to create procedures

SQL> CREATE OR REPLACE PROCEDURE PRC_STAFF


2 AS
3 BEGIN
4 UPDATE STAFF SET SALARY = SALARY + (SALARY *.05)
5 WHERE BRANCHNO = '02';
6 DBMS_OUTPUT.PUT_LINE(' UPDATED 5% SALARY ');
7 END;
8 /

Procedure created.

SQL> EXEC PRC_STAFF;


UPDATED 5% SALARY

PL/SQL procedure successfully completed.

SQL> SELECT * FROM STAFF;

STAFF FNAME LNAME POSITION SEX DOB SALARY BRANCHNO


----- ---------- ---------- ---------- -- --------- ---------- ---------------- ------------ --------------
DH001 ARUN ROY SUPERVISOR M 10-JAN-91 30000 01
DH002 BHARATHI DEVI MANAGER F 01-MAY-91 54600 02
DH003 CHARAN KUMAR SUPERVISOR M 15-AUG-91 25000 03
DH004 DHARANI RANI ASSISTANT F 20-NOV-91 21000 02
DH005 EMMANUEL RAJ MANAGER M 04-FEB-90 60000 04

Question.No.61: Write PL/SQL queries to create functions

SQL> CREATE OR REPLACE FUNCTION FUN_ADD(A IN NUMBER, B IN NUMBER)


2 RETURN NUMBER
3 IS
4 C NUMBER(5);
5 BEGIN
6 C :=A+B;
7 RETURN C;
8 END;
9 /

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 /

Addition Result is: 300

PL/SQL procedure successfully completed.

Question.No.62: Write PL/SQL queries to create package.

SQL> create or replace package hr


2 as
3 procedure hire (e in number, n in varchar2, j in varchar2, s in number, d in number);
4 procedure fire(e in number);
5 end;
6 /

Package created.

SQL> create or replace package body hr


2 as
3 procedure hire(e in number, n in varchar2, j in varchar2, s in number, d in number)
4 is
5 begin
6 insert into emp(empno, ename, job,sal,deptno) values(e,n,j,s,d);
7 commit;
8 end hire;
9 procedure fire(e in number)
10 is
11 begin
12 delete from emp where empno=e;
13 commit;
14 end fire;
15 end;
16 /

Package body created.

SQL> SELECT * FROM EMP;

EMPNO ENAME JOB SAL DEPTNO


---------- ---------- ---------- ---------- ------------------ ---------------
101 ARUN CLERK 5000 10
102 BHARATH TYPIST 5000 20
103 CHARITHA MANAGER 10000 10

SQL> EXECUTE HR.HIRE(555, 'AAA', 'CLERK', 4500, 20);

PL/SQL procedure successfully completed.

https://mguugcs.blogspot.in Page.No: 33
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE
SQL> SELECT * FROM EMP;

EMPNO ENAME JOB SAL DEPTNO


---------- ---------- ---------- ---------- --------------- --------------
101 ARUN CLERK 5000 10
102 BHARATH TYPIST 5000 20
103 CHARITHA MANAGER 10000 10
555 AAA CLERK 4500 20

SQL> EXECUTE HR.FIRE(555);

PL/SQL procedure successfully completed.

SQL> SELECT * FROM EMP;

EMPNO ENAME JOB SAL DEPTNO


---------- ---------- ---------- ---------- ---------- --------------
101 ARUN CLERK 5000 10
102 BHARATH TYPIST 5000 20
103 CHARITHA MANAGER 10000 10

Question.No.63: Write PL/SQL queries to create triggers.

SAL>CREATE OR REPLACE TRIGGER T_STAFF


2 BEFORE
3 INSERT OR
4 UPDATE OF salary OR
5 UPDATE OF branchno OR
6 DELETE
7 ON STAFF
8 BEGIN
9 CASE
10 WHEN INSERTING THEN
11 DBMS_OUTPUT.PUT_LINE('Msg from Triggger--> Inserting new Records');
12 WHEN UPDATING('salary') THEN
13 DBMS_OUTPUT.PUT_LINE('Msg from Triggger--> Updating the salary');
14 WHEN UPDATING('branchno') THEN
15 DBMS_OUTPUT.PUT_LINE(' Msg from Triggger--> Updating Branch Number');
16 WHEN DELETING THEN
17 DBMS_OUTPUT.PUT_LINE('Msg from Triggger--> Deleting the Rows');
18 END CASE;
19 END;
SQL>/

Trigger created.

SQL> INSERT INTO STAFF VALUES ('DH006', 'SUNDARA', 'KRISHNA', 'CEO', 'M', '20-APRIL-1969', 85000,
'03');

Msg From TriggerInserting new Records

1 row created.

https://mguugcs.blogspot.in Page.No: 34
B.SC-II YEAR IV-SEMESTER COMPUTER SCIENCE

Question.No.64: Write PL/SQL queries using Recursion

SQL> create or replace function factorial (i NUMBER)


2 return NUMBER
3 is
4 begin
5 if i = 1
6 then
7 return 1;
8 else
9 return i*factorial(i-1);
10 end if;
11 end;

SQL> BEGIN
2 DBMS_OUTPUT.PUT_LINE('Factorial ='||FACTORIAL(4));
3 END;

SQL> /
Factorial =24

PL/SQL procedure successfully completed.

*****

https://mguugcs.blogspot.in Page.No: 35

You might also like