Sql學(xué)習(xí)第二天——SQL DML與CTE概述
更新時(shí)間:2013年03月22日 11:24:56 作者:
關(guān)于DML即數(shù)據(jù)操縱語(yǔ)言;關(guān)于CTE即公用表表達(dá)式,接下來(lái)為大家介紹下CTE使用的地方以及優(yōu)點(diǎn)同時(shí)提供一個(gè)簡(jiǎn)單的CTE例題,感興趣的各位可以參考下哈
DML (Data Manipulation Language) 與 CTE (Common Table Expression)
今天看書(shū)時(shí)遇到的兩個(gè)縮寫(xiě),不知道其含義,于是就百度了一下,特地在此記錄下來(lái),以便于下次復(fù)習(xí)使用。
關(guān)于DML (Data Manipulation Language):
數(shù)據(jù)操縱語(yǔ)言,用戶能夠查詢數(shù)據(jù)庫(kù)以及操作已有數(shù)據(jù)庫(kù)中的數(shù)據(jù)的計(jì)算機(jī)語(yǔ)言。具體是指是UPDATE更新、INSERT插入、DELETE刪除。
關(guān)于CTE (Common Table Expression):
CTE(Common Table Expression) ,即公用表表達(dá)式,可以認(rèn)為是在單個(gè) SELECT、INSERT、UPDATE、DELETE 或 CREATE ⅥEW 語(yǔ)句的執(zhí)行范圍內(nèi)定義的臨時(shí)結(jié)果集。CTE與派生表類似,具體表現(xiàn)在不存儲(chǔ)為對(duì)象,并且只在查詢期間有效。與派生表的不同之處在于,CTE 可自引用,還可在同一查詢中引用多次。
CTE可用于:
1.創(chuàng)建遞歸查詢(我個(gè)人認(rèn)為CTE最好用的地方)。
2.在同一語(yǔ)句中多次引用生成的表。
CTE優(yōu)點(diǎn):
1.使用 CTE 可以獲得提高可讀性和輕松維護(hù)復(fù)雜查詢的優(yōu)點(diǎn)。
2.查詢可以分為單獨(dú)塊、簡(jiǎn)單塊、邏輯生成塊。之后,這些簡(jiǎn)單塊可用于生成更復(fù)雜的臨時(shí) CTE,直到生成最終結(jié)果集。
CTE可使用的范圍:
可以在用戶定義的例程(如函數(shù)、存儲(chǔ)過(guò)程、觸發(fā)器或視圖)中定義 CTE。
下面看一個(gè)簡(jiǎn)單的CTE例題:
把test表中salary最大的id記錄保存在test_CTE中,再調(diào)用
代碼如下:
with test_CTE(id,salary)
as
(
select id,max(salary)
from test
group by id
)
select * from test_cte
今天看書(shū)時(shí)遇到的兩個(gè)縮寫(xiě),不知道其含義,于是就百度了一下,特地在此記錄下來(lái),以便于下次復(fù)習(xí)使用。
關(guān)于DML (Data Manipulation Language):
數(shù)據(jù)操縱語(yǔ)言,用戶能夠查詢數(shù)據(jù)庫(kù)以及操作已有數(shù)據(jù)庫(kù)中的數(shù)據(jù)的計(jì)算機(jī)語(yǔ)言。具體是指是UPDATE更新、INSERT插入、DELETE刪除。
關(guān)于CTE (Common Table Expression):
CTE(Common Table Expression) ,即公用表表達(dá)式,可以認(rèn)為是在單個(gè) SELECT、INSERT、UPDATE、DELETE 或 CREATE ⅥEW 語(yǔ)句的執(zhí)行范圍內(nèi)定義的臨時(shí)結(jié)果集。CTE與派生表類似,具體表現(xiàn)在不存儲(chǔ)為對(duì)象,并且只在查詢期間有效。與派生表的不同之處在于,CTE 可自引用,還可在同一查詢中引用多次。
CTE可用于:
1.創(chuàng)建遞歸查詢(我個(gè)人認(rèn)為CTE最好用的地方)。
2.在同一語(yǔ)句中多次引用生成的表。
CTE優(yōu)點(diǎn):
1.使用 CTE 可以獲得提高可讀性和輕松維護(hù)復(fù)雜查詢的優(yōu)點(diǎn)。
2.查詢可以分為單獨(dú)塊、簡(jiǎn)單塊、邏輯生成塊。之后,這些簡(jiǎn)單塊可用于生成更復(fù)雜的臨時(shí) CTE,直到生成最終結(jié)果集。
CTE可使用的范圍:
可以在用戶定義的例程(如函數(shù)、存儲(chǔ)過(guò)程、觸發(fā)器或視圖)中定義 CTE。
下面看一個(gè)簡(jiǎn)單的CTE例題:
把test表中salary最大的id記錄保存在test_CTE中,再調(diào)用
代碼如下:
復(fù)制代碼 代碼如下:
with test_CTE(id,salary)
as
(
select id,max(salary)
from test
group by id
)
select * from test_cte
相關(guān)文章
SQLSERVER語(yǔ)句的執(zhí)行時(shí)間顯示的統(tǒng)計(jì)結(jié)果是什么意思
在SQL語(yǔ)句調(diào)優(yōu)的時(shí)候,大部分都會(huì)查看語(yǔ)句執(zhí)行時(shí)間,究竟SQLSERVER顯示出來(lái)的統(tǒng)計(jì)結(jié)果是什么意思,接下來(lái)為您一一解釋,感興趣的朋友可以了解下2013-01-01SQL Server數(shù)據(jù)庫(kù)按百分比查詢出表中的記錄數(shù)
這篇文章主要介紹了SQL Server數(shù)據(jù)庫(kù)在一個(gè)表中按百分比查詢出記錄條數(shù)的方法及代碼示例,需要的朋友可以參考下2015-08-08sqlserver附加.mdf權(quán)限問(wèn)題解決
sqlserver附加.mdf權(quán)限問(wèn)題解決,需要的朋友可以參考一下2013-03-03

SQLServer中IF THEN邏輯的實(shí)現(xiàn)
if-then語(yǔ)句是IF控制語(yǔ)句中最簡(jiǎn)單的形式,經(jīng)常用于決策和更改程序執(zhí)行的控制流程,本文主要介紹了SQLServer中IF THEN邏輯的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
2024-02-02 
SQLServer 數(shù)據(jù)庫(kù)中如何保持?jǐn)?shù)據(jù)一致性
復(fù)制是SQLServer數(shù)據(jù)庫(kù)中保持?jǐn)?shù)據(jù)一致性的一種手段。
2009-06-06 
sql server編寫(xiě)通用腳本實(shí)現(xiàn)獲取一年前日期的方法
這篇文章主要介紹了sql server編寫(xiě)通用腳本實(shí)現(xiàn)獲取一年前日期,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
2019-07-07