MySQL适配器PyMySQL详解

时间:2022-02-08 17:12:28

本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。

什么是 PyMySQL

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL 安装
在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

?
1
$ pip install PyMySQL

如果你的系统不支持 pip 命令,可以使用以下方式安装:

1、使用 git 命令下载安装包安装(你也可以手动下载):

?
1
2
3
$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install

2、数据库操作实例,直接上代码。

 

?
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
import pymysql
import datainfo
import time
 
#获取参数
 
host = datainfo.host
username = datainfo.username
password = datainfo.password
database = datainfo.db
 
print()
 
#测试数据库连接
def testconnect():
 
 #打开数据库链接
 
 db = pymysql.connect(host,username,password,database)
 
 #使用cursor() 方法创建一个游标对象 cursor
 
 cursor = db.cursor()
 
 #使用execute()方法执行SQL查询
 
 cursor.execute("select version()")
 
 #使用fetchone ()获取单条数据
 
 data = cursor.fetchone()
 
 print(data)
 
 db.close()
 
#插入数据库
def InsertDate():
 #打开数据库链接
 
 db = pymysql.connect(host,username,password,database,charset='utf8')
 
 #使用cursor() 方法创建一个游标对象 cursor
 
 cursor = db.cursor()
 
 create_time = time.strftime('%Y-%m-%d %H:%M:%S')
 update_time = time.strftime('%Y-%m-%d %H:%M:%S')
 start_time = time.strftime('%Y-%m-%d %H:%M:%S')
 end_time = time.strftime('%Y-%m-%d %H:%M:%S')
 remark = "测试插入信息"
 print("开始")
 #Sql 插入语句
 sql = "insert into demo(start_time,end_time,creat_time,update_time,remark) " \
   "VALUES ('%s','%s','%s','%s','%s')"\
   %(start_time,end_time,create_time,update_time,remark)
 try:
  #执行sql
  print("执行插入")
  tt = cursor.execute(sql)
  print(tt)
  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()
 
 
#查询操作
def selectData():
 db = pymysql.connect(host, username, password, database, charset='utf8')
 
 # 使用cursor() 方法创建一个游标对象 cursor
 
 cursor = db.cursor()
 
 sql = "select * from demo where id >='%d'" %(1)
 try:
  #执行sql
  print("执行查询")
  cursor.execute(sql)
  results = cursor.fetchall()
  for row in results:
   id = row[0]
   start_time = row[1]
   end_time = row[2]
   create_time = row[3]
   update_time = row[4]
   remark = row[5]
   #打印结果
   print("id = %d,start_time=%s,end_time=%s,create_time=%s,update_time=%s,remark=%s" %(id,start_time,end_time,create_time,update_time,remark))
 
  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
 
 db.close()
 
#更新操作
def update_data():
 db = pymysql.connect(host, username, password, database, charset='utf8')
 
 # 使用cursor() 方法创建一个游标对象 cursor
 
 cursor = db.cursor()
 update_time = time.strftime('%Y-%m-%d %H:%M:%S')
 sql = "update demo set update_time ='%s' where id >='%d' " %(update_time,1)
 try:
  #执行sql
  print("执行更新")
  cursor.execute(sql)
 
  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()
 
#删除操作
def delete_Date():
 db = pymysql.connect(host, username, password, database, charset='utf8')
 
 # 使用cursor() 方法创建一个游标对象 cursor
 
 cursor = db.cursor()
 
 sql = "delete from demo where id <'%d' " %(1)
 try:
  #执行sql
  print("执行删除")
  cursor.execute(sql)
 
  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()
 
 
if __name__ == '__main__':
 testconnect()
 InsertDate()
 selectData()
 update_data()
 delete_Date()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/BlueSkyyj/p/7559626.html