sql游标

【Python pymysql】

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-28 15:27:53
原文: http://blog.gqylpy.com/gqy/257 目录 关于sql注入 用户存在,绕过密码 用户不存在,绕过用户与密码 解决sql注入问题 commit() 增 改 删 查询数据库 fetchone() fetchall() fetchmany() > 补充: > > > 建立链接时间过长后会自动断开链接,可像下面这样解决: > ```python > 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中游标的使用

江枫思渺然 提交于 2019-11-28 14:16:02
一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言, 如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标或WHILE等循环 游标的类型: 1、静态游标(不检测数据行的变化) 2、动态游标(反映所有数据行的改变) 3、仅向前游标(不支持滚动) 4、键集游标(能反映修改,但不能准确反映插入、删除) 游标使用顺序: 1、定义游标 2、打开游标 3、使用游标 4、关闭游标 5、释放游标 Transact-SQL: declare 游标名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC ] [READ_ONLY | SCROLL_LOCKS] for selet语句 [for update[of 列名[,列名]] 注:LOCAL 局部游标 GLOBAL 全局游标 FORWARD_ONLY 仅向前 SCROLL 滚动 STATIC 静态 KEYSET 键集 DYNAMIC 动态 READ_ONLY 只读 SCROLL_LOCKS 锁定游标当前行 获取游标的数据 FETCH [[NEXT | PRIOR | FIRST | LAST | ABSOLUTE{ n | @nvar | RELATIVE { n | @nvar}] From ] 游标名 [into

SQL中游标的使用

我的未来我决定 提交于 2019-11-28 14:15:53
类型:   1.普通游标 只有NEXT操作   2.滚动游标 有多种操作 1.普通游标 DECLARE @username varchar(20),@UserId varchar(100) DECLARE cursor_name CURSOR FOR --定义游标 SELECT TOP 10 UserId,UserName FROM UserInfo ORDER BY UserId DESC OPEN cursor_name --打开游标 FETCH NEXT FROM cursor_name INTO @UserId,@username --抓取下一行游标数据 WHILE @@FETCH_STATUS = 0 BEGIN PRINT '用户ID:'+@UserId+' '+'用户名:'+@username FETCH NEXT FROM cursor_name INTO @UserId,@username END CLOSE cursor_name --关闭游标 DEALLOCATE cursor_name --释放游标 结果: 用户ID:zhizhi 用户名:邓鸿芝 用户ID:yuyu 用户名:魏雨 用户ID:yujie 用户名:李玉杰 用户ID:yuanyuan 用户名:王梦缘 用户ID:YOUYOU 用户名:lisi 用户ID:yiyiren 用户名:任毅 用户ID

sql中游标的使用

被刻印的时光 ゝ 提交于 2019-11-28 14:15:43
一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言 , 如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标或WHILE等循环 游标的类型: 1、静态游标(不检测数据行的变化) 2 、动态游标(反映所有数据行的改变) 3 、仅向前游标(不支持滚动) 4 、键集游标(能反映修改,但不能准确反映插入、删除) 游标使用顺序: 1 、定义游标 2 、打开游标 3 、使用游标 4 、关闭游标 5 、释放游标 Transact-SQL : declare 游标名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC ] [READ_ONLY | SCROLL_LOCKS] for selet 语句 [for update[of 列名[,列名 ]] 注:LOCAL 局部游标 GLOBAL 全局游标 FORWARD_ONLY 仅向前 SCROLL 滚动 STATIC 静态 KEYSET 键集 DYNAMIC 动态 READ_ONLY 只读 SCROLL_LOCKS 锁定游标当前行 获取游标的数据 FETCH [[NEXT | PRIOR | FIRST | LAST | ABSOLUTE{ n | @nvar | RELATIVE { n | @nvar}] From

SQL中游标的使用

狂风中的少年 提交于 2019-11-28 14:15:31
一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言, 如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标或WHILE等循环 游标的类型: 1、静态游标(不检测数据行的变化) 2、动态游标(反映所有数据行的改变) 3、仅向前游标(不支持滚动) 4、键集游标(能反映修改,但不能准确反映插入、删除) 游标使用顺序: 1、定义游标 2、打开游标 3、使用游标 4、关闭游标 5、释放游标 Transact-SQL: declare 游标名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC ] [READ_ONLY | SCROLL_LOCKS] for selet语句 [for update[of 列名[,列名]] 注:LOCAL 局部游标 GLOBAL 全局游标 FORWARD_ONLY 仅向前 SCROLL 滚动 STATIC 静态 KEYSET 键集 DYNAMIC 动态 READ_ONLY 只读 SCROLL_LOCKS 锁定游标当前行 获取游标的数据 FETCH [[NEXT | PRIOR | FIRST | LAST | ABSOLUTE{ n | @nvar | RELATIVE { n | @nvar}] From ] 游标名 [into

SQL中游标的使用

流过昼夜 提交于 2019-11-28 14:15:10
类型:   1.普通游标 只有NEXT操作   2.滚动游标 有多种操作 1.普通游标 DECLARE @username varchar(20),@UserId varchar(100) DECLARE cursor_name CURSOR FOR --定义游标 SELECT TOP 10 UserId,UserName FROM UserInfo ORDER BY UserId DESC OPEN cursor_name --打开游标 FETCH NEXT FROM cursor_name INTO @UserId,@username --抓取下一行游标数据 WHILE @@FETCH_STATUS = 0 BEGIN PRINT '用户ID:'+@UserId+' '+'用户名:'+@username FETCH NEXT FROM cursor_name INTO @UserId,@username END CLOSE cursor_name --关闭游标 DEALLOCATE cursor_name --释放游标 结果: 用户ID:zhizhi 用户名:邓鸿芝 用户ID:yuyu 用户名:魏雨 用户ID:yujie 用户名:李玉杰 用户ID:yuanyuan 用户名:王梦缘 用户ID:YOUYOU 用户名:lisi 用户ID:yiyiren 用户名:任毅 用户ID

MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05

别来无恙 提交于 2019-11-28 13:23:25
目录 mysql语句注释 navicat 的基本使用 特色(个人总结) 与数据服务器建立连接 创建&打开数据库、表 创建 打开 修改操作表结构 修改表结构 查询修改操作表数据 基本语句对应的操作 模型 ***** 特色功能 从数据库建立模型 模型页面基本操作 用模型设计数据库并导出 结构、数据导入导出 导出 导入 附属小功能 刷新小按钮 查看操作对应sql语句 执行时间查看 手动筛选数据 练习 数据准备 使用SQL语句导入表结构与数据 如何验证答案是否正确 题目 部分参考答案(只放了两题的) 少数题推导歩鄹(记录思路) 亦可处理好缩进 选择部分代码执行 推导每步执行结果 核心点--解题思路与注意点、小结 个人解题思路与技巧 小结 某题详细分析思路(没有写完) 题目 分析流程、技巧/注意点 看题分析用到哪些表 在模型中查看表关联 查看表结构与内容,标注每一步的关联字段 人工分析验证语句执行结果是否正确 推荐还是从最初那步开始去校对结果 按思路人工查表 通过 python 进行 MySQL 操作 先安装 pymysql 模块 参考数据 查询案例 普通查询操作 前置数据 SQL注入 避免SQL注入 其他操作(增改删) 扩展点 utf8mb4 mysql语句注释 利用注释备注信息(注释用的6 也可以造成 SQL注入 ) -- 这是行注释,这一行从这里开始的SQL语句都不会被执行 #

pymysql 的用法

独自空忆成欢 提交于 2019-11-28 12:01:53
(一)Pymysql 的操作方法 1、安装pymysql --在命令窗口输入: pip install pymysql 2、使用pymysql 1)首先连接数据库--要知道(ip、port、user、passwd、db) 2)建立游标--相当于仓库管理员帮助你拿取数据(可指定游标类型,如cursors.DicCursor ) 3)执行测试语句--execute() 4)获取结果--fetchall()/fetchone() conn = pymysql.connect(host='111.11.1.11', port=1024,user='zz', password='xixi', charset='utf8', autocommit=True ) cur = conn.cursor(pymysql.cursors.DicCursor)#建立游标 #指定游标类型 sql = 'select * from app_myuser limit 5;' sql2 = "insert into app_myusr(username,passwd,is_admin) values ('zz','526453','89')" cur.execute()#执行测试语句 result = cur.fetchall()#获取所有结果,获取的是二维数组 result = cur.fetchone()

50种方法优化SQL Server

冷暖自知 提交于 2019-11-28 11:38:14
查询速度慢的原因很多,常见如下几种:      1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)      2、I/O吞吐量小,形成了瓶颈效应。      3、没有创建计算列导致查询不优化。      4、内存不足      5、网络速度慢      6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)      7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)      8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。      9、返回了不必要的行和列      10、查询语句不好,没有优化   可以通过如下方法来优化查询 :      1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要.      2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)      3、升级硬件      4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段      5、提高网速;      6、扩大服务器的内存,Windows 2000和SQL

50种方法优化SQL Server

折月煮酒 提交于 2019-11-28 11:37:57
查询速度慢的原因很多,常见如下几种:      1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)      2、I/O吞吐量小,形成了瓶颈效应。      3、没有创建计算列导致查询不优化。      4、内存不足      5、网络速度慢      6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)      7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)      8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。      9、返回了不必要的行和列      10、查询语句不好,没有优化   可以通过如下方法来优化查询 :      1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要.      2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)      3、升级硬件      4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段      5、提高网速;      6、扩大服务器的内存,Windows 2000和SQL