Python:pymysql链接mysql数据库查询简单实例。

pymysql是一个工具包,主要是在Python里面连接数据库然后直接在Python里面连接数据库进行操作,是Python的第三方包。


运行环境 Runtime environment

1
2
3
操作系统: Windos10  
IDE: pycharm 2021.3.1 x64
语言: python v3.9.1

背景

能有啥背景,搞开发的,或多或少要接触mysql数据库吧?

在这里主要是记录以后代码模板,方便以后自己拿来用。

Python 3 还是推荐使用 pymysql

安装 pymysql

pip install pymysql

or

pip3 install pymysql

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import pymysql

def init(host,user,password,db):
db = pymysql.connect(host,user,password,db)
return db

"""
查询操作
"""
def query(sql,db):
"""
创建一个对数据库进行查询的方法
"""
cursor = db.cursor() # 获取游标窗口
try:
cursor.execute(sql) # 执行sql语句
res = cursor.fetchall() # 获取返回值
db.close() # 关闭数据库
print(res)
except:
print("sql语句错误")

def commit(sql,db):
"""
对表进行增加,删除,修改都可以
"""
cursor = db.cursor()
try:
cursor.execute(sql) # 执行sql语句
db.commit() # 对数据进行保存
except:
print("sql语句错误")

db = init("192.168.1.102","root","root","raxianch") # 初始化数据库句柄
commit("update cxy_nct_m_t set drug_id = 2 where id = nct123",db)
query("select * from cxy_nct_m_t",db)

注意

使用pymysql时,需要注意一个点。

sql语句如果使用 %s 符号的时候,千万避免带引号,这时种对sql带有特殊含义的符号

错误示范

1
2
3
4
5
...
sql = "update cxy_nct_m_t set drug_id = '%s' where id = '%s' %" ("2", "nct123")
...
# 使用execute方法执行时会直接报错
cursor.execute(sql)

正确示范

1
2
3
4
5
...
sql = "update cxy_nct_m_t set drug_id = %s where id = %s %"
...
# 去除掉%s旁边的单引号,然后使用元组或列表往execute方法传参,让execute方法自己转义特殊符号。
cursor.execute(sql,("2", "nct123"))

总结

pymysql 是常用模块,但是执行细节还是需要平时的积累。