当前位置:  数据库>sqlserver

Sql学习第二天——SQL DML与CTE概述

    来源: 互联网  发布时间:2014-10-10

    本文导语:  DML (Data Manipulation Language) 与 CTE (Common Table Expression) 今天看书时遇到的两个缩写,不知道其含义,于是就百度了一下,特地在此记录下来,以便于下次复习使用。 关于DML (Data Manipulation Language): 数据操纵语言,用户能够查询数...

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

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SQL学习笔记一SQL基础知识
  • Sql学习第一天——SQL 将变量定义为Table类型(虚拟表)
  • oracle使用sql脚本生成csv文件案例学习
  • SQL学习笔记八 索引,表连接,子查询,ROW_NUMBER
  • MS SQL Server游标(CURSOR)的学习使用
  • SQL自连接(self join)实例学习
  • T-SQL常用游标函数实例学习
  • 学习T-SQL中default值的使用
  • SQL学习笔记二 创建表、插入数据的语句
  • SQL学习笔记五去重,给新加字段赋值的方法
  • Sql学习第一天——SQL UNION 和 UNION ALL 操作符认识
  • 学习SQL语句(强大的group by与select from模式)
  • SQL学习笔记七函数 数字,日期,类型转换,空值处理,case
  • SQL学习笔记六 union联合结果集使用
  • Sql学习第三天——SQL 关于with ties介绍
  • 总结一周内学习的Sql经验(一)
  • Sql学习第一天——SQL 练习题(建表/sql语句)
  • 学习 SQL Server 的三种自定义函数
  • SQL学习笔记四 聚合函数、排序方法
  • T-SQL数据库约束学习笔记
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3