浅谈从Oracle数据库中取出10条数据的Select语句与Sql Server、MySql的区别
只要涉及交互,就一定会和数据打交道。也许这样的内容在网上也不知道有多少,不管有多少,每一份总结都是经验所得,都是精心准备,也许是为了自己在以后的使用过程中不被遗忘,也许是为了资源共享,共同学习,共同进步。下面就根据自己做过的东西,把常见数据库Sql Server,Oracle以及MySql,从数据库表中提取10条数据记录的查询语句总结如下:
1.Sql Server
这种数据库,再熟悉不过了。要问我在大学期间学的最好的一门功课是什么,那绝对是Sql Server了。
对于Sql Server,从数据库表中提取10条记录,那肯定得利用Top关键字。如果Select语句中既有top,又有order by,则是从排序好的结果集中选择。例如:
select top 10 * from 表名
今天所说的取数据,可以任意检索表中从m行到n行的记录,还可以sql语句实现分页功能。如果您需要就去尝试尝试,这里就不多详解了。。。
2.Oracle
刚刚接触,不是很了解,但是语言都是有相同点的,学会不同的不就行了。
对于Oracle,从数据库表中提取10条记录,需要利用rownum关键字。
例如从表A(主键为id)中检索10条记录,语句如下:
select * from A where rownum <= 10
书上告诫,不能对rownum用">",这也就意味着,如果你想用
select * from emp where rownum > 5
则是失败的。要知道为什么会失败,则需要了解rownum背后的机制。
rownum如果单独用=,也只有在rownum=1时才有用。
3.MySql
现在从事的这个公司,用这个版本的数据库还是非常频繁的,基本上都用它,所以算是比较了解了。
MySQL数据库实现取数据还算是比较简单的,它提供了一个limit函数,一般直接写在sql语句后面就行了。
limit子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。例如:
select * from 表名 where 条件 limit 10; #返回前10行
select * from 表名 where 条件 limit 0,10; #返回前10行
select * from 表名 where 条件 limit 10,20; #返回第10-20行数据