• sql游标的使用入门


    游标的理解:

    游标其实可以理解成一个定义在特定数据集上的指针,我们可以控制这个指针遍历数据集,或者仅仅是指向特定的行,所以游标是定义在以Select开始的数据集上的

    普通的sql语句是面向集合的,游标是面向行的。比如我们要取100条数据,通过普通的sql语句是一次取出所有行,而游标是一行一行取出的。

    游标的缺点:

    在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量

    游标的定义:

    游标变量支持两种方式赋值,定义时赋值和先定义后赋值,定义游标变量像定义其他局部变量一样,在游标前加”@”,注意,如果定义全局的游标,只支持定义时直接赋值,并且不能在游标名称前面加“@”,两种定义方式如下

    --定义时赋值(支持全局变量)
    declare myname cursor for
    select * from T
    
    
    --先定义,后赋值(不支持全局变量)
    declare @myname cursor
    set @myname=cursor for
    select * from T

    游标的参数:

    FORWARD_ONLY(默认)--只能从数据集开始向数据集结束的方向读取,FETCH NEXT是唯一的选项;

    SCROLL --支持游标在定义的数据集中向任何方向,或任何位置移动。

    游标使用快速入门:

    --定义游标
    declare myname cursor for
    select id,data from T
    
    --打开游标
    open myname
    
    --定义需要的参数
    declare @id int
    declare @data varchar(50)
    
    --获取下一行
    fetch next from myname into @id,@data
    
    --打印结果
    print @id
    print @str
    
    --关闭游标
    close myname
    
    --释放游标
    deallocate myname
  • 相关阅读:
    apollo-springboot 整合使用
    axon 过滤存储哪些事件
    springtools 解决lombok
    mylog 自定义注解打印 logger
    java高级应用:线程池全面解析
    监控 Java 线程池运行状态
    线程池获当前使用的活跃线程数
    JVM调优总结 -Xms -Xmx -Xmn -Xss(1)
    java高并发之线程池
    Nginx 网络事件
  • 原文地址:https://www.cnblogs.com/kandyvip/p/4143481.html
Copyright © 2020-2023  润新知