[学习记录]pymysql的基本操作

Posted 冷血无情康纳酱

tags:

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

pymysql是python与mysql的一个接口库,这里简单记录一下pymysql的使用方法,环境为python3

本篇主要参考《python3网络爬虫开发实战》中关于mysql的部分内容。,原书作者主页https://cuiqingcai.com/5052.html

pymysql官方文档:http://pymysql.readthedocs.io/en/latest/

可以直接通过pip install pymysql安装

常用经典操作:

1.连接数据库

db = pymysql.connect(host=localhost,user=username,password=passwd,port=portnumber,charset=‘utf8‘)

db.close()

第一步是建立连接,在使用完毕之后记得close断开连接。在connect中最后的charset=‘utf8‘是为了能够正确处理中文字符。

2.游标

cursor=db.cursor()
sql=‘‘#填入想要运行的sql语句
cursor.execute(sql)

游标是我们对数据库操作的主要工具,通过游标我们能够运行sql语句,也能获取从数据库返回的查询结果。

3.事务保护

事务保护即我们不允许插入数据只插入了一半的情况,标准写法如下

try:
    cursor.execute(sql)
    db.commit()
except:
    db.rollback()

关于db.commit的内容稍后介绍

4.如果我想要插入数据

用python往数据库中插入数据的好处是方便,自动插入大量数据,省去了自己一条一条sql插入。

sql=insert into tablename values(%s,%s,%s,%s)
data=(a,b,c,d)
cursor.execute(sql,data)
db.commit()

这条语句中将需要插入的数据用%s代替,然后把数据元组作为execute()的第二个参数传进去,这样就可以了。

而db.commit()是将语句交付数据库执行,对于数据插入、更新、删除都需要调用该方法才能生效。

5.数据查询

查询后为了得到数据库的返回结果,需要使用游标的fetchall()或fetchone()方法

sql=select * from test
cursor.execute(sql)
data = cursor.fetchall()
data = cursor.fetchone()

fetchall()是返回全部的查询结果,fetchone()返回第一条查询的结果。

每当fetchone一次,系统的指针就会自动指向下一条记录,而fetchall会一次性将指针从当前位置不停地往下移动直到得到了全部的查询结果,之后再进行fetchone和fetchall都只能得到空结果了。

 

以上是关于[学习记录]pymysql的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段

Python之PyMySQL的使用

数据库可视化和pymysql模块

Python学习笔记

Python学习笔记5-操作mysql数据库pymysql

python小白学习记录 多线程爬取ts片段