前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3连接MySQL数据库

python3连接MySQL数据库

作者头像
py3study
发布2020-01-09 19:55:57
3.6K0
发布2020-01-09 19:55:57
举报
文章被收录于专栏:python3python3

环境:python 3.6.1 + mysql 5.1

Python3 支持用 pymysql 模块来链接数据库

1、pymysql安装

windows下:pip install pymysql 直接安装

官方文档:http://www.pymssql.org/en/stable/

2、实现思路

和用C++访问数据库方法基本相同

A. 通过pymysql模块的方法,与数据库建立连接

B. 编写SQL语句

C. 通过连接的返回的数据库对象,调用相应方法执行SQL语句

D. 读取数据库返回的数据(即缓存区中的数据)

E. 对相应的返回数据进行操作

F. 关闭数据库对象,关闭数据库

3、查询语句执行流程图:

4、增删改语句执行流程图:

5、事务:访问和更新数据库的一个程序执行单元

- 原子性:事务中包括的操作要么做,要么都不做(捆绑不可分割)

- 一致性:事务必须使数据库从一致性状态变到另一个一致性状态

- 隔离性:一个事务的执行不能被其他事务干扰

- 持久性:事务一旦提交,它对数据库的改变就是永久性的

6、增删改查功能实现代码:

代码语言:javascript
复制
#导入pymysql模块
import  pymysql

class MYSQL:
    # 初始化函数,初始化连接列表
    def __init__(self,host,user,pwd,dbname):
        self.host   = host
        self.user   = user
        self.pwd    = pwd
        self.dbname = dbname

    # 获取数据库游标对象cursor
    # 游标对象:用于执行查询和获取结果
    def getCursor(self):

        # 建立数据库连接
        self.db = pymysql.connect(self.host,self.user,self.pwd,self.dbname)

        # 创建游标对象
        cur = self.db.cursor()

        # 返回
        return cur

    # 查询操作
    def queryOperation(self,sql):

        # 建立连接获取游标对象
        cur = self.getCursor()

        # 执行SQL语句
        cur.execute(sql)

        # 获取数据的行数
        row = cur.rowcount

        # 获取查询数据
        # fetch*
        # all 所有数据,one 取结果的一行,many(size),去size行
        dataList = cur.fetchall()

        # 关闭游标对象
        cur.close()

        # 关闭连接
        self.db.close()

        # 返回查询的数据
        return dataList,row

    # 删除操作
    def deleteOperation(self,sql):

        # 获取游标对象
        cur = self.getCursor()
        try:
            # 执行SQL语句
            cur.execute(sql)

            # 正常结束事务
            self.db.commit()

        except Exception as e:
            print(e)

            # 数据库回滚
            self.db.rollback()

        # 关闭游标对象
        cur.close()

        # 关闭数据库连接
        self.db.close()

    # 数据更新
    def updateOperation(self,sql):
        cur = self.getCursor()
        try:
            cur.execute(sql)
            self.db.commit()
        except Exception as e:
            print(e)
            self.db.rollback()

        cur.close()
        self.db.close()

    # 添加数据
    def insertOperation(self,sql):

        cur = self.getCursor()
        try:
            cur.execute(sql)
            self.db.commit()
        except Exception as e:
            print(e)
            self.db.rollback()

        cur.close()
        self.db.close()

正在持续更新,若有错误,欢迎大家指正。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档