MySQL視圖篇,視圖的優缺點以及如何創建視圖

2021-01-11 程式設計師日記

視圖,虛擬表,從一個表或多個表中導出來的表,作用和真實表一樣,包含一系列帶有行和列的數據 視圖中,用戶可以使用SELECT語句查詢數據,也可以使用INSERT,UPDATE,DELETE修改記錄,視圖可以使用戶操作方便,並保障資料庫系統安全

優點及缺點

優點

簡單化,數據所見即所得

安全性,用戶只能查詢或修改他們所能見到得到的數據

邏輯獨立性,可以屏蔽真實表結構變化帶來的影響

缺點

性能相對較差,簡單的查詢也會變得稍顯複雜

修改不方便,特變是複雜的聚合視圖基本無法修改

創建視圖語法詳解

語法結構:

{ CREATE|REPLACE } [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

VIEW view_name [{column_list}]

AS SELECT_STATEMENT

[WITH [CASCADED | LOCAL |] CHECK OPTION]

釋義:

CREATE|REPLACE : 【創建|替換已創建的】視圖

ALGORITHM : 視圖算法

1.UNDEFINED 系統自動選擇算法2.MERGE使用的視圖語句與視圖定義合併起來3.TEMPTABLE 結果存入臨時表,然後用臨時表執行語句view_name : 視圖名稱

column_list : 屬性列

SELECT_STATEMENT :SELECT語句

[WITH [CASCADED | LOCAL |] CHECK OPTION] 表示視圖在更新時保證在視圖的權限範圍內

1.CASCADED 默認值 更新視圖時要滿足所有相關視圖和表的條件,2.LOCAL表示更新視圖時滿足該視圖本身定義的條件即可。示例用表

示例表t_user
示例用表t_user_info

創建視圖示例

# 1_1 在單表中創建視圖

CREATE VIEW test_view_1 AS SELECT `name` FROM t_user;

創建視圖代碼運行成功如圖

# 1_2 查詢視圖

SELECT * FROM test_view_1;

查詢結果如圖所示

# 2_1 創建視圖並指定視圖欄位名

CREATE VIEW test_view_2(username) AS SELECT `name` FROM t_user;

創建視圖代碼運行結果

# 2_2 查詢視圖

SELECT * FROM test_view_2;

如查詢出來的欄位名稱為指定的usernam

# 3_1 在多表中創建視圖

CREATE VIEW test_view_3 (username, userage, usersex) AS SELECT

t_user.`name`,

t_user_info.age,

t_user_info.sex

FROM

t_user,

t_user_info

WHERE

t_user.id = t_user_info.uid;

在多表中創建視圖運行成功

# 3_2 查詢視圖

SELECT * FROM test_view_3;

多表視圖查詢結果

相關焦點

  • 怎麼修改Mysql數據表中的視圖
    本篇文章主要給大家介紹mysql數據表中怎麼進行修改視圖的操作。通俗的說,視圖是由SELECT語句組成的查詢定義的虛擬表,也就是由一張或多張表中的數據組成的。視圖就如同mysql基本表一樣,對表能夠進行的一般操作都可以應用於視圖,比如創建,查詢,插入,修改,刪除操作等。下面我們就結合簡單的示例給大家繼續介紹mysql視圖的修改操作。其實視圖的修改就相當於SQL語句的修改。首先我們可以通過cmd命令行工具連接mysql資料庫。
  • MySql基礎,MySql視圖&索引&存儲過程&觸發器
    要注意區別視圖和數據表的本質,即視圖是基於真實表的一張虛擬的表,其數據來源均建立在真實表的基礎上。使用視圖的時候,還應該注意以下幾點:創建視圖需要足夠的訪問權限。創建視圖的數目沒有限制。視圖可以嵌套,即從其他視圖中檢索數據的查詢來創建視圖。視圖不能索引,也不能有關聯的觸發器、默認值或規則。
  • Revit二次開發,創建系統默認的3D視圖以及3d視圖的盒子
    Revit提供了一個PostableCommand指令集,通過該指令集可以創建很多Revit支持的默認指令。commandData.Application.ActiveUIDocument.Document; using (var transaction = new Transaction(document)) { transaction.Start(Guid.NewGuid().ToString()); //3d視圖通過指令創建
  • 數據分析所需掌握的視圖用法,以及視圖所蘊含的分層思想
    視圖是資料庫中一個非常簡單的概念,寫過SQL的人幾乎大致了解視圖。本文除了在回顧視圖的本質及相關操作知識時,會重點闡述它蘊含的分層思想在數據分析工作中的作用。每次直接調用視圖就可以了。視圖的操作包括創建視圖、修改視圖、刪除視圖、查看視圖,這些操作只影響視圖本身,不會影響對應的基本表。
  • Windows10任務視圖如何刪除記錄?任務視圖的清理方法
    任務視圖是win10系統中非常特殊的一項功能,在Win7/Win8中都沒有其身影,它可以幫助用戶快速開啟曾經使用過的應用,甚至可以創建新的桌面。任務視圖在使用過程當中會產生一定的歷史數據,這些內容多了的話不僅沒有起到快捷的作用,還會影響正常使用,所以需要定期去清理任務視圖。
  • Windows10任務視圖如何刪除記錄?任務視圖的清理方法
    任務視圖是win10系統中非常特殊的一項功能,在Win7/Win8中都沒有其身影,它可以幫助用戶快速開啟曾經使用過的應用,甚至可以創建新的桌面。任務視圖在使用過程當中會產生一定的歷史數據,這些內容多了的話不僅沒有起到快捷的作用,還會影響正常使用,所以需要定期去清理任務視圖。下面小編就跟大家講講任務視圖如何刪除記錄。
  • CAD機械版如何創建視圖,這篇文章可以幫到你
    今天就通過這篇文章,來詳細介紹一下CAD機械版中關於創建視圖的知識,希望可以幫到你。在機械版特有的菜單中下拉可以看到關於創建視圖有3個功能,包括剖切線、方向符號和局部詳圖。1、剖切線點擊該功能後,我們可以任意指定一點為剖切的起始點,在另外一端指定第二點,兩點間的連線代表剖切面,回車確認。
  • Proe-Creo工程圖之創建輔助視圖(向視圖)
    輔助視圖又叫向視圖,它和投影視圖不同之處在於它是沿著零件上某個斜面投影生成的,而一般投影視圖是正投影。在工程圖中,當正投影視圖表達不清楚零件的結構時,可以採用輔助視圖。以下圖為例。方法:1.新建繪圖視圖,進入繪圖環境。2.點擊插入一般視圖,彈出繪圖視圖窗口。1)在視圖類型欄中的視圖方向中選擇【FRONT】,並應用。2)設置比例。在比例欄中設置定製比例為1。
  • 在laravel中怎樣創建視圖和模型?
    在上一篇文章中,我們介紹了在laravel中如何創建控制器,實現了MVC模型三部曲的第一步,今天我們來學習第二步和第三步——創建視圖和模型。二、視圖的創建模型創建了之後,我們來創建視圖,視圖文件存放的位置在resources目錄下的view目錄下面,在resources這個目錄下面,最好新建一個目錄,跟控制器的名稱一一對應。視圖的格式,我們都用「名字+.php「格式或者「名字+.blade.php」這樣的格式。
  • 如何設置圖例構件的視圖方向
    來源:BIM大咖版權歸原作者所有在Revit軟體中,創建構件圖例視圖時,可以為圖例構件屬性面板上定義此圖形的視圖方向,例如牆可以顯示樓層平面和剖面,一些載入的構件可以選擇顯示立面:前(前視圖)、立面:後(後視圖)、立面:左(左視圖)、立面:右(右視圖)
  • 我這麼久,才弄清楚mysql的觸發器、視圖、索引,受益匪淺
    >on < 表名> for each row< 觸發程序 SQL 語句>詳細說明:⚫ ⑴表的擁有者即創建表的用戶可以在表上創建觸發程序,而且一個表上可以創建多個觸發程序。可以進行問題分解,然後將創建多個視圖獲取數據,再將視圖聯合起來就能得到需要的結果了假如因為某種需要,a 表與 b表需要進行合併以組成一個新的表 c,最後 a 表與b表都不 存在了。而由於原來程序中編寫 SQL分別是基於 a 表與 b表查詢的,這就意味著需要重新 編寫大量的 SQL(改成向 c 表去操作數據),而通過視圖就可以不用修改 SQL。
  • 示波器各種視圖模式的優缺點
    示波器觀察波形有三種視圖模式,分別是YT模式、滾動模式、XY模式,雖然多數情況使用YT模式即可,但滾動模式和XY模式如何使用呢?各個模式有什麼樣的優缺點?
  • Django 教程——Django中的視圖
    此響應可以是網頁的HTML內容,重定向,404錯誤,XML文檔或圖像(Web瀏覽器可以顯示的任何內容)Django查看範例使用示例說明如何創建和使用Django視圖。import geeks_viewurlpatterns = [ path('', geeks_view),]現在,訪問http://127.0.0.1:8000/,要檢查如何使用Django的MVT(模型,視圖,模板)結構製作基本項目,請訪問創建項目Django。
  • 如何為自定義視圖添加虛擬視圖?
    大多數的自定義視圖是組合現有的控制項來完成特定的功能但是,有一種自定義視圖是通過畫筆在畫布上畫出自定義的子視圖的,例如日期控制項,顏色選擇面板>等由於自定義視圖的子視圖是用畫筆繪製的,所以這些子視圖無法被無障礙服務訪問為了解決此種問題,Android系統在API16引入虛擬視圖概念開發人員可以通過虛擬視圖模擬出視圖結構
  • 一鍵導出mysql視圖、函數、存儲過程、事件、觸發器的定義腳本
    概述寫這個腳本是因為如果用navicat遷移視圖,可以發現修改視圖內容很不方便,所以導出其中定義來改,如果用navicat是無法實現的。所以就順便整了一鍵導出視圖、函數、存儲過程、事件、觸發器的定義腳本,下面一起來看看吧~一鍵導出腳本腳本明細如下: .
  • 「架構框架」ArchiMate指南3:產品視圖和應用合作視圖
    基本視圖ArchiMate基本視圖包括ArchiMate元素和ArchiMate三個主要層的概念:業務、應用程式和技術。下面列出的是ArchiMate 3.1示例視點表,分為四類,指明了它們所涵蓋的方向和範圍:組合:定義元素的內部組合和聚合的視圖。
  • SQL基礎知識——VIEW視圖
    同時針對不同的人群,視圖也可以起到簡化用戶對數據的理解。視圖的定義視圖是可視化的表。本章講解如何創建、更新和刪除視圖。視圖包含行和列,就像真正的表一樣。視圖中的欄位是一個或多個資料庫中真實表中的欄位。您可以添加 SQL 函數,在哪裡添加,並將語句連接到視圖,或者您可以呈現數據,就像數據來自單個表一樣。
  • MSSQL中的聯合查詢與視圖
    前面幾篇講到SQL資料庫的一些查詢的基本語句,今天分享一下聯合查詢與視圖,這些在實際項目中用的也很多,問題也不少。:關鍵詞View這個視圖其實在前面講資料庫對象的時候就已經提到了,它是由物理表構成的邏輯上的數據集,現在以TableC為例,進行以下實驗:(1)創建視圖V_tc,欄位取TableC中的 gh,name,bm 三個欄位:create view V_tcasselect gh,name,bm from TableC
  • 西瓜:資料庫的視圖,索引操作
    視圖概述視圖和表一樣,也包括幾個被定義的數據列和多個數據行,但就本質而言,這些數據列和數據行來源於視圖所引用的表,所以視圖不是真實存在的物理表,而是一張虛表。基於單表的視圖創建以後,可以通過視圖對源表數據進行添加、刪除、修改和查詢操作。
  • win10任務視圖太礙事?教你快速關閉任務視圖
    Windows10系統的任務視圖是首次加入的任務切換器和虛擬桌面系統,這個功能能夠讓用戶快速打開或者關閉已經打開的窗口,還可以建立新的桌面來使用。但是有的小夥伴用不習慣這個功能想要將其關閉,那麼這個要怎麼關閉呢?來看看Windows10系統如何關閉任務視圖的吧。