sql游标

python操作数据库

筅森魡賤 提交于 2019-11-27 20:49:20
说说python操作mysql数据库,python要操作数据库首先导入pymysql这个模块,然后跟平时用工具连接数据库差不多,第1步,首先创建连接,调用connect方法传入host,即mysql地址, port,端口号,然后数据库的用户名和密码,最后再传入,要操作的数据库名称。第二步,获取游标对象,调用创建好的连接来获取游标,游标是什么?游标是用来存储查询数据的结果。 第3步,调用游标里面的execute方法执行sql语句,返回的是执行完sql语句受影响的行数int类型。第4步,fetchone每次只显示一条结果,可以循环遍历查询到的结果,fetchall是获取全部的执行结果,返回的对象是一个元祖。最后是关闭游标和关闭连接。 来源: https://www.cnblogs.com/xiamaojjie/p/11375998.html

pymysql模块的使用

为君一笑 提交于 2019-11-27 19:07:25
一、pymysql的下载和使用   之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装。 (1)pymysql模块的下载 pip3 install pymysql (2)pymysql的使用 # 实现:使用Python实现用户登录,如果用户存在则登录成功(假设该用户已在数据库中) import pymysql user = input('请输入用户名:') pwd = input('请输入密码:') # 1.连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='db8', charset='utf8') # 2.创建游标 cursor = conn.cursor() #注意%s需要加引号 sql = "select * from userinfo where username='%s' and pwd='%s'" %(user, pwd) print(sql) # 3.执行sql语句 cursor.execute(sql) result=cursor.execute(sql) #执行sql语句,返回sql查询成功的记录数目

Oracle存储过程和游标基本语法

对着背影说爱祢 提交于 2019-11-27 17:15:55
1 CREATE OR REPLACE PROCEDURE 存储过程名    2 IS    3 BEGIN    4 NULL;    5 END; 行1:   CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2:   IS关键词表明后面将跟随一个PL/SQL体。 行3:   BEGIN关键词表明PL/SQL体的开始。 行4:   NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句; 行5:   END关键词表明PL/SQL体的结束 存储过程创建语法: create or replace procedure 存储过程名(param1 in type , param2 out type ) as 变量1 类型(值范围); --vs_msg VARCHAR2(4000); 变量2 类型(值范围); Begin Select count(*) into 变量1 from 表A where列名=param1 ; If (判断条件) then Select 列名 into 变量2 from 表A where列名=param1 ; Dbms_output 。 Put_line(‘ 打印信息’); Elsif (判断条件) then Dbms

游标练习 Oracle

