1.事物的保存点

  MYSQL可以让我们对事务进行部分回滚,就是在事务里调用SAVEPOINT语句来设置一些命名标记。如果想要回滚到那个标记点位置,需要使用ROLLBACK语句来指定哪个保存点。

mysql> truncate table d;

Query OK,  rows affected (0.02 sec)

mysql> start transaction;

Query OK,  rows affected (0.00 sec)

mysql> insert into d values();

Query OK,  row affected (0.01 sec)

mysql> savepoint my_savepoint;

Query OK,  rows affected (0.00 sec)

mysql> insert into d values();

Query OK,  row affected (0.00 sec)

mysql> rollback to savepoint my_savepoint;

Query OK,  rows affected (0.00 sec)

mysql> insert into d values();

Query OK,  row affected (0.00 sec)

mysql> commit;

Query OK,  rows affected (0.00 sec)

mysql> select * from d;

+------+

| name |

+------+

|    |

|    |

+------+

 rows in set (0.00 sec)

2.SQL Server 排序函数

  ROW_NUMBER:

    根据组显示每一条记录在该组中出现的位置,例如:若有两个第一名,则这两个第一名在一组内排名为1、2,下一组的排序仍从1开始,依次类推。

  RANK:

    在结果集中每一条记录所在的排名位置,但排名可能不连续,例如:若同一组内有两个第一名,则该组内下一个名次直接跳至第三名。

  DENSE_RANK:

    功能与Rank相似,但排名的数值是连续的,例如:若同一组内有两个第一名,则该组内下一个名次为第二名

  NTILE:

    根据指定的分组数量将结果集分区,并记录其在组中的位置。可以对结果集的数据排序后,按照指定的数量把结果集分成N组,并给予每组一个组编号,分组的方式很简单,将结果集的总记录数除以N,若有余数M,则前M组都多增一条记录,因此,并非所有的组都有相同的记录数,但多记录的组最多只有一条记录。

3.SQL Server 其他函数

  pivot:行转列函数

  over :开窗函数

  partition by:分析函数

参考文章

  1.在SQL Server 事务中使用Savepoints来保存提交点

  2.Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

   3.SQL Server 2012 开窗函数

   4.SQL中partition关键字的使用

   5.行转列:SQL SERVER PIVOT与用法解释

   6.left join on 后and 和 where 的区别

 
 

sql面试学到新内容的更多相关文章

  1. Windows cmd 长时间不输出新内容 直到按下ctrl + c 取消或者回车的解决办法

    换了一台新电脑, 在使用 ant 拷贝大量文件的时候 cmd 窗口过了很久没有继续输出新的内容,远远超过平时的耗时, 以为已经卡死 按下 ctrl + c 取消, 这时并没有取消, 而是输出了新内容, ...

  2. SQL Server 2014 BI新特性(一)五个关键点带你了解Excel下的Data Explorer

    Data Explorer是即将发布的SQL Server 2014里的一个新特性,借助这个特性讲使企业中的自助式的商业智能变得更加的灵活,从而也降低了商业智能的门槛. 此文是在微软商业智能官方博客里 ...

  3. 一道SQL面试例题 if...else 与聚集函数

    晚上回来,同学说面试遇到了一个SQL面试题目,自己做了一下,总结总结. 题目如下: 下面是产品数据表(产品id,颜色col,数量num),其中每种产品有1~2种颜色. 求每种产品各颜色的数量差值(对于 ...

  4. sql数据库批量替换dedecms内容关键字

    之前写了一篇dedecms后台批量替换文章中的关键词,这边我们介绍一下用sql数据库批量替换dedecms内容关键字,当然要求你对数据库比较熟悉,修改前请自行做好备份. 1.更改文章中的内容 upda ...

  5. Azure SQL 数据库引入了新的服务级别

     新的级别将提升客户体验,并提供更多的业务连续性选项 为了更好地满足您在灵活性提升方面的需求,MicrosoftAzure SQL 数据库添加了新的服务级别(基础级和标准级),以与当前处于预览状态 ...

  6. 新内容转入github

    所有新内容已经转入 https://github.com/honggzb/Study-General https://github.com/honggzb/Study2016

  7. jQuery 往table添加新内容有以下四个方法:

    Query 添加新内容有以下四个方法: append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() ...

  8. 作为从业人员,如果一定要学一门新的编程语言,那么它一定是c++

    作为从业人员,如果一定要学一门新的编程语言,那么它一定是c++. 无论各种编程语言排行榜如何变化,什么语言最赚钱,想成为真正的程序员,那么c/c++是必修课,因为几乎所有的底层都是c/c++编写的,各 ...

  9. xcode10设置自定义代码快 - Xcode10新功能新内容

    1. 2. 详情: Xcode10新功能新内容https://blog.csdn.net/u010960265/article/details/80630118

随机推荐

  1. python--私有属性--私有方法

    Class 定义类 def 初始化方法(形参) 属性1 属性2   私有属性(属性之前加--) def  方法1() print() 属性和方法定义好以后,在创建对象 对象=类名(“”) print( ...

  2. 常用判断重复记录的SQL语句

    1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from people where peopleId in (select   peopleId  fro ...

  3. 怎么将后缀为.opt,.frm,.myd,.myi文件还原或者是导入mySQL中

    其实这个问题的解决方案很简单,把这些文件连同这些文件所在的文件夹原封不动地复制到你的 mysql 文件夹下的 data 里面 (在我的电脑里面是D:\xampp\mysql\data), 然后你进my ...

  4. 【PAT】B1007 素数对猜想

    素数筛筛出规定范围内的所有素数存入数组 遍历数组,如果满足于后边的差2,计数器加加 #include <cstdio> const int maxn = 10000001; int pri ...

  5. 团队作业——UML设计

    Deadline:2017-10-29 20:00(课堂作业) 导言 同学们已经做了需求的分析,也做了详细的系统设计,画过了一些小小的类图/用例图,对自己要做什么应该有比较清晰的认识了.接下来,我们要 ...

  6. (转)Spring Boot(二十):使用 spring-boot-admin 对 Spring Boot 服务进行监控

    http://www.ityouknow.com/springboot/2018/02/11/spring-boot-admin.html 上一篇文章<Spring Boot(十九):使用 Sp ...

  7. centos7下kubernetes(4.kubernetes组件)

    Kubenetes cluster 由master和node组成 Master是kubenetes的大脑.运行着以下进程:kube-apiserver.kube-scheduler.kube-cont ...

  8. Ribbon - WeightedResponseTimeRule原理

    根据响应时间计算权重,响应越长,权重越低,权重越低的服务器,被选择的可能性就越低 //定时统计权重serverWeightTimer.schedule(new DynamicServerWeightT ...

  9. PHP与Nginx之间的运行机制以及原理

    一.普及Nginx与Php-fpm相关知识点 Nginx是什么 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服 ...

  10. 【angularjs】使用ionic+angular 搭建移动端项目,字体适配

    解析: 首先,rem是以html为基准. 一般的,各大主流浏览器的font-size默认值为16px,此时1rem=16px.如果此时将rem与px进行换算很麻烦,比如0.75rem=12px. 为了 ...