【编程实践】详解 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 conndemo数据库中有一个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)