PyMySQL

Posted ming-hui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyMySQL相关的知识,希望对你有一定的参考价值。

一、Pymysql?

1、概念

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

2、PyMySQL安装

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。使用语句:pip install pymysql安装。

3、MySQL数据库准备

  • 首先创建一个可连接的库并拥有该库的用户名和密码以及操作权限;
  • 创建一个可供操作的表格并插入数据;
  • 在你的机子上已经安装了 PyMySQL 模块。

4、连接数据库

 1 # 导入pymsql模块
 2 import pymysql
 3 # 连接database
 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdatase",charset="utf8")
 5 # 得到一个可以执行SQL语句的光标对象
 6 cursor = conn.cursor()
 7 # 要执行的sql语句
 8 sql = "select * from userinfo where name = %s and pwd = %s;"
 9 # 执行sql语句
10 cursor.execute(sql,["name","pwd"])
11 # 关闭光标对象
12 cursor.close()
13 # 关闭数据库连接
14 conn.close()

# 得到一个可以执行SQL语句并且将结果作为字典返回的游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

二、基本操作

1、增

1 import pymysql
2 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8")
3 cursor = conn.cursor()
4 sql = "insert into userinfo (name,pwd) values (%s,%s);"
5 cursor.execute(sql,["小明",123])
6 #  数据的提交
7 conn.commit()
8 cursor.close()
9 conn.close()

批量的增加数据:

1 import pymysql
2 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="day59",charset="utf8")
3 cursor = conn.cursor()
4 sql = "insert into userinfo (name,pwd) values (%s,%s);"
5 data=[("小花",123),("小李",456),("小白",789)]
6 #  批量插入数据使用executemany,data是可迭代的数据
7 cursor.executemany(sql,data)
8 conn.commit()
9 cursor.close()
10 conn.close()

获取刚插入数据的ID:

在提交事务之后获取刚插入数据的ID值:last_id = cursor.lastrowid.

2、删 

   1 # 导入pymsql模块

 

   2 import pymysql

 3 # 连接database
 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8")
 5 #  得到一个可以执行SQL语句的光标对象
 6 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
 7 print(cursor)
 8 # 要执行的sql语句
 9 sql = "delete from userinfo where name = %s;"
10 #  执行sql语句
11 cursor.execute(sql,"小明")
12 conn.commit()
13 # 关闭光标对象
14 cursor.close()
15 # 关闭数据库连接
16 conn.close()

3、改

 1 # 导入pymsql模块
 2 import pymysql
 3 # 连接database
 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8")
 5 #  得到一个可以执行SQL语句的光标对象
 6 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
 7 print(cursor)
 8 # 要执行的sql语句
 9 sql = "update userinfo set pwd=%s where name=%s;"
10 #  执行sql语句
11 cursor.execute(sql,["321","小明"])
12 conn.commit()
13 # 关闭光标对象 14 cursor.close() 15 # 关闭数据库连接 16 conn.close()

4、查

 1 # 导入pymsql模块
 2 import pymysql
 3 # 连接database
 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8")
 5 #  得到一个可以执行SQL语句的光标对象
 6 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
 7 print(cursor)
 8 # 要执行的sql语句
 9 sql = "select * from userinfo where name = %s;"
10 #  执行sql语句
11 cursor.execute(sql,["小明"])
12 ret1 = cursor.fetchone()  # 取一条
13 ret2 = cursor.fetchmany(3)  # 取三条
14 ret3 = cursor.fetchall()  # 取所有
15 cursor.scroll(1, mode="absolute")  # 绝对移动,你指哪儿 它就移到哪儿
16 cursor.scroll(1, mode="relative")  # 相对移动, 相对它当前在的位置
17 cursor.scroll(-1, mode="relative")  # 相对移动, 相对它当前在的位置
18 # 关闭光标对象
19 cursor.close()
20 # 关闭数据库连接
21 conn.close()

 







以上是关于PyMySQL的主要内容,如果未能解决你的问题,请参考以下文章

运行 tkinter+pymysql 脚本时出现 pymysql.err.ProgrammingError

pymysql.err.InterfaceError: (0, '')解决办法

Python 与 MySQL 交互

Python 与 MySQL 交互

pymysql操作

pymysql使用