SQL基礎知識——VIEW視圖

2020-10-16 CDA數據分析師

作者:丶平凡世界

來源:SQL資料庫開發

SQL中的視圖是資料庫裡一個比較重要的組成部分,在隔離實體表的前提下還可以讓用戶查詢到需要的數據,可以起到保護底層數據的作用。同時針對不同的人群,視圖也可以起到簡化用戶對數據的理解。

視圖的定義

視圖是可視化的表。

本章講解如何創建、更新和刪除視圖。

CREATE VIEW 語句

在 SQL 中,視圖是基於 SQL 語句的結果集的可視化表。

視圖包含行和列,就像真正的表一樣。視圖中的欄位是一個或多個資料庫中真實表中的欄位。

您可以添加 SQL 函數,在哪裡添加,並將語句連接到視圖,或者您可以呈現數據,就像數據來自單個表一樣。

CREATE VIEW 語法

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

注釋:視圖總是顯示最新數據!每當用戶查詢視圖時,資料庫引擎就使用視圖的 SQL 語句重新構建數據。

CREATE VIEW 實例

我們以表Customers為例

"Customer_GD"(廣東客戶列表)視圖從"Customers"表中列出了所有廣東省的客戶。這個視圖使用下面的 SQL 創建:

CREATE VIEW Customer_GD ASSELECT *FROM CustomersWHERE 省份='廣東省'

我們可以像這樣查詢上面這個視圖:

SELECT * FROM Customer_GD

查看一下視圖中的結果:

下面的我們以"Products"表為示例

我們選取 "Products" 表中所有價格高於平均價格的產品:

CREATE VIEW [Products_Above_Average_Price] ASSELECT 名稱,價格FROM ProductsWHERE 價格>(SELECT AVG(價格) FROM Products)

我們可以像這樣查詢上面這個視圖:

SELECT * FROM [Products_Above_Average_Price]

結果如下:

我們也可以向視圖添加條件。現在,我們僅僅需要查看 "大米" 類的價格:

SELECT * FROM [Products_Above_Average_Price]WHERE 名稱='大米'

這樣就只顯示大米的價格了

更新視圖

您可以使用下面的語法來更新視圖:

CREATE OR REPLACE VIEW 語法

ALTER VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

現在,我們希望向 "Products_Above_Average_Price" 視圖添加 "規格" 列。我們將通過下列 SQL 更新視圖:

ALTER  VIEW [Products_Above_Average_Price] ASSELECT 名稱,價格,規格FROM ProductsWHERE 價格>(SELECT AVG(價格) FROM Products)

我們重新查詢該視圖:

SELECT * FROM [Products_Above_Average_Price]

結果為:

刪除視圖

可以通過 DROP VIEW 命令來刪除視圖。

DROP VIEW 語法

DROP VIEW view_name

例如我們要刪除剛才新建的視圖"Products_Above_Average_Price"

DROP VIEW [Products_Above_Average_Price]

重新查詢視圖後就會顯示該視圖無效

證明視圖已經不存在了。

