系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > MsSql > 详细页面

Python 解析pymysql模块操作数据库的方法

时间:2020-02-18来源:系统城作者:电脑系统城

pymysql 是 python 用来操作MySQL的第三方库,下面具体介绍和使用该库的基本方法。

1.建立数据库连接

通过 connect 函数中 parameter 参数 建立连接,连接成功返回Connection对象


 
  1. import pymysql
  2.  
  3. #建立数据库连接
  4. connection = pymysql.connect(host = 'localhost',
  5. user = 'root',
  6. password = '123456',
  7. database = 'mydb',
  8. charset = 'utf8'
  9. )
  10. #print(connection)

pymysql.connect()函数中常用的连接参数有以下几种:

  • host:数据库主机名或者ip地址
  • port:端口号
  • user:数据库的账号
  • password 或 passwd:数据库的密码
  • database 或 db:数据库的名字
  • charset:编码方式

Connection对象的重要方法:

  • close() 关闭数据库连接
  • commit() 提交数据库事物
  • rollback() 回滚数据库事务
  • cursor() 获得 Cursor游标对象

2.创建游标

一个Cursor游标对象,暂时保存了SQL操作所影响到的数据,相同的数据库连接创建的游标所引起的数据变化,会马上反应到同一连接中的其它游标对象。但是不同数据库连接中的游标对象,是否能及时反映出来,则与数据库事物管理有关。

Cursor对象基本方法和属性:

execute(operation,[parameters])

执行一条SQL语句,operation时SQL语句,parameters是其参数。返回值是整数,表示执行SQL语句影响的行数

executemany(operation,[parameters])

批量执行SQL语句

callproc(procname,[parameters])

执行存储过程,procname是存储过程名

使用execute()和executemany()方法查询后,通过以下提取方法提取结果集

fetchone()

从结果集当中返回一条记录的序列,无则返回None

fetchmany([size=cursor.arraysize])

从结果集当中返回小于或等于size的记录序列,无则返回空序列,size默认是整个游标的行数

fetchall()

从结果集当中返回所有的行数

3.建立数据库(这里我使用的是NaviCat)

创建一个名为pydb的数据库,表名为user,字段name和userid

在这里插入图片描述

在这里插入图片描述

数据的查找


 
  1. #建立数据库连接
  2. connection = pymysql.connect(host = 'localhost',
  3. user = 'root',
  4. password = '123456',
  5. database = 'mydb',
  6. charset = 'utf8'
  7. )
  8. #print(connection)
  9. try:
  10. #创建游标对象
  11. with connection.cursor() as cursor:
  12. #执行SQL操作
  13. sql = 'select name, userid from user where userid >%(id)s'
  14. cursor.execute(sql, {'id':0})
  15. #提取数据集
  16. result_set = cursor.fetchall()
  17. for row in result_set:
  18. print('id:{0} - name:{1}'.format(row[1],row[0]))
  19. #游标自动关闭
  20. finally:
  21. #关闭连接
  22. connection.close()

数据插入


 
  1. #数据增加
  2. connection = pymysql.connect(host = 'localhost',
  3. user = 'root',
  4. password = '123456',
  5. database = 'mydb',
  6. charset = 'utf8'
  7. )
  8. try:
  9. with connection.cursor() as cursor:
  10. sql = 'insert into user (userid,name) values (%s,%s)'
  11. cursor.execute(sql,(3,'cc'))
  12. #affectcount = cursor.execute(sql,(3,'cc'))
  13. #print('影响的数据行数:{0}'.format(affectcount))
  14. #提交数据库事务
  15. connection.commit()
  16. except pymysql.DatabaseError:
  17. #数据库事务回滚
  18. connection.rollback()
  19. finally:
  20. connection.close()

执行结果:

在这里插入图片描述

数据更新


 
  1. #数据更新
  2. connection = pymysql.connect(host = 'localhost',
  3. user = 'root',
  4. password = '123456',
  5. database = 'mydb',
  6. charset = 'utf8'
  7. )
  8. #print(connection)
  9. try:
  10. with connection.cursor() as cursor:
  11. sql = 'update user set name = %s where userid > %s'
  12. cursor.execute(sql,('Tom',2))
  13. #提交事务
  14. connection.commit()
  15. print('更新成功')
  16. except pymysql.DatabaseError as e:
  17. connection.rollback()
  18. print(e)
  19. finally:
  20. connection.close()

执行结果:

在这里插入图片描述

数据删除


 
  1. #数据删除
  2. connection = pymysql.connect(host = 'localhost',
  3. user = 'root',
  4. password = '123456',
  5. database = 'mydb',
  6. charset = 'utf8'
  7. )
  8. try:
  9. with connection.cursor() as cursor:
  10. sql = 'delete from user where userid = %s'
  11. cursor.execute(sql,(1))
  12. #提交事务
  13. connection.commit()
  14. print("删除成功")
  15. except pymysql.DatabaseError as e:
  16. connection.rollback()
  17. print(e)
  18. finally:
  19. connection.close()
  20.  

执行结果:

在这里插入图片描述

总的来说和java进行对比,在数据库的连接 和对

数据集进行的处理上,python体现的非常简洁,最主要易于使用和理解。人生苦短,我用python!

总结

以上所述是小编给大家介绍的Python 解析pymysql模块操作数据库的方法,希望对大家有所帮助!

分享到:

相关信息

  • SQL Server 数据库中的收缩数据库和文件操作

    收缩数据文件通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间,在文件末尾创建足够的空间后,可取消对文件末尾的数据页的分配并将它们返回给文件系统,本文给大家介绍SQL Server 数据库中的收缩数据...

    2023-10-27

  • dbeaver配置SQL server连接实现

    一、需要java jdk环境,我用的比较新 二、dbeaver新建连接SQL server...

    2023-10-27

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载