視圖(view):站在不同的角度去看待同一份數(shù)據(jù)
創(chuàng)建視圖對象、刪除視圖對象
表復(fù)制:create table dept2 as select * from dept;
dept2表中數(shù)據(jù):
select * from dept2;

創(chuàng)建視圖對象:
create view dept2_view as select * from emp;刪除視圖對象:
drop view dept2_view;
注意:只有DQL語句才能以view的形式創(chuàng)建
create view view_name as DQL語句;
作用:
可以面向視圖對象進(jìn)行增刪改查,
對視圖對象的增刪改查,會導(dǎo)致原表被操作!
(視圖的特點(diǎn):通過對視圖的操作,會影響到原表數(shù)據(jù)。)

面向視圖查詢
select * from dept2_view ;面向視圖插入
insert into dept2_view(deptno , dname , loc) values(60 ,' SALES','BEIJING' );
mysql > select * from dept2 ;

面向視圖刪除
delete from dept2_view;查詢原表數(shù)據(jù)
select * from dept2;

//創(chuàng)建視圖對象
create view
? emp_dept_view
as
? select
? ? e.ename , e.sal , d.dname
? from
? ? emp e
? join
? ? dept d
? on
? ? e . deptno = d.deptno;
視圖的使用場景(方便、簡化開發(fā)、利于維護(hù))
? 假設(shè)有一條非常復(fù)雜的SQL語句,而這條SQL語句需要在不同的位置上反復(fù)使用每一次使用這個sql語句的時候都需要重新編寫,可以把這條復(fù)雜的SQL語句以視圖對象的形式新建。
? 在需要編寫這條SQL語句的位置直接使用視圖對象,可以大大簡化開發(fā)。
? 并且利于后期的維護(hù),因?yàn)樾薷牡臅r候也只需要修改一個位置就行,只需要修改視圖對象所映射的SQL語句。
我們以后面向視圖開發(fā)的時候,使用視圖的時候可以像使用table一樣??梢詫σ晥D進(jìn)行增刪改查等操作。視圖不是在內(nèi)存當(dāng)中,視圖對象也是存儲在硬盤上的,不會消失。
視圖對應(yīng)的語句只能是DQL語句
但是視圖對象創(chuàng)建完成后,可以對視圖進(jìn)行增刪改查(CRUD,C:Create 增,R:Retrive 查/檢索,U:Update 改,D:Delete 刪)
create view
? emp_dept_view
as
? DQL