sql游标

Sql游标

久未见 提交于 2019-12-24 12:33:15
DECLARE @ID varchar( 50 ) declare @resourceID varchar( 50 ) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT ID,resourceID FROM dbo.Resource_Main) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FROM My_Cursor INTO @ID,@resourceID; WHILE @@FETCH_STATUS = 0 BEGIN print @ID; update Resource_Attach_Link set ResourceID=@resourceID where ResourceID=@ID FETCH NEXT FROM My_Cursor INTO @ID,@resourceID; --读取下一行数据(将MemberAccount表中的UserId放到@UserId变量中) END CLOSE My_Cursor; --关闭游标 DEALLOCATE My_Cursor; --释放游标 GO 来源: https://www.cnblogs.com/theMaxBear/p/5553838.html

SQL游标使用

断了今生、忘了曾经 提交于 2019-12-24 12:32:56
--- 使用循环控制 declare @a int set @a=0 while @a<10 begin print @a set @a=@a+1 end -- 获取系统时间 select getdate() exec sp_addlinkedserver 'mailoudb','','' EXEC sp_addlinkedserver 'DBLink' ,' ','SQLOLEDB','192.168.1.168' EXEC sp_addlinkedsrvlogin 'DBLink', 'false ',null, 'mailou', 'mailou12' ---删除 exec sp_droplinkedsrvlogin 'DBLinks',null exec sp_dropserver 'DBLinks' select top 5 * from DBLink.mailouDB.dbo.Article ---- 远程操作 --1. 此操作权限授权 --select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名. select * into remotetable from openrowset('sqloledb','192.168.1.168';'mailou';'mailou12',

oracle10g- oracle 关于集合数据的处理 cursor 游标

人盡茶涼 提交于 2019-12-24 01:06:39
pl sql 高级应用 游标的设计与开发 什么是游标 为什么用游标 怎么样使用游标 存储过程的创建参数的使用存储过程的调用 包的设计与应用 什么是包 包的创建与使用 游标是一种plsql控制结构 可以对sql语句的处理进行显示的控制便于对表的行数据进行逐条的处理 游标分为显式和隐式两种情况 游标的属性%found %isopen %notfound %rowcount 例子 --******************* declare cursor mycur is select * from t1; myrec t1%rowtype; begin open mycur;//打开 fetch mycur into myrec; whie mycur%found loop dbms_output.put_line(myrec.id||myrec.name); fetch mycur into myrec;//记录去获取下一个记录 end loop; close mycur;//要关闭 end; / --******************* 带参数的游标 declare cursor mycur(did number) is select name from t1 where id=did; dname t1.name%type; begin open mycur(1);/

oracle学习笔记10:游标

一曲冷凌霜 提交于 2019-12-23 05:30:53
1.什么是游标 在oracle中执行select、update、insert、delete等操作时,oracle会在内存中为其分配上下文,即开辟一小块数据缓冲区,用于将查询到的结果集缓存起来。游标就是指向这个缓冲区的指针,便于进行逐行定位处理。游标使用完成后要及时关闭。 2.游标的分类    显式游标 :显示游标指定游标的名字,调用方式:游标名+属性    隐式游标: 没有名字,执行select、update、delete、insert操作时,会自动触发隐士游标,调用方式:sql+属性 3.游标的属性    游标名%found    判断游标中是否读到数据   游标名%notfound  判断游标中是否没有读到数据   游标名%isopen   判断游标是否打开   游标名%rowcount  获取游标中实际读取的行的数量 游标处理数据的效率较低,非必要情况,不建议使用 显示游标: 1.创建游标 declare --1. 定义游标 -- cursor 游标名 is 查询命令 cursor cur_emp is select empno,ename,job from emp where empno=7369; row1 emp.empno%type; row2 emp.ename%type; row3 emp.job%type; begin --2. 打开游标 open 游标名

PyMysql

走远了吗. 提交于 2019-12-22 06:14:16
如何安装pymysql 1.为什么要安装? pymysql是用来连接python和mysql之间的通道,在使用python编程时,通过他来和mysql数据库进行交互 2.怎么安装? 1. 直接用pip安装,pip install pymysql 2. 去github上下载pymysql的安装包, https://github.com/PyMySQL/PyMySQL 将安装包解压到自己某个盘符 在linux下输入命令 tar -zxvf pymysql-master.zip 进入pymysql根目录下打开终端执行命令 python setup.py install pymysql 使用流程 1. 建立数据库连接(db = pymysql.connect(...)) 2. 创建游标对象(cur = db.cursor()) 3. 游标方法: cur.execute("insert ....") 4. 提交到数据库或者获取数据 : db.commit()/db.fetchall() 5. 关闭游标对象 :cur.close() 6. 断开数据库连接 :db.close() 常用函数 db = pymysql.connect(参数列表) host :主机地址,本地 localhost port :端口号,默认3306 user :用户名 password :密码 database :库

python之sqlite3使用详解

筅森魡賤 提交于 2019-12-21 14:18:04
Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操 作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距。但是性能表现上,SQLITE并不逊色。麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,比如说 transaction 、 trigger 和复杂的查询等。 python的数据库模块有统一的接口标准,所以数据库操作都有统一的模式,基本上都是下面几步(假设数据库模块名为db): 1. 用db.connect创建数据库连接,假设连接对象为conn 2. 如果该数据库操作不需要返回结果,就直接用conn.execute查询,根据数据库事务隔离级别的不同,可能修改数据库需要conn.commit 3. 如果需要返回查询结果则用conn.cursor创建游标对象cur, 通过cur.execute查询数据库,用cur.fetchall/cur.fetchone/cur.fetchmany返回查询结果。根据数据库事 务隔离级别的不同,可能修改数据库需要conn.commit 4. 关闭cur, conn 下面让我们一步步走进Python中的SQLite吧。 一,Python SQLITE数据库导入模块: import sqlite3 二

Oracle的基本语法,存储函数及触发器

痴心易碎 提交于 2019-12-21 14:09:53
  1.PL/SQL   PL/SQL是Oracle对 ql语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句,使SQL语言具有过程处理能力。把 SQL 语言的数据操纵能   力与过程语言的数据处理能力结合起来,使得 PLSQL 面向过程但比过程语言简单、高效、灵活和实用。   基本语法结构:   [declare] -- 声明变量   begin -- 代码逻辑   [exception] -- 异常处理   end;   注意:end后的";"不能取消掉   2.Oracle常用的异常   命名的系统异常 产生原因   ACCESS_INTO_NULL 未定义对象   CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时   COLLECTION_IS_NULL 集合元素未初始化   CURSER_ALREADY_OPEN 游标已经打开   DUP_VAL_ON_INDEX 唯一索引对应的列上有重复的值   INVALID_CURSOR 在不合法的游标上进行操作   INVALID_NUMBER 内嵌的 SQL 语句不能将字符转换为数字   NO_DATA_FOUND 使用 select into 未返回行   TOO_MANY_ROWS 执行 select into 时,结果集超过一行   ZERO_DIVIDE 除数为

SQL Server游标的使用

牧云@^-^@ 提交于 2019-12-21 01:17:09
转: http://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 同样的,在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量…… 从游标对数据库的读取方式来说,不难看出游标为什么占用更多的资源,打个比方: 当你从ATM取钱的时候,是一次取1000效率更高呢,还是取10次100? 既然游标这么“邪恶”,为什么还要学习游标 我个人认为存在既是合理.归结来说,学习游标原因我归纳为以下2点 1.现存系统有一些游标,我们查询必须通过游标来实现 2.作为一个备用方式,当我们穷尽了while循环,子查询,临时表,表变量,自建函数或其他方式扔来无法实现某些查询的时候,使用游标实现. T-SQL中游标的生命周期以及实现 在T-SQL中,游标的生命周期由5部分组成 1.定义一个游标 在T-SQL中,定义一个游标可以是非常简单,也可以相对复杂,取决于游标的参数

PL/SQL程序设计

陌路散爱 提交于 2019-12-20 22:53:51
第一章:PL/SQL概述: 什么是PL/SQL: A。PL/SQL是 Procedure Language & Structured Query Language 的缩写。PL/SQL是对SQL语言存储过程语言的扩展。从ORACLE6以后,ORACLE的RDBMS附带了PL/SQL。它现在已经成为一种过程处理语言,简称PL/SQL。目前的 PL/SQL包括两部分 ,一部分是数据库引擎部分;另一部分是可嵌入到许多产品(如C语言,JAVA语言等)工具中的独立引擎。可以将这两部分称为: 数据库PL/SQL和工具PL/SQL 。两者的编程非常相似。都具有编程结构、语法和逻辑机制。 B。PL /SQL是一种高级数据库程序设计语言,该语言 专门用于在各种环境下对ORACLE数据库进行访问 。由于该语言集成于数据库服务器中 ,所以PL/SQL代码可以对数据进行快速高效的处理。 PL/SQL的好处: A。有利于客户/服务器环境应用的运行 对于客户/服务器环境来说,真正的瓶颈是网络上。无论网络多快,只要客户端与服务器进行大量的数据交换。应用运行的效率自然就回受到影响。如果使用PL/SQL进行编程,将这种具有大量数据处理的应用放在服务器端来执行。自然就 省去了数据在网上的传输时间 。 B。适合于客户环境 PL/SQL由于分为数据库PL/SQL部分和工具PL/SQL。对于客户端来说,PL

SQL SERVER CURSOR

三世轮回 提交于 2019-12-20 20:32:23
一:认识游标 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。 游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。 二:游标的基本形式 声明游标:形式1DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSORFOR select_statement[FOR {READ ONLY | UPDATE ][OF column_list]}]形式2DECLARE cursor_name CURSOR[LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC][READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]FOR select_statement[FOR {READ ONLY | UPDATE ][OF column_list]}]INSENSITIVE关键字指明要为检索到的结果集建立一个临时拷贝,以后的数据从这个临时拷贝中获取。如果在后来游标处理的过程中,原有基表中数据发生了改变