程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> Sql學習第二天——SQL DML與CTE概述

Sql學習第二天——SQL DML與CTE概述

編輯:更多數據庫知識

DML (Data Manipulation Language) 與 CTE (Common Table Expression)
今天看書時遇到的兩個縮寫,不知道其含義,於是就百度了一下,特地在此記錄下來,以便於下次復習使用。

關於DML (Data Manipulation Language):
數據操縱語言,用戶能夠查詢數據庫以及操作已有數據庫中的數據的計算機語言。具體是指是UPDATE更新、INSERT插入、DELETE刪除。

關於CTE (Common Table Expression):
CTE(Common Table Expression) ,即公用表表達式,可以認為是在單個 SELECT、INSERT、UPDATE、DELETE 或 CREATE ⅥEW 語句的執行范圍內定義的臨時結果集。CTE與派生表類似,具體表現在不存儲為對象,並且只在查詢期間有效。與派生表的不同之處在於,CTE 可自引用,還可在同一查詢中引用多次。

CTE可用於:
1.創建遞歸查詢(我個人認為CTE最好用的地方)。
2.在同一語句中多次引用生成的表。

CTE優點:
1.使用 CTE 可以獲得提高可讀性和輕松維護復雜查詢的優點。
2.查詢可以分為單獨塊、簡單塊、邏輯生成塊。之後,這些簡單塊可用於生成更復雜的臨時 CTE,直到生成最終結果集。
CTE可使用的范圍:
可以在用戶定義的例程(如函數、存儲過程、觸發器或視圖)中定義 CTE。

下面看一個簡單的CTE例題:
把test表中salary最大的id記錄保存在test_CTE中,再調用

代碼如下:
復制代碼 代碼如下:
with test_CTE(id,salary)
as 
(
select id,max(salary)
from test
group by id 
)
select * from test_cte

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved