日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

视图的学习总结

發布時間:2025/1/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视图的学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.視圖的簡介

???????? mysql 支持兩種表;基本表和視圖,基本表都是使用create table語句創建的,并且是唯一的存儲數據的表,而視圖只是把基本表中的數據組織起來構成一個“虛擬”表的一種命令或者形式,之所以說“虛擬的”,就是因為只用當視圖用于一條語句中的時候,他才能存在。mysql獲取構成視圖公式的命令,執行它,并且像一個真實的表那樣顯示給用戶。

2.視圖的創建

create view towns

select distinct town

from players

一個視圖的內容并沒有被存儲,而是當視圖被引用的時候派生了,這就是說嘛,根據定義,視圖的內容和基本表的內容一樣,對基本的表的更新,就可以再視圖中立即看到,用戶就不用擔心視圖內容的完整性,只要維護基本表的完整性。

注意:可以在一個視圖公式中聲明另一個視圖,也就是說視圖可以嵌套。

3.更新視圖

如果視圖中包含了with? check option 字句,使用update,insert和delete對視圖做出的所用改變都將進行有效性的檢查:

  • 如果更新后的行屬于視圖的內容,那么一條update語句是正確的,
  • 如果新行屬于視圖的內容,那么一條insert語句是正確的。
  • 如果刪除的行屬于視圖的內容,那么delete語句是正確的。
  • 注意:前七個是適合更新的,

  • 視圖是可以嵌套的,那么with check option的檢查在什么樣的程度上執行,如果我們聲明了 with cascaded check option 檢查所有的視圖,使用with local check option 只對將要
    更新的視圖中的調節進行相關的檢查,cascaded是默認的。
  • select 字句不能包含distinct
  • select字句不能包含聚合函數
  • from字句不能包含多個表
  • where字句不能包含一個關聯的子查詢
  • select語句不能包含group by字句
  • select語句不能包含order by字句
  • select語句不能包含一個集合運算符
  • 不能更新一個虛擬的列
  • select字句必須包含from字句中指定的表中所有的列,但這些列不允許空值或者沒有指定默認值
  • ?

    ?

  • 4.?????? 刪除視圖
  • drop? view用來刪除視圖,通過使用drop view,引用了被刪除的視圖的所用的其他視圖也會自動被刪除,當刪除一個基本表的時候,直接或者間接地定義在這表的所用的視圖也被刪除了。

    例如: drop view towns

  • 5.?????? 視圖的應用程序區域
  • 視圖可以用在各種應用程序中

    5.1例程語句的簡化

    例如

    select *

    from playerno

    where playerno in

    (select playerno

    from penalties

    ???????? )

    and town=’straford’

    select town,count(*)

    from players

    where playerno in

    ???????? ( select playerno

    ???????? from penalties

    )

    group br town

    這兩條都使用至少引發一次罰款的球員,因此,可以用一個視圖來定義這條語句

    create view pplayers as

    select *

    from playeron

    where playerno in

    ???????? (select playerno

    ???????? from penalties)

    這樣都可以簡化前面的語句了

    5.2?? select 語句的分部編寫

    例子:對于來自stratford中的每個球員,如果他曾經引發一次罰款,并且罰款額比那些2號球隊打比賽的球員以及為一只first分級的球隊打過一場比賽的球員的平均罰款要高的話,那么就獲取他的名字和首字母

    create view greater as

    select distinct playerno

    from penalties

    where amount >

    (select avg(amout)

    from penalties

    where? palayeron in

    (select playerno

    from matches

    where teamno=2)

    )

    在創建一個視圖。其中包括了那些為first分級的一支球隊比賽過的所用球員

    create view frist as

    select distinct playerno

    from match

    where teamno in(

    select teamno in

    (select teamno

    from teams

    where divison=’first’))

    ?使用這兩個視圖,很輕松的回答了問題

    select nam,initials

    from players

    where town=’stratford’

    and playerno in(select playerno

    from greater)

    and playerno in

    (select playerno

    from? first)

    5.3?? 數據的安全性

    視圖可以用來保護表的一部分

    轉載于:https://www.cnblogs.com/hylaz/archive/2012/11/05/2756041.html

    總結

    以上是生活随笔為你收集整理的视图的学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。