MySQL - 視圖

一、概述

  Mysql 5.0 版本后開始引入視圖。視圖本身是一個虛擬表,不存放任何數據。在使用 sql 語句訪問視圖的時候,他返回的數據都是在查詢過程中從其他表動態生成的。

 
二、使用視圖
 

1、創建視圖

CREATE VIEW comic_view as SELECT comic_id,name,pen_name from comic;

 
2、創建之后,我們就可以像使用正常數據表一樣使用視圖。

SELECT comic_id,name,pen_name from comic_view limit 100;

?

 
三、可更新視圖

  可更新視圖是指可以通過更新這個視圖來更新視圖涉及的相關表。只要指定了合適的條件,就可以更新、刪除、甚至想視圖中寫入數據。

  如果視圖定義中包含了Group By、UNION、聚合函數、以及其他一些特殊情況,就不能被更新。

  更新視圖的查詢也可以是一個關聯語句,但是有一個限制,被更新的列必須在同一個表中。另外,所有使用臨時表算法實現的視圖都無法被更新。(有合并算法和臨時表算法兩種算法)

 
四、視圖優缺點

1、優點:

  第一個顯著優點就是它簡化了操作。此時我們完全不用關心視圖是怎么處理數據的,我們只需要知道如何使用這個結果集即可,視圖相當于一個中間層。

  第二個顯著優點就是它更加安全。比如我們可以讓用戶有權去訪問某個視圖,但是不能訪問原表,這樣就可以起到保護原表中某些數據的作用。另外,權限是無法細致到某一個列的,通過視圖,則很容易實現。

  第三個顯著優點就是降低耦合。假如我們以后要修改原表的結構,那么我們可以通過修改視圖的定義即可,而不用修改應用程序,對訪問者是不會造成影響的,一般來說,這樣代價會更小。

 
2、缺點:

(1)實際數據表的表結構修改了,則必須手動修改相關視圖。

(2)應對大數據時,可能會降低性能。

注:如果使用的數據庫類型是Mysql,因為 Mysql 目前并不支持物化視圖,所以針對分布式、大數據的程序,都不建議使用視圖。

 

原文鏈接:https://www.haveyb.com/article/59

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282116.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282116.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282116.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux環境下壓縮與解壓命令大全

tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解壓1:gunzip FileName.gz 解壓2:gzip -d FileName.gz 壓縮:gzip FileName .tar.gz 和 .tgz 解壓:tar zxvf FileName.tar.…

Centos 磁盤管理及配額管理

實驗內容:一.添加兩塊硬盤,使用LVM做成VG01組,在該VG中新建兩個LV。二.將這兩個LV格式化為ext4/xfs,開機自動掛載到系統mnt1,mnt2目錄下。三.lv02開啟磁盤配額功能,用來進行用戶與組分配額的實驗。四.在系統里添加用戶…

OnionArch - 采用DDD+CQRS+.Net 7.0實現的洋蔥架構

博主最近失業在家,找工作之余,看了一些關于洋蔥(整潔)架構的資料和項目,有感而發,自己動手寫了個洋蔥架構解決方案,起名叫OnionArch。基于最新的.Net 7.0 RC1, 數據庫采用PostgreSQL, 目前實現了…

spark寫出分布式的訓練算法_利用 Spark 和 scikit-learn 將你的模型訓練加快 100 倍...

在 Ibotta,我們訓練了許多機器學習模型。這些模型為我們的推薦系統、搜索引擎、定價優化引擎、數據質量等提供動力。它們在與我們的移動應用程序交互時為數百萬用戶做出預測。當我們使用 Spark 進行數據處理時,我們首選的機器學習框架是 scikit-learn。隨…

理解LinkedHashMap

1. LinkedHashMap概述:LinkedHashMap是HashMap的一個子類,它保留插入的順序,如果需要輸出的順序和輸入時的相同,那么就選用LinkedHashMap。LinkedHashMap是Map接口的哈希表和鏈接列表實現,具有可預知的迭代順序。此實現…

MySQL - 鎖

一、什么是鎖 鎖是數據庫系統區別于文件系統的一個關鍵特性。鎖機制用于管理對共享資源的并發訪問。 二、MySQL 不同存儲引擎支持的鎖機制 存儲引擎支持的鎖類型Myisam表鎖Innodb行鎖、表鎖Memory表鎖BDB頁鎖、表鎖表鎖:直接鎖住的是一個表,開銷小&…

數據庫時區那些事兒 - MySQL的時區處理

原文地址 當JVM時區和數據庫時區不一致的時候,會發生什么?這個問題也許你從來沒有注意過,但是當把Java程序容器化的時候,問題就浮現出來了,因為目前幾乎所有的Docker Image的時區都是UTC。本文探究了MySQL及其JDBC驅動…