相關焦點

  • 支招:SQL Server刪除視圖的兩種方法
    SQL Server刪除視圖的方法經常會用的到,下面就為您介紹SQL Server刪除視圖的兩種方法,如果您感興趣的話,不妨一看。當一個視圖不再需要使用時,也可以將其刪除。SQL Server刪除視圖方法1 在Management Studio中刪除視圖下面以刪除「view_例七」為例介紹如何在SQL Server Management Studio中刪除視圖:(1)啟動【SQL Server Management Studio】,連接到本地資料庫默認實例。
  • Angular視圖容器刪除view實例的過程分析
    應用程式調用viewContainer的clear方法清除裡面包含的視圖實例:clear的實現邏輯是,在一個循環裡刪除尾部的視圖實例直至container為空:從detachView的注釋能發現,不僅view實例從view container中移除,並且對應的DOM元素也從HTML頁面中刪除了:/** * Detaches a view from a container. * * This method removes the view from the container's array of active views.
  • SQL基礎知識V2——SQL語句快速參考
    作者:丶平凡世界 來源:SQL資料庫開發今天開始一個新的基礎系列,是有關SQL基礎知識的,以下是一些可以當工具書使用的參考語句,都是固定寫法,需要的時候可以拿出來參考一下,一些不懂的可以暫時先跳過,紫色代碼均是SQL語句的關鍵字~AND / OR 並且/或
  • MySQL技術資料庫基礎操作命令大全,建議收藏
    創建索引create [unique] index inx on my_table(col...)1刪除索引drop index inx1創建視圖create view my_view as select statement1刪除視圖drop view my_view1常用的 sql 基本語句
  • Mysql進階三板斧(一)帶你徹底搞懂View視圖的原理及應用
    視圖是一種虛擬存在的表,行和列的數據來自定義視圖的查詢中使用的表,並且是在使用視圖時動態生成的,只保存了sql邏輯,不保存查詢結果。MySQL在定義視圖上沒什麼限制,基本上所有的查詢都可定義為視圖,同時也支持可更新視圖(當然只有在視圖和行列與基礎表的行列之間存在一一對應關係時才能更新),因此從功能上說MySQL的視圖功能已經很完善了。
  • 數據分析所需掌握的視圖用法,以及視圖所蘊含的分層思想
    視圖是資料庫中一個非常簡單的概念,寫過SQL的人幾乎大致了解視圖。本文除了在回顧視圖的本質及相關操作知識時,會重點闡述它蘊含的分層思想在數據分析工作中的作用。(1)創建視圖create view view_name as select column_one,column_two from test_one where 1=1;
  • MySQL視圖篇,視圖的優缺點以及如何創建視圖
    : 視圖算法1.UNDEFINED 系統自動選擇算法2.MERGE使用的視圖語句與視圖定義合併起來3.TEMPTABLE 結果存入臨時表,然後用臨時表執行語句view_name : 視圖名稱column_list : 屬性列SELECT_STATEMENT :SELECT語句[WITH [CASCADED | LOCAL |] CHECK OPTION
  • MySql基礎,MySql視圖&索引&存儲過程&觸發器
    為了達到這個目的,可以為各部門的領導建立一個視圖,通過該視圖,領導只能看到本部門員工的指定信息。例如,為生產部門建立一個名為 product view 的視圖。通過視圖 product view,生產部門的領導只能看到生產部門員工的工作號、姓名和性別等信息。
  • Oracle Pl/sql的操作大全
    : DBA_SYS_PRIVS: 查詢某個用戶所擁有的系統權限 USER_SYS_PRIVS: 查詢當前用戶所擁有的系統權限 SESSION_PRIVS: 查詢當前用戶所擁有的全部權限 ROLE_SYS_PRIVS: 查詢某個角色所擁有的系統權限 注意: 要以 SYS 用戶登陸查詢這個視圖,否則返回空.
  • ThinkPHP框架實戰講解-視圖解讀
    程序一、視圖渲染模板定位規則:當前模塊/view/當前控制器名(小寫)/當前操作(小寫).html。PHP代碼2、助手函數方式如果控制器未繼承系統基礎控制器類,同樣可以實現視圖模板的輸出,框架提供了助手函數view(),可以使用如下命令:return view();可傳遞參數及數據
  • 如何為自定義視圖添加虛擬視圖?
    >等由於自定義視圖的子視圖是用畫筆繪製的,所以這些子視圖無法被無障礙服務訪問為了解決此種問題,Android系統在API16引入虛擬視圖概念開發人員可以通過虛擬視圖模擬出視圖結構) {super(view);} ...
  • Django 教程——Django中的視圖
    首先,我們從模塊中導入類HttpResponsedjango.http以及Python的日期時間庫接下來,我們定義一個名為geeks_view的函數。import geeks_viewurlpatterns = [ path('', geeks_view),]現在,訪問http://127.0.0.1:8000/,要檢查如何使用Django的MVT(模型,視圖,模板)結構製作基本項目,請訪問創建項目Django。
  • mysql基礎之sql語句分類及實際中的用途
    上節課中老韓說「select * from student」這是sql語句,sql語句是什麼呢?sql語句:結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係資料庫系統。說白了sql語句就是操作資料庫的語言,sql語句從作用上來分可以分為下面四類。
  • 怎麼修改Mysql數據表中的視圖
    視圖就如同mysql基本表一樣,對表能夠進行的一般操作都可以應用於視圖,比如創建,查詢,插入,修改,刪除操作等。下面我們就結合簡單的示例給大家繼續介紹mysql視圖的修改操作。其實視圖的修改就相當於SQL語句的修改。首先我們可以通過cmd命令行工具連接mysql資料庫。
  • 經典SQL語句大全
    基礎創建資料庫CREATE DATABASE database-name 1刪除資料庫drop database dbname1123創建視圖create view viewname as select statement1刪除視圖drop view viewname1
  • SQL語句大全,所有的SQL都在這裡
    來源:https://0x9.me/b5qx3一、基礎1、說明:創建資料庫9、說明:創建視圖:create view viewname as select statement刪除視圖:drop view viewname10、說明:幾個簡單的基本的sql語句選擇:select * from
  • Django REST framework:方法視圖
    DRF提供了一系列裝飾器,使用這些裝飾器可以使方法視圖接收Request對象(注意不是以前Django的HttpRequest對象)返回Response對象(不是HttpResponse對象)。裝飾器api_view方法籤名:@api_view(http_method_names=['GET'])api_view裝飾器是DRF方法視圖的核心,該裝飾器接收一組HTTP方法。
  • 銀行ATM取款機系統項目案例SQL實操
    1、前言與目的為了更好的了解SQL語法與知識體系,本文章以SQLServer2005為案例提高自身對SQL腳本的認識。:為了向客戶顯示信息友好,查詢各表,要求欄位全為中文欄位名3個表 , 對應的視圖為:view_userInfo 、view_cardInfo view_tranInfo-- `view_userInfo 用戶視圖`if exists(select * from sysobjects where name=&39;)drop view view_userInfogocreate
  • 3分鐘短文 | Laravel 給所有視圖追加公共數據
    那麼如何做到給所有視圖都追加公共數據呢? 本文就來說一說。其實,在沒有達到視圖view之前,我們都有機會全局操作公用數據。我們接著在 ViewComposerServiceProvider 伺服器提供者中解決這個問題。
  • sql入門基礎知識(經典)
    常用命令* 顯示所有的資料庫:mysql > show databases;* 創建資料庫將%mysql%/data創建一個文件夾* 默認資料庫* mysql,mysql資料庫的核心資料庫,【不能刪除】* performance_schema,mysql提供記錄數據的資料庫* information_schema,視圖