什么是視圖
1.視圖是一種根據查詢(也就是SELECT表達式)定義的數據庫對象,用于獲取想要看到和使用的局部數據。
2.視圖有時也被成為“虛擬表”。
3.視圖可以被用來從常規表(稱為“基表”)或其他視圖中查詢數據。
4.相對于從基表中直接獲取數據,視圖有以下好處:
●訪問數據變得簡單
●可被用來對不同用戶顯示不同的表的內容
用來協助適配表的結構以適應前端現有的應用程序。
視圖作用:
●提高檢索效率
●隱藏表的實現細節【面向視圖檢索】
創建視圖
如下示例:查詢員工的姓名,部門,工資入職信息等信息。
select ename,dname,sal,hiredate,e.deptno from emp e,dept d where e.deptno
= e.deptno and e.deptno = 10;
為什么使用視圖?因為需求決定以上語句需要在多個地方使用,如果頻繁的拷貝以上代碼,會給維護帶來成本,視圖可以解決這個問題。
create view v_dept_emp as select ename,dname,sal,hiredate,e.deptno from emp e,dept d where e.deptno
= e.deptno and e.deptno = 10;
create view v_dept_avg_sal_grade as select a.deptno, a.avg_sal, b.grade
from (select deptno, avg(sal) avg_sal from emp group by deptno) a, salgrade b
where a.avg_sal between b.losal and b.hisal; /*注意mysql不支持子查詢創建視圖*/
修改視圖
alter view v_dept_emp as select ename,dname,sal,hiredate,e.deptno from e
mp e,dept d where e.deptno = 20;
刪除視圖
drop view if exists v_dept_emp;