Python中操作MySQL(第一部分)
Hello,大家好,我又来更新我的博客了,好久没上博客园今天登陆一看阅读量达到22098,谢谢大家的支持,这里是我的一个技术笔记本,以供学习回顾和大家共享,希望大家多多指点。话不多说,现在就开始。那么今天我要更新“如何在Python中操作MySQL数据库?”
一、Python操作数据库的介绍
Python标准数据库接口为Python DB-API,Python DB-API为开发人员(当然是指所有使用Python的人员,也不例外测试人员,嘿嘿~ 一点小私心)提供了数据库应用编程接口。Python数据库接口支持非非非常多的数据库,既然这样说我们就可以选择适合自己项目的数据库啦,那么都有哪些数据库呢,我列举一下哈:
- MySQL(今天的主角儿)
- Microsoft SQL Server 2000(微软的,大学时我们用过,你们呢?)
- GadFly(一个简单的关系数据库系统)
- Oracle(大学时也用过,就快要还给老师了,哈哈)
等等等等还有很多,我就列举常见这几个吧(可能别的我本人不常用,请原谅!),根据自己所需要的不同数据库吧去下载不同的DB API模块。Python的DB-API为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python的DB-API使用流程也不难,如下几步:
- 引入API模块
- 获取与数据库的连接
- 执行SQL语句和存储过程
- 关闭数据库的连接
二、Python操作MySQL模块(实操啦,实操啦!敲黑板,划重点!)
Python操作MySQL主要使用两种模式:
(1)DB模块(原生SQL)
- PyMySQL(支持python2.x/python3.x)
- MySQLdb(支持python2.x)
(2)ORM框架
- SQL Acherry
2.1.1 PyMySQL模块
(1)安装
pip install PyMySQL
(2)基本使用方法
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "zjt" # Date: 2023/10/31 import pymysql # 创建连接 conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4') # 创建游标(查询数据返回为元组格式) # cursor = conn.cursor() # 创建游标(查询数据返回为字典格式) cursor = conn.cursor(pymysql.cursors.DictCursor) # 1. 执行SQL,返回受影响的行数 effect_row1 = cursor.execute("select * from USER") # 2. 执行SQL,返回受影响的行数,一次插入多行数据 effect_row2 = cursor.executemany("insert into USER (NAME) values(%s)", [("jack"), ("boom"), ("lucy")]) # 3 # 查询所有数据,返回数据为元组格式 result = cursor.fetchall() # 增/删/改均需要进行commit提交,进行保存 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close() print(result) """ [{'id': 6, 'name': 'boom'}, {'id': 5, 'name': 'jack'}, {'id': 7, 'name': 'lucy'}, {'id': 4, 'name': 'tome'}, {'id': 3, 'name': 'zff'}, {'id': 1, 'name': 'zhaofengfeng'}, {'id': 2, 'name': 'zhaofengfeng02'}] """
(3)获取最新创建的数据自增ID
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "zjt" # Date: 2023/10/31 import pymysql # 创建连接 conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4') # 创建游标(查询数据返回为元组格式) cursor = conn.cursor() # 获取新创建数据自增ID effect_row = cursor.executemany("insert into USER (NAME)values(%s)", [("eric")]) # 增删改均需要进行commit提交 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close() new_id = cursor.lastrowid print(new_id) """ 8 """
(4)查询操作
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "zjt" # Date: 2023/10/31 import pymysql # 创建连接 conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4') # 创建游标 cursor = conn.cursor() cursor.execute("select * from USER") # 获取第一行数据 row_1 = cursor.fetchone() # 获取前n行数据 row_2 = cursor.fetchmany(3)
# 获取所有数据 row_3 = cursor.fetchall() # 关闭游标 cursor.close() # 关闭连接 conn.close() print(row_1) print(row_2) print(row_3)
好了,好了,第一部分先写到这吧,有点累了(哈哈,其实想偷会儿懒)休息一下,给个关注,不迷路,不定时分享技术哦~