混江龙づ霸主 提交于 2019-11-27 15:57:19
练习题: -- 1 :任意执行一个 update 操作,用隐式游标 sql 的属性 %found,%notfound,%rowcount,%isopen 观察 update 语句的执行情况。 --2. 使用游标和 loop 循环来显示所有部门的名称 --3. 使用游标和 while 循环来显示所有部门的地理位置 ( 用 %found 属性 ) declare -- 游标声明 --4. 接受用户输入的部门编号,用 for 循环和游标,打印出此部门的所有雇员的所有信息 ( 使用循环游标 ) --5. 向游标传递一个工种,显示此工种的所有雇员的所有信息 ( 使用参数游标 ) --6. 用更新游标来为雇员加佣金: ( 用 if 实现,创建一个与 emp 表一模一样的 emp1 表,对 emp1 表进行修改操作 ) ,并将更新前后的数据输出出来。 --7. 编写一个 PL/SQL 程序块,对名字以 'A' 或 'S' 开始的所有雇员按他们的基本薪水 (sal) 的 10% 给他们加薪 ( 对 emp1 表进行修改操作 ) --8. 编写一个 PL/SQL 程序块,对所有的 salesman 增加佣金 (comm)500 --9. 编写一个 PL/SQL 程序块,以提升 2 个资格最老的职员为 MANAGER( 工作时间越长,资格越老 ) --( 提示

【Python pymysql】 -- 2019-08-17 05:35:59

a 夏天 提交于 2019-11-27 14:35:49
原文: http://blog.gqylpy.com/gqy/257 " 目录 关于sql注入 用户存在,绕过密码 用户不存在,绕过用户与密码 解决sql注入问题 commit() 增 改 删 查询数据库 fetchone() fetchall() fetchmany() 补充: 建立链接时间过长后会自动断开链接,可像下面这样解决: conn.ping(reconnect=True) 检查链接是否还存在,参数 reconnect=True 表示如果链接已不存在,则重新建立链接 补充: # 回滚,通常用于事务conn.rollback() pymysql模块用于在Python程序中操作数据库. 该模块本质是一个套接字客户端软件. Windows安装命令:pip3 install pymysql 基本使用: # 准备数据库、数据和远程用户: mysql> select * from blog.userinfo;+----+------+-----+| id | name | pwd |+----+------+-----+| 1 | zyk | ___ |+----+------+-----+1 row in set (0.00 sec) mysql> show grants for 'zyk'@'%';+----------------------------------------

【Python pymysql】 -- 2019-08-17 05:28:47

我只是一个虾纸丫 提交于 2019-11-27 14:35:02
原文: http://blog.gqylpy.com/gqy/257 " 目录 关于sql注入 用户存在,绕过密码 用户不存在,绕过用户与密码 解决sql注入问题 commit() 增 改 删 查询数据库 fetchone() fetchall() fetchmany() 补充: 建立链接时间过长后会自动断开链接,可像下面这样解决: conn.ping(reconnect=True) 检查链接是否还存在,参数 reconnect=True 表示如果链接已不存在,则重新建立链接 补充: # 回滚,通常用于事务conn.rollback() pymysql模块用于在Python程序中操作数据库. 该模块本质是一个套接字客户端软件. Windows安装命令:pip3 install pymysql 基本使用: # 准备数据库、数据和远程用户: mysql> select * from blog.userinfo;+----+------+-----+| id | name | pwd |+----+------+-----+| 1 | zyk | ___ |+----+------+-----+1 row in set (0.00 sec) mysql> show grants for 'zyk'@'%';+----------------------------------------

SQL中的循环、for循环、游标

大兔子大兔子 提交于 2019-11-27 12:20:15
我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加、修改、删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃力,翻遍网上的资料,找不到几个正确的并能执行的循环处理数据的方法,在这里,我来给大家分享一下! 要SQL中写类似for循环,我这里使用的是SQL中的游标来实现,当然SQL中也有for loop、while do等,我这里仅以使用游标方式来进行示例,其它的方式大家有兴趣可以研究一下,成功的同学可以在下面回复一下并把代码贴出来,与大家分享! 闲话少说,上示例: 1. 利用游标循环更新、删除MemberAccount表中的数据 DECLARE My_Cursor CURSOR --定义游标FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中OPEN My_Cursor; --打开游标FETCH NEXT FROM My_Cursor ; --读取第一行数据WHILE @@FETCH_STATUS = 0 BEGIN --UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新 --DELETE FROM dbo

E-SQL

随声附和 提交于 2019-11-27 11:01:58
E-SQL 1.学会用嵌入式SQL对数据库进行增、删、改、查操作。 2.多行查询使用游标和STATE 3.SQL事物操作 4. 集群和模式 1:以SQL嵌入C语言为例说明实现嵌入式SQL的方法 1.1声明:通信的变量就是SQL与C语言进行数据传递 C语言和SQL语言之间是通过共享变量来进行数据的传送。 (1)EXEC SQL BEGIN DECLARE SECTION; char name[20]; Int age; char sex[4]; EXEC SQL END DECLARE SECTION; (2)声明使用共享变量 嵌入式SQL在执行的时候需要在前面添加EXEC SQL 插入语句:inset into table_name(,,,)values(:xx,:ss) 插入语句的格式为: EXEC SQL INSERT INTO Student (id, name) VALUES (:s_id, :s_name); :后面的变量需要在开始的时候进行声明。 1.2、执行SQL 插入语句: 插入语句的格式为: EXEC SQL INSERT INTO Student (StudentNo, StudentName) VALUES (:sno, :sname); 修改语句: 修改语句的格式为: update table_name set age = 12 where Id = 12

sql server 游标和with as使用

泄露秘密 提交于 2019-11-27 06:15:02
DECLARE @userid INT , @gameid NVARCHAR(50) --声明变量,需要读取的数据 DECLARE cur CURSOR --去掉STATIC关键字即可 FOR WITH Emp AS (SELECT acc.* FROM GXSpreadDB.dbo.gxs_account acc LEFT JOIN RYAccountsDB.dbo.AccountsInfo Account ON acc.userid=Account.userid WHERE parentuserid=7213 AND Account.AgentID=0 UNION ALL SELECT d.* FROM Emp ,GXSpreadDB.dbo.gxs_account d WHERE d.parentuserid =Emp.userid ) select userid,gameid from Emp OPEN cur --打开游标 FETCH NEXT FROM cur INTO @userid, @gameid --取数据 WHILE ( @@fetch_status = 0 ) --判断是否还有数据 BEGIN SELECT '数据: ' + RTRIM(@userid)+';' + @gameid --UPDATE #T SET name='测试' WHERE id=4 -

MYSQL数据库基础用法

旧巷老猫 提交于 2019-11-27 06:05:22
数据库概述 数据存储阶段 人工管理阶段 缺点:数据无法共享,不能单独保持,数据存储量有限 文件管理阶段 优点:数据可以长期保存,可以存储大量的数据,使用简单 缺点:数据一致性差,数据查找修改不方便,数据冗余度可能比较大 数据库管理阶段 优点:数据阻止结构化降低了冗余度,提高了增删改查的效率,容易扩展,方便程序调用,做自动化处理 缺点:需要使用sql 或者 其他特定的语句,相对比较复杂 数据库应用 融机构,游戏网站,购物网站,论坛网站...... 基础感念   数据:能够输入到计算机中并被识别处理的信息集合   数据结构:研究一个数据集合中数据之间关系的   数据库:按照数据结构,存储管理数据的仓库.数据库是在数据库管理系统管理和控制下,在一定介质上的数据集合   数据库管理系统:管理数据库的软件,用于建立和维护数据库   数据库系统:由数据库和数据库管理系统,开发工具等组成的集合 数据库分类和常见数据库 关系型数据库和非关系型数据库   关系型:采用关系模型(二维表)来组织数据结构的数据库   非关系型:不采用关系模型组织数据结构的数据库 开源数据库和非开源数据库   开源:MySQL,SQLite,MongoDB   非开源:Oracle,DB2,SQL_Server 常见的关系型数据库   MySQL,Oracle,SQL_Server,DB2,SQLite