mysql之數據庫視圖,mysql查詢視圖數據

本文目錄一覽:

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

使用示例

使用示例

使用示例

檢查選項的使用

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

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

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

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

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

如何在MySQL中利用數據庫表創建視圖

為了不影響其他的數據庫表,新建一張數據庫表t_worker_info,代碼如下:

create

table

t_worker_info(

id

int(8)

primary

key

not

null

auto_increment,

w_id

int(10)

not

null,

w_name

varchar(20)

not

null,

w_age

int(3),

w_sex

varchar(10),

w_birth

varchar(20)

);

創建t_worker_info後,查看一下數據結構,代碼如下:

desc

t_worker_info;

雙擊選中的數據庫,在views鼠標右鍵「create

view…」,打開編輯窗口,並在窗口中輸入代碼,代碼如下:

create

view

`view_worker_info`

as

select

*

from

t_worker_info;

查看創建視圖的基本信息,利用desc或describe語句,代碼如下:

desc

view_worker_info;

查看視圖信息,如存儲引擎、數據長度等,如果上述指標都為null,說明視圖是虛表,代碼如下:

show

table

status

like

‘view_worker_info’;

查看創建視圖的詳細信息,需要用到show

create

view

視圖名,代碼如下:

show

create

view

view_worker_info;

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、打開Navicat for MySQL,並登錄到指定數據庫。

2、點擊上方查詢。

3、點擊新建查詢。

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

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

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

相關推薦

  • 如何修改mysql的端口號

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

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

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

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • openeuler安裝數據庫方案

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

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29

發表回復

登錄後才能評論