1. 程式人生 > >Mysql學習歷程(15)-檢視

Mysql學習歷程(15)-檢視

檢視:view 是一種有行有列的結構,但是沒有結果的虛擬表;虛擬表的結構來源不是自己定義,而是從對應的基表中產生;

建立檢視

create view  檢視名字 as  select 語句;    -- select 語句可以是普通/連線/聯合/子查詢;

檢視基表有多張的情況下,注意欄位名不能重複;

create view my_v1 as select * from my_student; 
create view my_v2 as select * from my_class;
create view my_v3 as select s.*,c.number,c.room from my_student_1 s left join my_class c on s.c_id=c.id;

檢視檢視

檢視檢視  show tables [like '匹配模式' ]    或者 desc  檢視名字 ;

檢視檢視結構   show create table 檢視名;

檢視比表有一個關鍵字的區別:view  ,檢視檢視的建立語句還可以使用view關鍵字show create view 檢視名;

檢視一旦建立,系統會在檢視對應資料庫資料夾下建立一個對應的結構檔案.frm檔案;

使用檢視:主要是為了查詢,將檢視當作表一樣查詢即可;

select * from my_v3;

檢視的執行:本質就是執行封裝的select 語句;

修改檢視:檢視本身不可以修改,但是檢視的來源是可以修改的;

alter view  檢視名字 as  新的select語句;

刪除檢視:drop view 檢視名字;

檢視的意義:1.檢視可以節省SQL語句,將一條複雜的語句使用檢視進行儲存,以後可以直接對檢視進行操作;

2.資料安全:檢視操作主要是針對查詢的,如果對檢視結構進行處理,不會影響基表資料(相對安全);

     3.檢視往往是在大專案中使用,而且是多系統中使用;可以對外提供有效資料,但是隱藏無用資料,資料安全;     4.檢視可以提供友好型;

  5.檢視可以更好地進行許可權控制;

檢視資料操作:檢視可以進行資料寫操作,但是有很多限制;

新增資料:直接對檢視進行新增資料,1.多表檢視不能新增資料;2.可以向單表檢視插入資料,但是檢視中包含的欄位必須有基表中所有不能為空(或者沒有預設值)的欄位;3.檢視是可以向基表中插入資料;

刪除資料:多表檢視不能刪除資料;

更新資料:單表/多表檢視都可以更新資料;

更新限制:with check option 如果對檢視在新增的時候,限定了某個欄位有限制,那麼在對檢視進行資料更新操作時,系統會驗證;要保證更新之後,資料依然可以被查詢出來,否則不讓更新;

create view my_v2 as select * from my_student where age>30 with check option;
//with check option決定通過檢視更新的時候不能讓已得到的資料>30的更新成<30的;

檢視演算法:

系統對檢視以及外部查詢檢視的select 語句的一種解析方式;

檢視演算法分為三種,undefined未定義的(預設的),這不是一種實際使用的演算法,是一種推卸責任的演算法,告訴系統檢視沒有定義演算法;

temptable 臨時表演算法,系統應該先執行檢視的select 語句,後執行外部查詢語句;

merge合併演算法 系統應該先將檢視對應的select語句與外部查詢檢視的select語句進行合併,然後執行(效率高,常態);

演算法指定:在建立檢視的時候;create algorithm=指定演算法 view 檢視名字 as select語句;

檢視演算法的選擇:如果檢視的select語句中包含一個查詢語句(where,group by, order by,having, limit),而且很有可能順序比外部查詢語句靠後,此時使用演算法temptable演算法,其他情況不用指定;

相關推薦

Mysql學習歷程15-檢視

檢視:view 是一種有行有列的結構,但是沒有結果的虛擬表;虛擬表的結構來源不是自己定義,而是從對應的基表中產生; 建立檢視 create view  檢視名字 as  select 語句;    -

mysql學習筆記索引、檢視,匯入和匯出,備份和恢復

一、索引 索引是一種與表有關的結構,它的作用相當於書的目錄,可以根據目錄中的頁碼快速找到所需的內容。 當表中有大量記錄時,若要對錶進行查詢,沒有索引的情況是全表搜尋:將所有記錄一一取出,和查詢條件進行一一對比,然後返回滿足條件的記錄。這樣做會消耗大量資料庫系統時間,並造成大

MySQL學習筆記—— MySQL自連接

