MySQL學習——操作視圖

来源:https://www.cnblogs.com/shamao/archive/2019/09/27/11596590.html
-Advertisement-
Play Games

MySQL學習——操作視圖 摘要:本文主要學習了使用DDL語句操作視圖的方法。 瞭解視圖 是什麼 視圖是從一個、多個表或者視圖中導出的表,包含一系列帶有名稱的數據列和若幹條數據行。 特點 視圖不是資料庫中真實的表,而是一張虛擬表,其結構和數據是建立在對數據中真實表的查詢基礎上的。 視圖是查看數據表的 ...


MySQL學習——操作視圖

摘要:本文主要學習了使用DDL語句操作視圖的方法。

瞭解視圖

是什麼

視圖是從一個、多個表或者視圖中導出的表,包含一系列帶有名稱的數據列和若幹條數據行。

特點

視圖不是資料庫中真實的表,而是一張虛擬表,其結構和數據是建立在對數據中真實表的查詢基礎上的。

視圖是查看數據表的一種方法,可以查詢數據表中某些列構成的數據,只是一些SQL語句的集合。從安全的角度來看,視圖的數據安全性更高,使用視圖的用戶不接觸數據表,不知道表結構。

視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。

使用視圖

查詢視圖數據的語句和查詢表的語句是一樣的。

修改視圖數據的語句實際上是通過修改表的數據實現的,對於可修改的視圖,視圖中的行和基本表的行之間必須具有一對一的關係。

使用註意

視圖不包含數據,所以每次使用視圖時,都必須執行查詢中所需的任何一個檢索操作。如果用多個連接和過濾條件創建了複雜的視圖或嵌套了視圖,可能會發現系統運行性能下降得十分嚴重。因此,在部署大量視圖應用時,應該進行系統測試。

創建視圖

語法

1 create view 視圖名 (列1, 列2, ..., 列n) as 查詢語句;

列名可以任意取名,但數量必須和查詢的列名相等,如果不指明視圖的列名,預設使用查詢語句的列名。

實例

創建一個簡單的視圖:

1 mysql> create view score_view as select * from score;
2 Query OK, 0 rows affected (0.01 sec)
3 
4 mysql> 

創建視圖並指定列:

1 mysql> create view score_view (編號, 學生, 科目, 成績) as select id, student, course, grade from score;
2 Query OK, 0 rows affected (0.00 sec)
3 
4 mysql> 

查看視圖結構

語法

1 desc 視圖名;

實例

 1 mysql> desc score_view;
 2 +--------+-------------+------+-----+---------+-------+
 3 | Field  | Type        | Null | Key | Default | Extra |
 4 +--------+-------------+------+-----+---------+-------+
 5 | 編號   | int(10)     | NO   |     | 0       |       |
 6 | 學生   | varchar(20) | NO   |     | NULL    |       |
 7 | 科目   | varchar(20) | NO   |     | NULL    |       |
 8 | 成績   | int(10)     | YES  |     | NULL    |       |
 9 +--------+-------------+------+-----+---------+-------+
10 4 rows in set (0.00 sec)
11 
12 mysql> 

說明

Field:列名。

Type:類型。

Null:表示該列是否可以存儲NULL值。

Key:表示該列是否已編製索引。PRI表示該列是主鍵的一部分,UNI表示該列是UNIQUE索引的一部分,MUL表示在列中某個給定值允許出現多次。

Default:表示該列是否有預設值,如果有,值是多少。

Extra:表示可以獲取的與給定列有關的附加信息,如:AUTO_INCREMENT等。

修改視圖

語法

1 alter view 視圖名 (列1, 列2, ..., 列n) as 查詢語句;

實例

1 mysql> alter view score_view (學生, 課程, 成績) as select student, course, grade from score;
2 Query OK, 0 rows affected (0.01 sec)
3 
4 mysql> 

刪除視圖

語法

1 drop view 視圖名;

實例

1 mysql> drop view score_view;
2 Query OK, 0 rows affected (0.00 sec)
3 
4 mysql> 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...