sql的rowcount详解 oracle sql%rowcount 在mysql中怎么写
编程君 2017年26月07日发布
-
本教程要分享的是SQL 或Oracle 中的rowcount用法详解。rowcount在英文里面的字面意思是“行数”的意思。在数据库sql里面是用来表征查询的行数。而oracle中sql%rowcount 则是对修改的行数进行记录,言外之意就是记录修改了多少条数据。那下面编程君将详细的讲解如下。
sql的rowcount详解
1、如果只需要查询前几行的结果,可以用rowcount来表征。详细的操作如以下脚本:
--声明行变量,并设置你要取出的行数比如是100,详细的语法为
DECLARE @i INT
SET @i = 100
SET ROWCOUNT @i
SELECT * FROM 数据表名
在实际操作中,实际上不会这样复杂的去运用,而是直接采用下面的sql会比较简单。
SELECT TOP 100 FROM 数据表名。
注意:这种语法结构是满足把一个表中的多少行数据查询并增加到另一个数据结构相同的表中,也就是INSERT INTO 表(栏位) SELECT的结构。
比如:INSERT INTO 表2(栏位名1) SELECT TOP 100 栏位名1 = 栏位名2 FROM 表1
上面的这个sql拆分之后与rowcount挂钩,即为如下语句:
DECLARE @i INT
SET @i = 100
SET ROWCOUNT @i
INSERT INTO 表2 (栏位名1)
SELECT 栏位名1=栏位名2 FROM 表1
以此类推:当我们在sql中进行更新(update)和 删除(delete)操作的时候,也可以使用ROWCOUNT来进行操作。
2、ROWCOUNT和数据库的会话(session)是有关系的,也就是最近一次的ROWCOUNT设置会占用对应的session会话,直到ROWCOUNT被修改或者Session会话结束。另外要注意的就是当用户使用了自定义函数时,就不能使用ROWCOUNT了。
3、站在SQL的官方角度来说,建议取消ROWCOUNT,将其设置为SET ROWCOUNT 0。实际上有经验的数据库程序员们为了避免使用存储过程来执行SQL的构造语句,通常会使用ROWCOUNT,目的是解决TOP无法带变量的缺陷。
oracle sql%rowcount 在mysql中怎么写
在oracle中使用sql%rowcount记得要用在commit或rollback的前面,sql%rowcount(是数值类型且默认值为0) 在oracle中的写法举例:v_RowCount := SQL%ROWCOUNT; ==〉执行结果为1,在mysql中要用ROW_COUNT(),比如:select row_count(); ==〉执行结果为1;
好了,以上就为大家分享了sql的rowcount, oracle sql%rowcount 在mysql中怎么写的用法。