Python pymysql对数据库的基础操作

示例数据库名demo,表名info
select * from info; 查看该表数据

+----+-------+--------+-----+---------------------+---------------------+
| id | name  | gender | age | createTime          | updateTime          |
+----+-------+--------+-----+---------------------+---------------------+
|  1 | Miles | Male   |  21 | 2019-12-24 10:10:41 | 2019-12-24 10:11:02 |
|  2 | Mary  | Female |  15 | 2019-12-24 19:26:24 | 2019-12-24 19:26:24 |
|  3 | Marx  | Male   |  35 | 2019-12-24 19:39:19 | 2019-12-24 19:39:19 |
|  4 | Fox   | Female |   8 | 2019-12-24 19:39:19 | 2019-12-24 19:39:19 |
+----+-------+--------+-----+---------------------+---------------------+

查询数据

获取查询结果的三种方法:

  • fetchone() 获取查询结果中最早的一行数据,返回结果为一个元组,对应查询的字段,如果查询结果为空则返回None
  • fetchall() 获取所有的查询结果,返回结果为一个大元组,大元组中每个元素为小元组,小元组就是每一行的数据,对应查询的字段,如果查询结果为空则返回一个空元组
  • fetchmany() 和fetchall()类似,只不过要传入一个整数表示要获取多少行数据,从最早开始算,如果传入参数大于结果条数则获取所有结果,如果查询结果为空则返回空元组
import pymysql

# 连接数据库服务器,参数:IP地址,用户名,密码,要使用的数据库名称,编码格式
conn = pymysql.connect('服务器ip地址', 'mysql用户名', 'mysql密码', '数据库名', charset='utf8')

# 获得一个游标对象来操作数据库
cur = conn.cursor()

# 编写sql
sql = 'select name, gender, age from info;'

# 传入sql并执行
cur.execute(sql)

# 使用fetchone,fetchmany,fetchall三种方法之一获得查询的结果
result = cur.fetchall()

# 关闭游标和数据库连接
cur.close()
conn.close()

# 打印结果
print(result)

输出结果:

# fetchone()
('Miles', 'Male', 21)

# fetchall()
(('Miles', 'Male', 21), ('Mary', 'Female', 15), ('Marx', 'Male', 35), ('Fox', 'Female', 8))

# fetchmany(2)
(('Miles', 'Male', 21), ('Mary', 'Female', 15))

增删改

增删改操作不需要获得结果,但是要commit提交操作

import pymysql

# 连接数据库服务器,参数:IP地址,用户名,密码,要使用的数据库名称,编码格式
conn = pymysql.connect('服务器ip地址', 'mysql用户名', 'mysql密码', '数据库名', charset='utf8')

# 获得一个游标对象来操作数据库
cur = conn.cursor()

# 编写sql
sql = 'insert into info(name, gender, age) values("Demo", "Male", 10);'     # 新增数据
# sql = 'delete from info where name="Miles";'                              # 删除数据
# sql = 'update info set name="Mark" where name="Marx";'                    # 修改数据

# 传入sql并执行
cur.execute(sql)

# 提交修改
conn.commit()

# 关闭游标和数据库连接
cur.close()
conn.close()
posted @ 2019-12-24 20:15  MilesMa  阅读(836)  评论(0编辑  收藏  举报