一. 游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。
      用户可以用SQL 语句逐一从游标中获取记录,并赋值给主变量,交由python
进一步处理,一组主变量一次只能存放一条记录。
       仅使用主变量并不能完全满足SQL 语句向应用程序输出数据的要求
 
1.游标和游标的优点
   在数据库中,游标是一个十分重要的概念。游标提供了一种从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条,一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果进行处理时,必须声明一个指向该结果的游标。
       常用 方法:
                  cursor(): 创建游标对象
                   close(): 关闭游标对象
                   fetchone(): 得到结果集的下一行
                   fetchmany([size = cursor.arraysize]):得到结果集的下几行
                   fetchall():得到结果集中剩下的所有行
                  excute(sql[,args]): 执行一个数据库查询或命令
                  executemany(sql,args):执行多个数据库查询或命令
 
#/usr/bin/python
#coding=utf-8
#@Time   :2017/11/22 13:39
#@Auther :liuzhenchuan
#@File   :游标.py
 
##从另一个python脚本中调用
 
 
 
from mysqloperate import connect_mysql
 
if __name__ == '__main__':
    sql = 'select *from test'
    sql1 = "insert into test(id) value (%s);"
    param = []
    for i in xrange(100,130):
        param.append([str(i)])
    print param
    cnx = connect_mysql()
    cus = cnx.cursor()
    # print dir(cus)
    try:
        cus.execute(sql)
        #取多行数据库结果
        cus.executemany(sql1, param)
        result1 = cus.fetchone()
        print 'result1'
        print result1
 
        result2 = cus.fetchmany(3)
        print 'result2'
        print result2
 
        result3 = cus.fetchall()
        print 'result3'
        print result3
        cus.close()
        cnx.commit()
 
    except Exception  as e:
        cnx.rollback()
        raise e
    except TypeError as c:
        raise c
    finally:
        cnx.close()
 
>>>
C:\Python27\python.exe "E:/猿课python脚本/mysql 数据库/游标.py"
[['100'], ['101'], ['102'], ['103'], ['104'], ['105'], ['106'], ['107'], ['108'], ['109'], ['110'], ['111'], ['112'], ['113'], ['114'], ['115'], ['116'], ['117'], ['118'], ['119'], ['120'], ['121'], ['122'], ['123'], ['124'], ['125'], ['126'], ['127'], ['128'], ['129']]
result1
None
result2
()
result3
()
 
Process finished with exit code 0
 
 
在linux上数据库上查询
mysql> select *from test;
+-----+
| id  |
+-----+
| 100 |
|  99 |
|  95 |
|  95 |
|  98 |
|  97 |
|  96 |
|  95 |
| 100 |
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
| 106 |
| 107 |
| 108 |
| 109 |
| 110 |
| 111 |
| 112 |
| 113 |
| 114 |
| 115 |
| 116 |
| 117 |
| 118 |
| 119 |
| 120 |
| 121 |
| 122 |
| 123 |
| 124 |
| 125 |
| 126 |
| 127 |
| 128 |
| 129 |
+-----+
38 rows in set (0.04 sec)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

python 基础 9.4 游标的更多相关文章

  1. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  2. Python基础教程(第2版 修订版) pdf

    Python基础教程(第2版 修订版) 目录 D11章快速改造:基础知识11.1安装Python11.1.1Windows11.1.2Linux和UNIX31.1.3苹果机(Macintosh)41. ...

  3. Python基础教程(第3版)PDF高清完整版免费下载|百度云盘

    百度云盘:Python基础教程(第3版)PDF高清完整版免费下载 提取码:gkiy 内容简介 本书包括Python程序设计的方方面面:首先从Python的安装开始,随后介绍了Python的基础知识和基 ...

  4. python基础全部知识点整理,超级全(20万字+)

    目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...

  5. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  6. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  7. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  8. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  9. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

随机推荐

  1. hdu4099 Revenge of Fibonacci

    题意:给定fibonacci数列,输入前缀,求出下标.题目中fibonacci数量达到100000,而题目输入的前缀顶多为40位数字,这说明我们只需要精确计算fibinacci数前40位即可.查询时使 ...

  2. 对中级 Linux 用户非常有用的 20 个命令

    FROM:http://www.oschina.net/translate/20-advanced-commands-for-middle-level-linux-users 21. 命令: Find ...

  3. [React] Override webpack config for create-react-app without ejection

    The default service worker that comes with create-react-app doesn't allow for very much configuratio ...

  4. Binder与interface

    在Interface中,asBinder函数涌来将服务类接口类型转换为IBinder类型: 相反的,asInterface函数用来将Ibinder类型转换为服务接口类型

  5. java中数组的复制

    数组复制使我们在编程过程中经常要使用到的,在java中数组复制我们大概能够分为两种,一种是引用复制,还有一种就是深度复制(复制后两个数组互不相干). 以下我们就通过測试的方法来具体看看什么是引用复制和 ...

  6. C++ 11 可变模板参数的两种展开方式

    #include <iostream> #include <string> #include <stdint.h> template<typename T&g ...

  7. JavaScript创建块级作用域

    1.JavaScript创建块级作用域 (1)方法一:ES6 (2)方法二:闭包 2.示例 <!DOCTYPE html> <html lang="zh"> ...

  8. 【Excle数据透视表】如何为数据透视表应用样式

    如下数据透视表样例,如何为该数据透视表设置样式呢? 步骤 单击数据透视表区域的任意单元格→数据透视表工具→设计→数据透视表样式→打开下拉箭头即可任意选择

  9. Deferred Shader GBuffer 感性认识。。。

  10. java调用本地默认浏览器

    1 http://blog.csdn.net/casularm/article/details/3401018 2