20150103--SQL連接查詢+視圖-02

20150103--SQL連接查詢+視圖-02

子查詢

一條查詢語句出現在另外一條查詢語句的內部,這條語句就被稱之為子查詢語句。

子查詢分類

子查詢可以根據子查詢返回的結果以及子查詢出現的位置兩種方式進行分類

按結果分類:

標量子查詢:子查詢返回的結果是一行一列,一個字段的某一個值

列子查詢:子查詢返回的結果是一列,多行,一個字段有多個值

行子查詢:子查詢返回的結果是一行多列,多行多列

表子查詢:子查詢返回的結果多行多列

按照位置分類:

where子查詢:子查詢出現在where條件之后

from子查詢:子查詢出現在from之后

exists子查詢:出現在exists之后,exists出現在where之后

標量子查詢

子查詢返回的結果是一個標量

clip_image002

列子查詢

子查詢返回的結果是一列。

需求:獲取所有班級的所有學生,學生必須在班級中存在。

select * from student where c_id is not null; -- 無法解決

解決方案

1. 獲取所有的現有班級的id:select id from class;

2. 從學生表中查出所有數據,判斷學生的班級id是否在剛查出來的班級id中存在

clip_image004

集合判斷條件(理解性知識)

集合(1,2,3,4,5)

any:任意一個,1 = any(集合),只要結果在集合中出現過,就返回true

all:全部,必須滿足全部條件才返回真

some:等于其中的一部分,與any完全一致

clip_image006

行子查詢

子查詢返回的結果是一行多列

需求:找出所有班級中年齡最大,同時身高最高的學生;

行子查詢必須構建行元素:有多個字段的元素

select * from 表名 where (字段1,字段2…) =/in (select 字段1,字段2… from 表名);

clip_image008

表子查詢

表子查詢從返回結果的層面上講與行子查詢完全一樣。因為其出現的位置不是在where之后,而是在where之前,from之后。from后接數據源。

需求:求出每個班中身高最高的1個學生。

clip_image010

表子查詢出現的原因:因為某些時候,希望order by在group by之前先執行。

先排序,再分組

視圖

視圖:視圖是一張虛擬表,存在表結構,但是沒有數據。

視圖關鍵字:view

創建視圖

語法:

create view 視圖名字 as select語句;

clip_image012

視圖創建之后發生了什么?

1. 創建視圖結構(虛擬表)

clip_image014

2. 在數據庫對應的文件夾下創建結構文件

clip_image016

視圖是虛擬表,只有結構,沒有數據。

視圖查看

1. 視圖可以像表一樣的查看

show tables/show create table/desc 視圖名

clip_image018

2. 可以通過視圖查看創建語句的方法

show create view 視圖名;

clip_image020

3. 查看視圖數據:與查看表完全一致

clip_image022

視圖不保存數據:數據的來源指的是當視圖被調用的時候,系統會自動調用視圖的創建語句中的select語句去執行。

clip_image024

修改視圖

視圖修改的本質是修改視圖的數據來源。

語法

alter view 視圖名字 as select語句;

clip_image026

刪除視圖

語法

drop view 視圖名字;

clip_image028

視圖作用

1. 節省查詢語句的長度

2. 對外提供訪問接口clip_image030

保證數據表(基表)的數據安全性。

視圖能夠選擇性的從基表獲取數據,并提供給外部。

3. 對外友好性

視圖能夠對外提供不同的數據信息。(不同的接口定義不同的視圖)

視圖數據增刪改

視圖可以為基表進行數據的增刪改操作,必須滿足以下條件

視圖新增數據

1. 視圖的數據來源(基表)只能有一個

clip_image032

多表視圖不能插入數據

clip_image034

2. 視圖中的所有字段,必須包含了基表中不為空或者沒有默認值的全部字段。

clip_image036

更新數據:基本沒有限制

單表視圖更新

clip_image038

多表視圖更新

clip_image040

刪除數據:與插入數據條件一致,只有單表視圖可以刪除,多表不能刪除

單表視圖刪除

clip_image042

多表視圖刪除

clip_image044

視圖算法

視圖在執行的過程中(視圖被查詢),到底是如何去執行視圖對應的查詢語句。

視圖算法分為三種:

