面试中的数据库知识锦集

本文总结了数据库面试中的常见知识点,包括mysql、oracle、sqlserver的分页查询方法,如mysql的limit、oracle的rownum及其使用技巧,以及sqlserver的基于Top的分页。此外,还介绍了事务的四种隔离级别,如读未提交、读已提交、可重复读和串行化,以及它们在解决脏读、不可重复读和幻读问题上的差异。
摘要由CSDN通过智能技术生成

图图虽然面试和笔试的次数有限,但是也发现了一些数据库常问的知识点,这里稍作总结~~

从我第一次面试起,到今天第三次面试,面试官都问了我一个常见的问题:分页。下面简单介绍一下mysql、oracle、SqlServer三种不同数据库的分页方式。

mysql、oracle、SqlServer的分页查询

mysql中的分页使用的是:limit

1. 语法:limit 开始的索引,每页查询的条数;
2. 公式:开始的索引 = (当前的页码 - 1* 每页显示的条数
   -- 每页显示3条记录 
   SELECT * FROM student LIMIT 0,3; -- 第1页
   SELECT * FROM student LIMIT 3,3; -- 第2页
   SELECT * FROM student LIMIT 6,3; -- 第3页
3. limit 是一个MySQL"方言" -- 专属MySQL

oracle中分页使用的是:rownum

rownum是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推。
ROWNUM总是从1开始,不管当前的记录是否满足查询结果,ROWNUM返回的值都是1,如果这条记录的值最终满足所有的条件,那么ROWNUM会递加,下一条记录的ROWNUM会返回2,否则下一条记录的ROWNUM仍然返回1。
理解了这一点,就清楚为什么一般的ROWNUM大于某个值或等于某个不为1的值是无法返回结果的,因此对于每条记录的ROWNUM都是1,而ROWNUM为1不满足查询的结果,所以下一条记录的ROWNUM不会递增,仍然是1,因此所有的记录都不满足条件。

---------摘抄自 Oracle ROWNUM用法和分页查询总结

在查询的最外层控制分页的最小值和最大值。查询语句如下:

    SELECT * FROM 
    (
    SELECT A.*, ROWNUM RN 
    FROM (SELECT * FROM TABLE_NAME
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值