mysql資料庫的視圖(mysql查詢視圖)

本文目錄一覽:

MySQL視圖

使用示例

使用示例

使用示例

檢查選項的使用

mysql是可以基於視圖創建視圖,它會檢查視圖所依賴的視圖的規則

如果再基於v2創建視圖v3,v3沒有定義檢查選項,則此時向v3中插入數據時,不會檢查是否滿足v3的條件,但是會檢查是否滿足v2和v1的條件

local選項相比於cascaded,不會自動向上添加選項

如創建一個視圖,此時視圖中只包含一條數據

例如,現要查詢每個學生選修的課程(多對多,三張表),將SQL保存到視圖,以後再想查詢,直接select * from 視圖即可

mysql中,什麼是視圖,視圖的作用是什麼

什麼是視圖?

視圖(view)是一種虛擬存在的表,是一個邏輯表,本身並不包含數據。作為一個select語句保存在數據字典中的。

通過視圖,可以展現基表(用來創建視圖的表)的部分數據;視圖數據來自定義視圖的查詢中使用的表,使用視圖動態生成。

為什麼要使用視圖?因為視圖的諸多優點,如下:

1)簡單:使用視圖的用戶完全不需要關心後面對應的表的結構、關聯條件和篩選條件,對用戶來說已經是過濾好的複合條件的結果集。

2)安全:使用視圖的用戶只能訪問他們被允許查詢的結果集,對錶的許可權管理並不能限制到某個行某個列,但是通過視圖就可以簡單的實現。

3)數據獨立:一旦視圖的結構確定了,可以屏蔽表結構變化對用戶的影響,源表增加列對視圖沒有影響;源表修改列名,則可以通過修改視圖來解決,不會造成對訪問者的影響。

總而言之,使用視圖的大部分情況是為了保障數據安全性,提高查詢效率。

mysql 視圖

1、什麼是視圖

視圖:MySQL從5.0.1版本開始提供視圖功能。一種虛擬存在的表,行和列的數據來自定義視圖的查詢中使用的表,並且是在使用視圖時動態生成的,只保存了sql邏輯,不保存查詢結果

2、視圖應用場景

多個地方用到同樣的查詢結果該查詢結果使用的sql語句較複雜

4、視圖的好處

使用簡單安全數據獨立 

5、創建或者修 改視圖

創建視圖的語法:

修改視圖的語法

6、視圖更新性

視圖的可更新性和視圖中查詢的定義有關係,以下類型的視圖是不能更新的。(1)包含以下關鍵字的sql語句:分組函數、distinct、group  by、having、union或者union all(2)常量視圖(3)Select中包含子查詢(4)join(5)from一個不能更新的視圖(6)where子句的子查詢引用了from子句中的表

7、刪除視圖的語法

用戶可以一次刪除一個或者多個視圖,前提是必須有該視圖的drop許可權。

8、查看視圖結構的語法

show tables;如果需要查詢某個視圖的定義,可以使用show create view命令進行查看

mysql視圖的作用是什麼

視圖是從一個或多個表中查詢出來的數據保存為視圖,是一種虛擬存在的表。

注意:

資料庫中只存放了視圖的定義,而沒有存放視圖中的數據,這些數據存放在原來的表中。

使用視圖查詢數據時,資料庫系統會從原來的表中取出對應的數據。

視圖中的數據依賴於原來表中的數據,一旦表中數據發生改變,顯示在視圖中的數據也會發生改變。

2、為什麼要使用視圖

重複利用SQL語句

簡化SQL查詢,快速取數據

只用知道表的部分結構

保護數據,根據特定授權(分配用戶一定許可權,安全性)

更改數據格式,視圖可返回與底層表的格式不同的數據表,展現出來。

3、視圖與表的區別:

表要佔用磁碟空間,視圖不需要

視圖不能添加索引

使用視圖可以簡化查詢

視圖可以提高安全性

4 .創建視圖

CREATE VIEW語法

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

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]

解釋::

OR REPLACE: 替換重複視圖名(可選)

ALGORITHM:可選的ALGORITHM子句是對標準SQL的MySQL擴展

可取三個值:MERGE、TEMPTABLE或UNDEFINED。如果沒有ALGORITHM子句,默認演算法是UNDEFINED(未定義的)。演算法會影響MySQL處理視圖的方式。

對於MERGE,會將引用視圖的語句的文本與視圖定義合併起來,使得視圖定義的某一部分取代語句的對應部分。

對於TEMPTABLE,視圖的結果將被置於臨時表中,然後使用它執行語句。

對於UNDEFINED,MySQL將選擇所要使用的演算法。如果可能,它傾向於MERGE而不是TEMPTABLE,這是因為MERGE通常更有效,而且如果使用了臨時表,視圖是不可更新的。

明確選擇TEMPTABLE的1個原因在於,創建臨時表之後、並在完成語句處理之前,能夠釋放基表上的鎖定。與MERGE演算法相比,鎖定釋放的速度更快,這樣,使用視圖的其他客戶端不會被屏蔽過長時間。

mysql 如何查看視圖

1) mysql show table status where comment=’view’;

(說明:Mysql5.1支持視圖,視圖被看作一種抽象表,因此顯示視圖狀態的語句與顯示錶狀態的語句相同,只是在comment列中以『view』區分)

2) mysql select * from information_schema.tables where table_schema=’yourDatabaseName’ and table_type=’view’;

(說明:這種方法通過系統表查找,效果同上,顯示信息更詳細。如果不能正確顯示結果,可能是大小寫的問題,Mysql在不同系統平台不同配置參數下的顯示結果可能不同,注意這點。)

mysql 資料庫怎麼創建視圖

在查詢頁面用語句創建就可以。

1、打開Navicat for MySQL,並登錄到指定資料庫。

2、點擊上方查詢。

3、點擊新建查詢。

4、在空白處寫上視圖創建語句,點擊左上方執行即可。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279842.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:05
下一篇 2024-12-20 15:05

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Unity運行模式下Scene視圖無法拖拽的解決方法

    解決Unity在運行模式下,無法使用滑鼠拖拽Scene視圖的問題,有以下幾個方法。 一、場景模式和運行模式的區別 首先我們需要了解場景模式和運行模式的區別。 場景模式下,我們可以自…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28

發表回復

登錄後才能評論