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存儲(chǔ)過(guò)程寫(xiě)法與設(shè)置定時(shí)執(zhí)行存儲(chǔ)過(guò)程方法詳解
一直都很想了解如何寫(xiě)存儲(chǔ)過(guò)程,對(duì)于不熟悉的東西,總是覺(jué)得很神秘,下面這篇文章主要給大家介紹了關(guān)于SQLserver存儲(chǔ)過(guò)程寫(xiě)法與設(shè)置定時(shí)執(zhí)行存儲(chǔ)過(guò)程方法的相關(guān)資料,需要的朋友可以參考下2023-03-03
Sql注入工具_(dá)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了Sql注入工具的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
sqlserver如何生成連續(xù)數(shù)值,字母,字符
這篇文章主要介紹了sqlserver如何生成連續(xù)數(shù)值,字母,字符問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
SQL Server作業(yè)報(bào)錯(cuò)特殊案例分析
這篇文章主要給大家介紹了關(guān)于SQL Server作業(yè)報(bào)錯(cuò)特殊案例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用SQL Server具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

