You are on page 1of 19

2020

PUNJAB UNIVERSITY COLLEGE OF INFORMATION


TECHNOLOGY
LAB12

DATA-BASE
Prepared for Miss. Hareem Aslam
By. Talha Mazhar Bitf19a024
Instructions:
• You must complete all tasks individually. Absolutely NO collaboration is allowed.
• Any traces of plagiarism/cheating would result in an “F” grad e in this course.
• Late submissions will NOT be accepted, in any case.

Submission Procedure:
 You are required to submit PDF file.
 The file should contain the question, the query and the screen short of output after running the query.
 You have to submit your lab file on following email: dbsit19aft@gmail.com The subject of the email
should be RollNumber_LabNumber. e.g. BITF19A123_Lab01

Note: Use following tables for your lab tasks.

 EMP (EMPNO, ENAME, JOB, SAL, HIREDATE, COMM, MGR, DEPTNO)


 DEPT (DEPTNO, DNAME, LOC)
 SALGRADE(GRADE,LOSAL,HISAL)
 Dual

What are views?


 A view is a subset of a database that is generated from a query and stored as a permanent object.
 Views represent a subset of the data contained in a table.
 They can join and simplify multiple tables into one virtual table.
 They take up very little storage space because the database contains only the view definition, not the data.
 they can provide results for different calculations (like sum and average) along with the stored data, and can limit the
degree to which tables are exposed to the outer world.

Why we use views?


 Views are used to implement the security mechanism in SQL Server.
 Views are generally used to restrict the user from viewing certain columns and rows. 
 Views display only the data specified in the query, so it shows only the data that is returned by the query defined
during the creation of the view.

TASK 1

CREATE VIEW NAMED ‘SALES_VIEW’ TO HOLD ALL INFORMATION OF THOSE EMPLOYEES WHOSE JOB IS
SALESMAN.GIVE SUITABLE ALIASES TO ALL THE COLUMNS. DISPLAY THE DATA OF VIEW.

create OR replace

VIEW SALES_VIEW (EMPLOYEE,NAME,JOB,MGR,HIREDATE,SALARY,COMMISSSION,DEPT_NO)

AS

SELECT *

FROM emp

WHERE job = 'SALESMAN';


TASK 2
ENAME OF EMPNO 7521 IS WARD

UPDATE NAME OF EMPNO 7521 AS YOUR NAME IN EMP TABLE.(NOW CHECK WHETHER THE DATA IS
UPDATED IN EMPTABLE AND SALES_VIEW?)

(SHOW SCREEN OF BOTH TABLES.FOR EMP TABLE ONLY SHOW DATA OF SALESMAN)

UPDATE emp

SET ename = 'TALHA'

WHERE empno = 7521;


TASK 3

UPDATE NAME OF EMPNO 7521 AS WARD IN SALES_VIEW.(NOW CHECK WHETHER THE DATA IS UPDATED
IN EMPTABLE AND SALES_VIEW?)

UPDATE SALES_VIEW

SET NAME = 'WARD'

WHERE EMPLOYEE = 7521;

SELECT * FROM SALES_VIEW


TASK 4

CREATE A VIEW NAMED ‘FUTURE_VIEW’ FOR ANY TABLE THAT NOT EXIST YET I.E ‘UPCOMING_TABLE’.

(READ ABOUT THIS FROM BOTTOM OF DOCUMENT)


CREATE FORCE VIEW FUTURE_VIEW

AS

SELECT *

FROM upcoming_table;

Task 5
NOW CREATE THE TABLE ‘UPCOMING_TABLE’ WITH AT LEAST 4 COLUMNS OF YOUR OWN CHOICE, FILL
TABLE WITH DUMMY DATA AND CHECK WHETHER DATA IS UPDATE IN ABOVE VIEW OR NOT?

CREATE TABLE UPCOMING_TABLE

(CHR_ID NUMBER(30),

TEAM VARCHAR2(20),

PLNAME VARCHAR2(20),

ABILITY VARCHAR2(16));

INSERT INTO UPCOMING_TABLE

VALUES (81293831, 'CRICKET', 'SHAHID', 'BOOM');


INSERT INTO UPCOMING_TABLE

VALUES (81293932, 'HOCKEY', 'SOHAIL', 'GOALS');

INSERT INTO UPCOMING_TABLE

VALUES (81294033, 'BHOLARECORD', 'BHOLA', 'RECORD');


SELECT *

FROM UPCOMING_TABLE

TASK 6
INCREMENT THE SALARIES OF ALL SALESMAN IN ‘SALES_VIEW’ BY 25% OF THEIR CURRENT SALARY.
DISPLAY THE BASE TABLE AND VIEW. COMPARE THE RESULTS .
UPDATE SALES_VIEW

SET SALARY = SALARY + (SALARY * 0.25);

TASK 7

RENAME THE ‘FUTURE_VIEW’ TO ‘CURRENT_VIEW’.


SHOW THE SCREENSHOTS OF RESULT.
RENAME FUTURE_VIEW TO CURRENT_VIEW;
TASK 8

MAKE CURRENT_VIEW READ ONLY.


CREATE OR REPLACE

VIEW CURRENT_VIEW

AS

SELECT *

FROM UPCOMING_TABLE

WITH READ ONLY;


TASK 9

TRY TO UPDATE SOME ROWS OF UPCOMING TABLE.

(DISPLAY BOTH THE TABLES)


UPDATE UPCOMING_TABLE

SET CHR_ID = 50000

WHERE TEAM = 'AUSTRALIA';

TASK 10

TRY TO UPDATE SOME ROWS OF CURRENT_VIEW. WHAT ARE THE RESULTS?

UPDATE CURRENT_VIEW

SET CHR_ID = 50000

WHERE TEAM = 'AUSTRALIA';


TASK 11

CREATE A VIEW NAMED MYDEPARTMENT THAT HOLD INFORMATION OF ALL THE EMPLOYEE NAMES AND
THEIR DEPARTMENTS.

DISPLAY THE VIEW.

CREATE VIEW MYDEPARTMENT

AS

SELECT e.ename EMPNAME, d.dname DEPTNAME

FROM emp e, dept d

WHERE e.deptno = d.deptno;


TASK 12

APPLY WITH CHECK OPTION IN MYDEPARTMENT.

CREATE

OR

REPLACE VIEW MYDEPARTMENT

AS

SELECT e.ename EMPNAME, d.dname DEPTNAME

FROM emp e, dept d

WHERE e.deptno = d.deptno

WITH CHECK OPTION;

TASK 13

UPDATE ANY NAME IN MY DEPARTMENT.WHAT ARE THE RESULTS?

SHOW BOTH TABLES.

SELECT *

FROM MYDEPARTMENT
UPDATE MYDEPARTMENT

SET EMPNAME = 'TALHA'

WHERE DEPTNAME = 'SALES';

TASK 14

DROP ALL THE VIEWS YOU HAVE CREATED

DROP VIEW MYDEPARTMENT


DROP VIEW SALES_VIEW

DROP VIEW CURRENT_VIEW


TASK 15

MENTION SOME ADVANTAGES OF CREATING VIEWS.

GOOD LUCK 😊

Force view:
You can create view of already present tables. But what if you want to create a view of the table
which is even not present and you will create it in future.
Here is the solution.
 FORCE keyword is used while creating a view, forcefully.
 This keyword is used to create a View even if the table does not exist.
 After creating a force View if we create the base table and enter values in it,
the view will be automatically updated.
Syntax:
It has the same syntax except to need to add force keyword before view keyword.
i.e..
create force view name_of_view as select * from myTable

You might also like