You are on page 1of 2

-----------------------------------------------------------------------------------

-------------
15th Chapter VIEWS
-----------------------------------------------------------------------------------
-----------
Creating VIEWS

CREATE OR REPLACE VIEW view_employees


AS SELECT employee_id,first_name,
last_name,email
FROM employees
WHERE employee_id BETWEEN 100 and 124;
------------------------------------------------------------
CREATE OR REPLACE VIEW
view_us_countries
AS SELECT country_id,region_id,country_name
FROM countries
WHERE country_name LIKE '%Mexico';
---------------------------------------------------------------
COMPLEX views

CREATE OR REPLACE VIEW view_sales_emp


("first_name","department_name","location_id","employee_id")
AS SELECT e.first_name,d.department_name,d.location_id,e.employee_id
FROM departments d JOIN employees e
USING(manager_id)
WHERE department_name LIKE '%Sales';
-----------------------------------------------------------------------------------
--------------
DML statements & Views

CREATE VIEW view_dept50 AS


SELECT department_id,employee_id,first_name,last_name,salary
FROM employees
WHERE department_id=50;

UPDATE view_dept50
SET department_id=80
WHERE employee_id=120;

-----------------VIEWS with CHECK option------------------------------

CREATE OR REPLACE VIEW view_dept10 AS


SELECT department_id,employee_id,first_name,last_name,salary
FROM employees
WHERE department_id=10
WITH CHECK OPTION CONSTRAINT view_dept10_check ;

UPDATE view_dept10
SET department_id=20
WHERE employee_id=200;

---------------------------VIEWS with Read only


option--------------------------------

CREATE VIEW view_dept20 AS


SELECT department_id,employee_id,first_name,last_name,salary
FROM employees
WHERE department_id=20
WITH READ ONLY;

UPDATE view_dept20
SET department_id=10
WHERE employee_id=201;

---------------------------------------------------------------------------
DELETING views

DROP view view_dept20;


---------------------------------------------------------------------------------
INLINE Views

SELECT e.last_name,e.salary,e.department_id,d.max_salary
FROM employees e,
(SELECT department_id,MAX(salary) max_salary
FROM employees
GROUP BY department_id) d
WHERE e.department_id=d.department_id
AND e.salary=d.max_salary;

TOP-N-ANALYSIS

SELECT ROWNUM AS "Senior Employee" , last_name,hire_date


FROM employees
where ROWNUM<=5
ORDER BY hire_date;

You might also like