java_函數的重載

函數的重載(Overload)概念:在同一個類中,允許存在一個以上的同名函數,只要他們的參數個數或者參數類型不同即可。函數功能一樣,僅僅是參與運算的未知內同不同時,可以定義多函數,卻使…

全新升級的AOP框架Dora.Interception[2]: 基于約定的攔截器定義方式

Dora.Interception(github地址,覺得不錯不妨給一顆星)有別于其他AOP框架的最大的一個特點就是采用針對“約定”的攔截器定義方式。如果我們為攔截器定義了一個接口或者基類,那么攔截方法將失去任意注冊依賴服務的靈活性。除此之外…

redis watch使用場景_redis不得不會的事務玩法

我們都知道redis追求的是簡單,快速,高效,在這種情況下也就拒絕了支持window平臺,學sqlserver的時候,我們知道事務還算是個比較復雜的東西,所以這吊毛要是照搬到redis中去,理所當然redis就不是那…

加快Android Studio的編譯速度

從Eclipse切換到Android Studio后,感覺Android Studio的build速度比Eclipse慢很多,以下幾個方法可以提高Android Studio的編譯速度使用Gradle 2.4Gradle 2.4對執行性能有很大的優化,但Android Studio現在默認使用的是Gradle 2.2,所以我們需要…

開發中 MySQL 規范

一、建表規范 1、數據庫名、表名、字段名必須使用小寫字母或數字,并且禁止以數字開頭 示例:goods_category、agent_operate_201812_log 2、數據庫名、表名、字段名要做到見名識意 示例:goods_category,不能 gc 3、配置表建議以 …

PaddleOCR在 Linux下的webAPI部署方案

很多小伙伴在使用OCR時都希望能采用API的方式調用,這樣就可以跨端跨平臺了。本文將介紹一種基于python的PaddleOCR識別WebAPI部署方案。喜歡的可以關注公眾號,獲取更多內容。一、 Linux環境下部署1.環境要求操作系統:CenterOS7;主…

影響程序員生涯的三個錯誤觀念,你千萬不要犯!

程序員在社會上,到底是怎樣一個生活群體?是否能找到自己方向?其實,路一直都在那里,只是你看不到而已! 當初的你,可能一直被一些技術牽著鼻子走,并不是自己在做著自己想做的&#xff…

心電圖計算心率公式_心電圖到底能反應啥問題,看過之后你也能當“醫生”

只要是經歷過健康體檢的健康人,或者做過手術的患者,基本都做過心電圖檢查。都說久病成醫,所以有些人對血、尿常規等各項檢查的結果都門清兒得很,最起碼看一眼也能說出個大概齊。偏偏心電圖這種常做的檢查,不但老病號如…

獲取正在運行的服務

手機上安裝的App,在后臺運行著很多不同功能的服務,最常見的例如消息推送相關的服務。如何查看這些服務?如何判斷某個服務是否正在運行?如何停止某一個服務呢?請看下面的方法: package com.example.servicel…

openstack的vnc啟動ssl

1、制作ssl證書# cd /etc/pki/tls/certs [rootwww certs]# make vnc.key Enter pass phrase:# 輸入密碼 Verifying - Enter pass phrase:#確認# 從private key 中刪除密碼# openssl rsa -in vnc.key -out vnc.key # make vnc.csr Country Name (2 letter code) [XX]:CN# 國家 S…

開發composer包

一、初始化&#xff08;生成composer.json文件&#xff09; composer init#輸入你要創建的composer包項目命名空間 Package name (<vendor>/<name>) [root/tiny-laravel]: #haveyb/tiny-laravel #輸入composer包的描述 Description []:#this is a tiny laravel h…

Linux本地yum源配置以及使用yum源安裝gcc編譯環境

本文檔是圖文安裝本地yum源的教程&#xff0c;以安裝gcc編譯環境為例。 適用范圍&#xff1a;所有的cetos,紅帽,fedroa版本 適用人群&#xff1a;有一點linux基礎的小白 范例系統版本&#xff1a;CentOS Linux release 7.3.1611 (Core) 范例環境&#xff1a;vmware 虛擬機 安裝…

word如何設置上標形式_如何在word中設置特殊頁碼

獲取更多業界資訊和深度好文● 點擊藍字關注我們 ●在日常工作中&#xff0c;我們編輯的word文檔經常需要設置頁碼&#xff0c;但有時文檔的第一頁是封面&#xff0c;第二頁才是正文&#xff0c;或者第二頁是目錄&#xff0c;第三頁才是正文&#xff0c;如下圖所示&#xff0c;…