概念 cor 子查詢 ron 表操作 例子 質量 _id order by 有的時候我們需要對同一表中的數據進行多次檢索,這個時候我們可以使用之前學習過的子查詢,先查詢出需要的數據,再進行一次檢索。 例如:一張products表,有產品id,供應商id(vend_

MySQL具體解釋15-----------海量數據解說

技術 並發 劃分 硬件 運營 數量 運算 電子商務 str 第1章 引言 隨著互聯網應用的廣泛普及,海量數據的存儲和訪問成為了系統設計的瓶頸問題。對於一個大型的互聯網應用。每天幾十億的PV無疑對數據庫造成了相當高的負載。對於系統的穩定性和擴展性造成了極大的問題。通過

mysql學習筆記—— MySQL內連接和外連接

聚集函數 信息 _id left tro 做了 學習 作用 group MySQL內連接(inner join on) MySQL的內連接使用inner join on,它的效果跟使用where是一樣的,如果聯結的是兩個表,那麽需要左右的條件或者說字段是

MySql學習筆記

ati 保存 ron setting mysql的安裝 use t-sql語句 cnblogs 完全卸載mysql MySql的安裝配置與卸載: 安裝:(1)將MySql的綠色版免安裝包放到D盤,命令行進入mysql綠色版解壓縮後的bin目錄:cd D:\mysql-5.

selenium學習歷程

歷程 自動化 簡單的 自動 等等 grid api 學習 編輯 selenium是什麽? seleniumIDE是什麽? webDriver是什麽? selenium是什麽?   selenium是web自動化測試工具集,包括IDE、webDriver、Grid等等。

PCIe學習筆記15--- TLP的ROUTING方式

ecif 一點 gis 2.0 一個 receiver 學習 hot plug 判斷 PCIE是POINT TO POINT的,不像PCI,是SHARED-BUS,總線上的數據,是被所有EP DEV看到的。 這一點與USB2.0比較類似,是廣播方式的(BROADCASTIN

selenium學習歷程

driver 如果 .get send align 方法 第一個 sel size Selenium 定位元素方法 WebDriver driver= new chormedriver();創建谷歌瀏覽器對象 Driver.get(“https://www.baidu.co

Linux第一周學習筆記15

str 第一周 單獨 make 創建目錄 單獨使用 無法 新的 必須 Linux第一周學習筆記(15)2.8.創建和刪除目錄mkdir命令(make directory簡寫):用於創建目錄mkdir –p命令:級聯創建多個目錄mkdir–pv命令:可視化級聯創建多個目錄rm

MySQL學習筆記

報錯 strong 同時 info 偏移 不足 本地用戶 學習筆記 win 一、概述 1、數據庫、數據庫系統、數據庫管理系統之間的關系?   數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。   數據庫管理系統:用來管理數據及數據庫的系統   

抽象代數學習筆記15

整數 pos amp gin 定義 div 因子 log 所有 定義:設集合\(R\)上有兩種二元運算,一個叫加法,記為\(+\);一個叫乘法,記為\(*\),且\((R,+)\)是個交換群;乘法\(*\)在\(R\)上是結合的;對任意\(a,b,c\in R\),都有\

MySQL學習筆記

集中 外鍵 部分 進行 drop 非空約束 類型 級聯操作 space 1 數據約束 1.1什麽數據約束 對用戶操作表的數據進行約束 1.2 默認值 作用: 當用戶對使用默認值的字段不插入值的時候,就使用默認值。 註意: 1)對默認值字段插入null是可以的。 2)對默認值

Mysql 學習筆記

mit bre 排序 中間 ava 過程 offset dsta ef6 最近從在學習MySQL數據庫,遇到一些問題,有些解決了,有些還未找到答案,本篇作為學習筆記,未解決的問題等後續有答案再補充,也請走過路過的大牛們指點一二; 問題一:Java程序查

MySQL學習筆記

end elseif 不同的 位置 定義 begin ima span rmi 一、索引 索引是對數據庫表中一列或多列的值進行排序的一種結構,使用索引可以提高數據庫中特定數據的查詢速度。 索引的分類: 1、普通索引,允許在定義索引的列中插入重復值和空值。 唯一索

elastic search&logstash&kibana 學習歷程Logstash使用場景和安裝部署

download ssa 技術 tar.gz 我認 搬運 OS last 文檔 Logstash基本介紹和使用場景 自我認為:logstash就是日誌的采集收集,日誌的搬運工,實時去采集日誌。讀取不同的數據源,並進行過濾,開發者自定義規範輸出到目的地。日誌的來源很多,如系統

MySQL學習筆記數據優化

繼續 水平拆分 索引 mys explain del dumps simple 學習筆記 第1章 數據庫優化簡介1-1 MySQL優化簡介 第2章 SQL語句優化2-1 數據準備 2-2 MySQL慢查日誌的開啟方式 2-3 MySQL慢查日誌分析工具之 mys

MySQL學習筆記1

數據 word 創建用戶 -- 需要 rman 訪問 修改列 其他 mysql數據庫的內部存儲結構 數據庫操作語句 1.查看所有數據庫 1、查詢mysql服務軟件的所有數據倉庫 show databases; 2、查看mysql數據倉庫的編碼

C#學習歷程[ref 關鍵字的使用]

分享圖片 訪問表 組元 歷程 有關詳細信息 ros 顯式 不同 archive ref 關鍵字的使用 ref 關鍵字通過引用(而非值)傳遞參數。 通過引用傳遞的效果是,對所調用方法中的參數進行的任何更改都反映在調用方法中。 例如,如果調用方傳遞本地變量表達式或數組

mysql學習筆記--數據類型學習

設置 .com etime times datetime 輸入 png 分享 負數 1、INT整型 類型 所占空間 範圍 TINYINT 1字節 -2^7 ~ +2^7-1 SMALLINT 2字節 -2^15 ~ +2^15-1 MEDIUM