sql面试学到新内容

1.事物的保存点

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

mysql> truncate table d;

Query OK, 0 rows affected (0.02 sec)

mysql> start transaction;

Query OK, 0 rows affected (0.00 sec)

mysql> insert into d values(1);

Query OK, 1 row affected (0.01 sec)

mysql> savepoint my_savepoint;

Query OK, 0 rows affected (0.00 sec)

mysql> insert into d values(2);

Query OK, 1 row affected (0.00 sec)

mysql> rollback to savepoint my_savepoint;

Query OK, 0 rows affected (0.00 sec)

mysql> insert into d values(3);

Query OK, 1 row affected (0.00 sec)

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from d;

+------+

| name |

+------+

| 1   |

| 3   |

+------+

2 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与用法解释

原文地址:https://www.cnblogs.com/sdadx/p/8536862.html

时间: 2024-10-26 10:27:46

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

学习Python总是学了新内容又忘了旧的咋办?

学习Python总是学了新内容又忘了旧的咋办? 比如爬虫的几个解析库,学了pyquery后感觉beautifulsoup又有点忘了,只能大概记得有哪些功能,xpath感觉基本忘光了,最近看了一些selenium的说明文档,感觉也是脑袋里乱乱的,用起来还要到网上查. 1.不仅仅是学习Python,任何一门知识都是,记忆差是学习的大敌. 很多初学者在接触新知识的时候都会给自己很大的压力,这种“习惯性压力思维”从人很小的时候就已经存在了,学习识字的时候,家长们往往最头疼的就是孩子今天学十个字,明早睡醒

用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。

最近接触了Angular框架,今天用里面的http请求方法做了一个小的案例,是一个查询地名获取附近美食的小案例.还不太完善,后面面有时间会继续添加新的内容.这个小案例没有用到任何的jQuery与原生js方法. 先上HTML结构代码与HTML结构中的angular指令. <body ng-app="app"> <div ng-controller="con" id="con"> <h1>吃了么</h1>

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

晚上回来,同学说面试遇到了一个SQL面试题目,自己做了一下,总结总结. 题目如下: 下面是产品数据表(产品id,颜色col,数量num),其中每种产品有1~2种颜色. 求每种产品各颜色的数量差值(对于只有一种颜色的保留产品总数) 解法如下: 1.先求出每种产品各颜色的数量 这个不难,直接使用group by 就可以啦.SQL语句如下: 1 select id,col,sum(num) total from chanpin group by id,col 结果: 2.求每种产品各颜色的数量差值(对

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

作为从业人员,如果一定要学一门新的编程语言,那么它一定是c++. 无论各种编程语言排行榜如何变化,什么语言最赚钱,想成为真正的程序员,那么c/c++是必修课,因为几乎所有的底层都是c/c++编写的,各种VM最后也是用c/c++写成的,编程思想非常的重要,但是精通c/c++将是你无论作为java/go/c#/oracle dba/mysql dba/架构师,都将具有无可比拟的优势,因为最后有些非常难解决的问题不通过源码无法解决(mysql/glibc/postgresql以及其他一些linux库)

替换文件中某个字符串并写入新内容(Java代码实现)

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStream; import java.io.InputStreamReader; /* * 替换文件(如果该文件含有子目录,则包括子目录所有文件)中某个字符串并写入新内容(J

从Android Studio 说开去--未来程序员工具的发展方向——版本兼容,以及为什么我们总是要学SB&quot;新&quot;东西

抽时间学习Android. 刚刚下载了 http://developer.android.com/sdk/installing/studio.html#Updating Getting Started with Android Studio 下载安装,很简单. 启动前,先把翻墙的工具准备好,并且开动之. 否则是不行了. 我再牢骚几句啊(我自己要是开公司,门口第一个标语栏就是:大声报怨.一个连抱怨都不会的人,我不信他是一个正常人,更别提创造力了.当然,我招人也只会招参与型的人,只抱怨,但事事弃权,

添加新内容的四个 jQuery 方法:append,prepend,after,before

添加新内容的四个 jQuery 方法区别如下: append() - 在被选元素(里面)的结尾插入内容prepend() - 在被选元素(里面)的开头插入内容 //jQuery append() 方法在被选元素的结尾插入内容. $("p").append("Some appended text."); //jQuery prepend() 方法在被选元素的开头插入内容. $("p").prepend("Some prepended te

SQL 面试题目及答案

SQL 面试题目及答案 By Lee - Last updated: 星期五, 五月 31, 2013 Leave a Comment 学生成绩表(stuscore):姓名:name     课程:subject     分数:score     学号:stuid张三     数学     89     1张三     语文     80     1张三     英语     70     1李四     数学     90     2李四     语文     70     2李四     英

Framework7学习笔记之 无限滚动(滚动到底部时加载新内容)

一:为页面添加无限滚动控件 在可滚动的容器上(一般为page-content)添加"infinite-scroll"类:在页面底部定义 加载指示器. <div class="page"> <div class="page-content infinite-scroll" data-distance="100"> ... <!-- 加载提示符 --> <div class="i