当前位置: 首页>编程语言>正文

python中创建游标函数的作用 python 数据库游标


前言

    Python 中常用的 Database Drivers:

    Mysql、PostgreSQL、NoSQL Databases、Other Relational Databases(apsw、dataset、pymssql)

 

    Python 本身嵌入了一款轻量级数据库 SQLite(Django 也默认使用的是这个),其他数据库则需要额外安装了。

 



Mysql

    在 Python 中常用的 Mysql 库是 MySQLdb,但是由于还未对 python 3提供支持,所以从其中 fork 出来一个 mysqlclient --- mysql-python frok supporting Python 3;

    安装前需要导入 python3-dev 头文件:

Note on Python 3 : if you are using python3 then you need to install python3-dev using the following command :

sudo apt-get install python3-dev # debian / Ubuntu

sudo yum install python3-devel # Red Hat / CentOS

brew install mysql-connector-c # macOS (Homebrew) MAC 通常还需要安装 Xcode 的 Command Line Tool


Install from PyPI

pip3 install mysqlclient

    PS:pip3 list 可查看已安装的模块;

    代码导入 MySQLdb 即可;

 



cursor

    进入正题,游标(cursor)是一个存储在 Mysql 上的数据库查询,不是一条语句,而是检索出来的结果集,在存储了游标之后,即可根据需要滚动或浏览其中的数据;

    游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或作出更改;

    MySQL 官方介绍:

MySQL supports cursors inside stored programs. The syntax is as in embedded SQL. Cursors have these properties:

Asensitive: The server may or may not make a copy of its result table

Read only: Not updatable

Nonscrollable: Can be traversed only in one direction and cannot skip rows

Cursor declarations must appear before handler declarations and after variable and condition declarations.

    

    由于数据库类型太多而且很杂,SGI 小组应运而生,为不同的数据库提供一致的访问接口即 DB-API,可以在不同数据库间快速移植代码;

    Python 中 MySQLdb 也遵循 DB-API,实现了 connect()、connect.cursor() 等方法……其他的 db 类也实现了同样的方法,故可以很容易移植。

#DB-API 规范:
    #apilevel DB-API 模块兼容的 DB-API 版本号
    #threadsafety 线程安全级别
    #paramstyle 该模块支持的 SQL 语句参数风格
#DB-API规范的方法:
    #connect() 连接函数,生成一个connect对象,以提供数据库操作,同事函数参数也是固定好的

    其中 connect 对象又有如下方法:

        close():关闭 connect 对象,关闭后无法再进行操作,需要再次建立连接实例才行。

        commit():提交当前事务,没有 commit 的事务数据库是默认会回滚的。

        rollback():取消当前事务。

        cursor():创建游标对象。

 

    cursor 游标对象有如下属性和方法:

        方法:

            close():关闭游标对象。

            fetchone():得到结果集的下一行。

            fetchmany([size = cursor.arraysize]):得到结果集的下几行。

            fetchall():得到结果集中剩下的所有行。

            excute(sql[, args]):执行一个数据库查询或命令。

            excutemany(sql, args):执行多个数据库查询或命令。

        属性:

            connection:创建此游标对象的数据库连接。

            arraysize:使用 fetchmany() 方法一次取出多少条数据,默认 1

            lastrowid:相当于 PHP 的 last_inset_id()


https://www.xamrdz.com/lan/5c31963116.html

相关文章: