【编程实践】详解 MySQL 在 Python 中的使用(2)-pymysql的使用
前言
我们在上一篇文章《【编程实践】详解 MySQL 在 Python 中的使用(1)》中,介绍了mysql的相关知识以及基本操作,本文我们进入正题,接着介绍MySQL在Python中的基本操作
MySQL安装
由于大家大都使用的是windows系统,所以这里仅介绍关于MySQL在windows系统上的安装,需要了解MySQL在Linux系统的安装可以参考《【值得收藏】Centos7 安装 mysql 完整操作命令》
下载MySQL
下载地址:https://dev.mysql.com/downloads/windows/installer/
根据自己的windows版本,选择下载合适的版本
推荐选择下载离线安装包,点击download按钮跳转到下图页面,然后接着选择不登录下载
然后双击下载好的进行安装
勾选同意,然后点击next,进入下一步
进入类型选择页面,需要安装mysql云服务就选择了developer default,如果只想安装mysql server的就选择custom模式,这里选择custom模式,进入选择页面
developer default(开发者默认):安装mysql开发所需的所有产品
server only(服务器):只安装mysql服务器产品
client only(客户端):只安装没有服务器的mysql客户端产品
full(完全):安装所有包含的mysql产品和功能
custom(手动):手动选择系统上应安装的产品
然后接着一直next即可,直到安装完成,在这个过程中需要设置root密码,设置完成后一定要记住,后面会用到
安装过程中到了这个页面,记得勾选,并设置MySQL的服务名称。把mysql加入系统服务,这样才能开机自启
安装完成后需要检测root密码,才能进行后续操作
安装完成后,将MySQL配置到环境变量
下图中D:\wamp\bin\mysql\mysql5.6.17是我的安装路径,你需要找到你的mysql安装路径,然后
我的电脑右键-》属性-》高级系统设置-》环境变量-》新建MYSQL_HOME,将安装目录输入:
接着找到系统环境变量中的path编辑:输入%MYSQL_HOME%\bin
然后点确定保存,这样就完成了MySQL的安装及简单配置,你可以安装Navicat来可视化管理和操作你的MySQL
PyMysql的使用
PyMySQL是在Python 3.x中用于连接MySQL服务器的一- 个库,可使用pip install进行安装。安装命令如下:
pip install PyMySQL
或
pip3 install PyMySQL
PyMySQL基本使用流程如下:
(1)创建连接:使用connect( )创建连接并获取Connection对象。
(2)交互操作:获取Connection对 象的Cursor对象,然后使用Cursor对象的各种方法与数据库进行交互。
(3)关闭连接:在进行数据库连接时,需要传入许多参数,连接数据库常用的参数如下:
host:数据库服务器地址,默认为localhost
user:数据库用户名,默认为当前程序运行用户
password:登录密码,默认为空字符串
database:操作的数据库
port:数据库端口,默认3306
bind_address:当客户端有多个网络接口时,指定连接到主机的接口,参数可以是主机名或IP地址
unix_socket:unix套接字地址,区别于host
read_timeout:读取数据超时时间,单位秒,默认无限制
write_timeout:写入数据超时时间,单位秒,默认无限制
charset:数据库编码
sql_mode:指定默认的SQL_MODE
cursorclass:设置默认的游标类型
编程实践
mysql最常用的操作就是增、删、改、查,也是就大家口中的CURD,不管是任何项目,只要使用了数据库基本围绕这些操作来编写业务,下面我们使用pymysql模块来浅尝一下MySQL在Python中的相关操作
程序流程如下:
使用import导入PyMysql模块,再使用PyMysql中的函数进行数据库的连接
使用在MySQL中创建数据库
使用insert()方法在表中插入一个新的记录,当在数据库中插入多行数据时,则使用insert_many()方法对其进行处理,将单对象处理转换为多对象处理,以此完成批量插入数据
对创建的数据库与表进行增,删,改,查的操作
对相关操作输出相应的结果
代码实现
1.导入pymysql创建数据库连接
import pymysql
#获取对象,导入数据库
def get_conn():
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='demo')
return conn
demo数据库中有一个student表,表的结构和数据如下图:
2.连接数据库,定义插入方法,实现插入一条数据
def insert(sql):
conn = get_conn()
cur = conn.cursor()
result = cur.execute(sql)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'INSERT INTO student (name, age, grade) VALUES(\'李白\',12, 100);'
insert(sql)
执行结果:
插入一条数据返回插入成功条数1
3.定义批量插入数据的方法:insert_many()
def insert_many(sql, args):
conn = get_conn()
cur = conn.cursor()
result = cur.executemany(query=sql, args=args)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'insert into student (name, age, grade) VALUES (%s,%s,%s);'
args = [( '鲁班', 11, 88), ('赵云', 12, 89), ('曹操', 13, 99)]
insert_many(sql=sql, args=args)
执行结果:成功插入3条数据,返回3
4.修改表中数据,定义update()方法
def update(sql,args):
conn = get_conn()
cur = conn.cursor()
result = cur.execute(sql, args)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'UPDATE student SET NAME=%s WHERE id = %s;'
args = ('李白', 2)
update(sql, args)
将原来的名字改为李白
5.删除表中数据,定义delete()方法
def delete(sql,args):
conn = get_conn()
cur = conn.cursor()
result = cur.execute(sql, args)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'DELETE FROM student WHERE id = %s;'
args = (2,)
delete(sql, args)
删除id=2的数据:
6.定义query()方法查询表中的数据
def query(sql,args):
conn = get_conn()
cur = conn.cursor()
cur.execute(sql,args)
results = cur.fetchall()
print(type(results))
for row in results:
print(row)
id = row[0]
name = row[1]
age = row[2]
print('id: ' + str(id) + ' name: ' + name + ' age: ' + str(age))
pass
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'SELECT * FROM student;'
query(sql, None)
执行结果如下:
使用PyMySQL实现MySQL的增删改查就是这么简单,赶紧动手实践起来吧!
- 点赞
- 收藏
- 关注作者
评论(0)