学习如何使用python的pymysql模块来操作mysql数据库

这里的基本用法主要借鉴了该篇博客:https://www.cnblogs.com/woider/p/5926744.html

因为这个作者总结的很全面,也很简洁,看完很容易上手

一.pymysql的主要方法

pymysql.connect()参数说明:(连接数据库时需要添加的参数)
host(str): MySQL服务器地址
port(int): MySQL服务器端口号
user(str): 用户名
passwd(str): 密码
db(str): 数据库名称
charset(str): 连接编码 connect()对象支持的方法:
cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接 cursor对象支持的方法:
execute(op) 执行一个数据库的查询命令
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象

二.常用操作

1.查询数据

# coding: utf-8
# author: hmk import pymysql.cursors # 连接数据库
conn = pymysql.connect(host='localhost',
user='root',
password='',
db='test',
charset='utf8') # 创建一个游标
cursor = conn.cursor() # 查询数据
sql = "select * from maoyan_movie"
cursor.execute(sql) # 执行sql # 查询所有数据,返回结果默认以元组形式,所以可以进行迭代处理
for i in cursor.fetchall():
print(i)
print('共查询到:', cursor.rowcount, '条数据。') # 获取第一行数据
result_1 = cursor.fetchone()
print(result_1) # 获取前n行数据
result_3 = cursor.fetchmany(3)
print(result_3) cursor.close() # 关闭游标
conn.close() # 关闭连接

2.插入数据

# coding: utf-8
# author: hmk import pymysql.cursors # 连接数据库
conn = pymysql.connect(host='localhost',
user='root',
password='123456',
db='test',
charset='utf8') # 创建一个游标
cursor = conn.cursor()
# 插入数据
# 数据直接写在sql后面
sql = "insert into maoyan_movie(ranking,movie,release_time,score) values(%s, %s, %s, %s)" # 注意是%s,不是s%
cursor.execute(sql, ['', '头号玩家', '上映时间:2018-05-21', '9.2']) # 列表格式数据
cursor.execute(sql, ('', '马里奥', '上映时间:2018-01-21', '9.2')) # 元组格式数据 # 数据单独赋给一个对象
sql = "insert into maoyan_movie values(%s,%s,%s,%s)"
data = ('', '铁蛋超人', '上映时间:2019-01-21', '9.5')
cursor.execute(sql, data) #sql和data之间以","隔开
sql = "insert into maoyan_movie values(%s,'%s','%s',%s)"
data = (102, '铁蛋超人', '上映时间:2019-01-21', 9.5)
cursor.execute(sql % data) #sql和data之间以"%"隔开,此时它的sql中注意要给中文字符对应的占位符加上引号,即"%s",不然会报错:unsupported format character 

conn.commit()   # 提交,不然无法保存插入或者修改的数据(这个一定不要忘记加上)
cursor.close()  # 关闭游标
conn.close() # 关闭连接

3.修改数据

# coding: utf-8
# author: hmk import pymysql.cursors # 连接数据库
conn = pymysql.connect(host='localhost',
user='root',
password='',
db='test',
charset='utf8')
# 创建一个游标
cursor = conn.cursor()
# 修改数据
sql = "update maoyan_movie set movie='%s' where ranking=%s" #注意%s什么时候加引号,什么时候不加
data = ('返老还童', 1)
cursor.execute(sql % data) sql = "update maoyan_movie set movie=%s where ranking=%s"
data = ('寂静之地', 1)
cursor.execute(sql, data)
conn.commit()   # 提交,不然无法保存插入或者修改的数据
cursor.close()  # 关闭游标
conn.close() # 关闭连接

4.删除数据

# coding: utf-8
# author: hmk import pymysql.cursors # 连接数据库
conn = pymysql.connect(host='localhost',
user='root',
password='',
db='test',
charset='utf8') # 创建一个游标
cursor = conn.cursor() # 删除数据
sql = "delete from maoyan_movie where ranking=%s"
data = (2)
cursor.execute(sql, data) conn.commit() # 提交,不然删除操作不生效
cursor.close()  # 关闭游标
conn.close() # 关闭连接

附上使用的表:

