SQL學(xué)習(xí)筆記——視圖

視圖(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 ;

原表數(shù)據(jù)變了
  • 面向視圖刪除
    delete from dept2_view;

  • 查詢原表數(shù)據(jù)
    select * from dept2;

刪除后,原表數(shù)據(jù)清空了

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容