合并:merged,先將視圖的SQL查詢與與外部的查詢語句進行語法合并

臨時表:temptable,先執行視圖里面的查詢語句,結果變成一個臨時表

未定義:undefined,系統自己判斷到底使用合并還是臨時表,默認的

clip_image046

算法指定語法

create view algorithm = 算法 視圖名字 as select語句

clip_image048

posted on 2016-04-20 22:29?山山未遲 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lifushan/p/5414767.html

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

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

相關文章

QtQuick controls和controls2 自定義樣式

2019獨角獸企業重金招聘Python工程師標準>>> controls import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4Rectangle {color: "green"Button {id:buttontext: qsTr("Second page")anchors.centerIn: parentpr…

電腦開機3秒就重啟循環_電腦修好后客戶不愿支付上門費,行,那電腦開機60秒自動關機吧!...

上門維修電腦已經非常普及了,上門維修電腦費用要比送修(送到維修店)費用高,送修電腦只有一項維修費用,上門維修電腦比送修多了一項費用,這項費用就是上門費。有人說維修電腦收取上門費用不合理,其實這樣的說法非常自私…

jQuery屬性篩選選擇器

2019獨角獸企業重金招聘Python工程師標準>>> 代碼一 <h2>屬性篩選選擇器</h2><h3>[attval]、[att]、[att|val]、[att~val]</h3><div class"left" testattr"true" ><div class"div" testattr"t…

java 代碼優化

Java程序中的內存管理機制是通過GC完成的&#xff0c;“一個對象創建后被放置在JVM的堆內存中&#xff0c;當永遠不在應用這個對象的時候將會被JVM在堆內存中回收。被創建的對象不能再生&#xff0c;同時也沒有辦法通過程序語句釋放”&#xff08;這個是《Java的GC機制》中提到…

Halcon中OCR的實現及關鍵函數解析

OCR的實現共分為兩步&#xff0c;1是使用字符數據來訓練OCR。2是使用OCR進行字符的識別。 訓練分類器 訓練分類器共分為4步&#xff1a; 1是使用閾值來分割字符區域&#xff1b; 2是調用append_ocr_trainf函數將字符加入訓練集&#xff1b; 3是創建分類器&#xff1b; 4是…

MATLAB 長度和像素_Matlab中短時傅里葉變換 spectrogram和stft的用法

在Matlab中&#xff0c;做短時傅里葉變換需要使用函數spectrogram&#xff0c;而在Matlab2019中&#xff0c;引入了一個新的函數stft&#xff0c;下面我們就來看下這兩個函數都如何使用。短時傅里葉變換的基本原理就是將數據分段加窗&#xff0c;做fft&#xff0c;在分段時會有…

Qt 【關于控件樣式,鼠標進入、離開、點擊】

比如舉以下這個例子: QPushButton * okBtn; okBtn->setstylesheet("QPushButton{border-image:url(:/image/hello);}"); //這個是最常規的樣式 okBtn->setstylesheet("QPushButton{border-image:url(:/image/hello);}" //…

圖像處理基礎——灰度共生矩陣

標準定義如下&#xff1a;對于取定的方向θ 和距離 d, 在方向為θ的直線上, 一個像元灰度為 i, 另一個與其相距為 d 像元的灰度為 j 的點對出現的頻數即為灰度共生矩陣第(i, j)陣元的值。 怎樣理解呢&#xff1f;看起來好復雜呀 嗚嗚嗚 小白理解&#xff1a;灰度共生矩陣就…

iphone查看刪除的短信_iPhone12發布!剛買的蘋果手機短信全部消失了怎么辦?

原標題&#xff1a;iPhone12發布&#xff01;剛買的蘋果手機短信全部消失了怎么辦&#xff1f;目前&#xff0c;人們的社交除了面對面交談&#xff0c;用的最多的就是通過手機進行聊天&#xff0c;比如用QQ、微信和短信、郵件等方式&#xff0c;雖然短信不會用來一般的聊天&…

[唐詩]182宮中行樂詞(其一)-李白

宮中行樂詞(其一)-李白 小小生金屋&#xff0c; 盈盈在紫微。 山花插寶髻&#xff0c; 石竹繡羅衣。 每出深宮里&#xff0c; 常隨步輦歸。 只愁歌舞散&#xff0c; 化作彩云飛。

python基礎之01數據類型-變量-運算淺解

python的數據類型 1 數字 數字分為整型&#xff08;int&#xff09;&#xff0c;長整型&#xff08;long&#xff09;&#xff0c;浮點型&#xff08;float&#xff09;&#xff0c;復數&#xff08;complex&#xff09; 整型較為常用的功能&#xff1a; >>> a-4 >…

使用Caffe進行手寫數字識別執行流程解析

之前在 http://blog.csdn.net/fengbingchun/article/details/50987185 中仿照Caffe中的examples實現對手寫數字進行識別&#xff0c;這里詳細介紹下其執行流程并精簡了實現代碼&#xff0c;使用Caffe對MNIST數據集進行train的文章可以參考 http://blog.csdn.net/fengbingchun/…

obs可以裝手機嗎?_原神PC和手機數據互通嗎 PC和手機可以一起玩嗎

在原神中&#xff0c;很多玩家都在PC端創建了角色&#xff0c;那么疑問來了&#xff0c;PC端與手機端的賬號會是互通的嗎&#xff1f;下面小編就為大家帶來原神PC和手機數據互通嗎的相關內容&#xff0c;一起來看看吧&#xff01;更多攻略&#xff1a;原神攻略大全PC和手機數據…

學習linux第二周作業

第二周作業&#xff1a;本周作業內容&#xff1a;1、Linux上的文件管理類命令都有哪些&#xff0c;其常用的使用方法及其相關示例演示。touch,rm,mv,cp,file,ls,chmod,chown,ln,rename,touch 修改文件atime&#xff0c;如果文件不存在&#xff0c;那么創建該文件。rm&#xff1…

三維點云目標提取總結(續)

三維點云目標提取&#xff08;續&#xff09; 3.三維點云目標提取 3.1一般流程 先根據個人認識總結一下目標提取的一般性步驟&#xff1a; 如上所示&#xff0c;三維點云的目標提取關鍵性的兩步即為&#xff1a;特征提取與選擇、分類&#xff0c;是不是整個方法流程與圖像中的目…

安卓高手之路之java層Binder

很多人一提到Binder就說代理模式&#xff0c;人云亦云的多&#xff0c;能理解精髓的少。 本篇文章就從設計角度分析一下java層BInder的設計目標&#xff0c;以及設計思路&#xff0c;設計缺陷&#xff0c;從而駕馭它。 對于【邦德兒】的理解, 從通信的角度來看&#xff0c;就是…

ftp改為sftp_淺談 FTP、FTPS 與 SFTP

二狗子最近搭建了一個圖片分享網站&#xff0c;每天都有好多人在他的網站上傳許多照片&#xff0c;這些照片還會通過內部的邏輯同步到又拍云存儲中&#xff0c;非常方便。但不久后問題就來了&#xff0c;由于剛開始的用戶照片管理規劃沒有做好&#xff0c;隨著用戶上傳的圖片越…

如何解決秒殺的性能問題和超賣的討論

2019獨角獸企業重金招聘Python工程師標準>>> 最近業務試水電商&#xff0c;接了一個秒殺的活。之前經常看到淘寶的同行們討論秒殺&#xff0c;討論電商&#xff0c;這次終于輪到我們自己理論結合實際一次了。 ps&#xff1a;進入正文前先說一點個人感受&#xff0c;…

C# 從Excel中讀取時間數據

之前寫到從Excel中讀取時間數據 //讀取Excel數據Excel.Application xapp new Excel.Application();string filepath txt_Excel.Text;Excel.Workbook xbook xapp.Workbooks._Open(filepath, Missing.Value, Missing.Value,Missing.Value, Missing.Value, Missing.Value, Miss…

grid autosport額外內容下載慢_清理大王app下載-清理大王v1.0安卓下載

清理大王&#xff0c;下面由小編給大家介紹一下這款軟件&#xff0c;該軟件是一款非常不錯的手機清理服務應用軟件&#xff0c;清理大王app為用戶提供了手機垃圾清理&#xff0c;內存加速&#xff0c;優化手機&#xff0c;解決手機卡頓的情況。感興趣的朋友歡迎使用微俠下載&am…