create table `maoyan_movie` (
`ranking` double ,
`movie` varchar (150),
`release_time` blob ,
`score` float
);

2018-06-22 21:41:16

使用pymysql操作数据库的更多相关文章

  1. Python学习(二十九)—— pymysql操作数据库优化

    转载自:http://www.cnblogs.com/liwenzhou/articles/8283687.html 我们之前使用pymysql操作数据库的操作都是写死在视图函数中的,并且很多都是重复 ...

  2. pymysql操作数据库、索引、慢日志管理

    目录 pymysql操作数据库 简单操作 sql的注入问题 sql注入问题解决办法 sql注入问题模板总结 利用pymysql操作数据库 (增删改),conn.commit() 索引 1.为何要有索引 ...

  3. pymysql 操作数据库

    一.简介 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同,但目前pymysql支持python3.x而后者不支持3.x版本 其执行语句与sql源码相似 二.使用 ...

  4. Python使用PyMysql操作数据库

    安装 pip install -U pymysql 连接数据库 连接数据库有两种不同的格式 直接使用参数 代码如下 import pymysql.cursors connection = pymysq ...

  5. 用pymysql操作数据库

    import pymysql # 打开数据库连接 connection = pymysql.connect(host='127.0.0.1', user='root', passwd=', db='s ...

  6. MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05

    目录 mysql语句注释 navicat 的基本使用 特色(个人总结) 与数据服务器建立连接 创建&打开数据库.表 创建 打开 修改操作表结构 修改表结构 查询修改操作表数据 基本语句对应的操 ...

  7. Python3使用PyMySQL操作数据库

    1. 安装PyMySQL pip install PyMySQL 关于PyMySQL的详细内容可以查看官方文档  Github 2. 创建表 在某个数据库内,使用以下指令建表 CREATE TABLE ...

  8. pymysql操作数据库

    pymysql.connect()参数说明:(连接数据库时需要添加的参数)host(str): MySQL服务器地址port(int): MySQL服务器端口号user(str): 用户名passwd ...

  9. python(pymysql操作数据库)

    第一种方式 import pymysql # 打开数据库连接 db = pymysql.connect(host="192.168.88.11", user="root& ...

随机推荐

  1. MySql数据库概念

    一.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行 ...

  2. 数据库中char和varchar区别

    区别: 1)char长度是固定,而varchar长度是可变的: 比如:'abc'对于char(10)表示存储字符将占10个字节(包括7个空字符),而同样varchar(10)只占3个自己长度,10只是 ...

  3. Android图片裁剪解决方案 -- 从相册截图

    在看Storage Access Framework,里面有一个加载相册图片的程序片断,可能是系统版本的问题,无法返回结果,这里找到一个适用于旧版本的方法. 在Android开发中,可以轻松调用一个I ...

  4. opencv学习之路(10)、ROI与mask掩码

    一.ROI #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat img=imread("E://0 ...

  5. py4CV例子2汽车检测和svm算法

    1.什么是汽车检测数据集: ) pos, neg = , ) matcher = cv2.FlannBasedMatcher(flann_params, {}) bow_kmeans_trainer ...

  6. 20165310 NetSec Week4 Exp2 后门原理与实践

    20165310 NetSec Exp2后门原理与实践 一.基础问题 例举你能想到的一个后门进入到你系统中的可能方式? 网页木马等访问网页导致 下载非官方源软件 随意下载邮件中不明程序等 例举你知道的 ...

  7. JUnit Parametrized Tests

    Junit allows us to create parametrized tests. Parametrized test class has to be annotated with the @ ...

  8. Cmder + Babun 打造 Windows 好用的终端工具

    Babun a windows shell you will love Babun features the following: Pre-configured Cygwin with a lot o ...

  9. Git 收集别名

    .gitconfig文件夹一般是在C:\Users\Administrator路径下,用于全局的git的配置 下面是git别名的设置: [alias] last = log -1 --stat a = ...

  10. HDU 4311 Meeting point-1(曼哈顿距离最小)

    http://acm.hdu.edu.cn/showproblem.php?pid=4311 题意:在二维坐标中有n个点,现在要从这n个点中选出一个点,使得其他点到该点的曼哈顿距离总和最小. 思路: ...