Python中操作MySQL(第一部分)

发布时间 2023-10-31 16:11:38作者: 追小白呀

    Hello,大家好,我又来更新我的博客了,好久没上博客园今天登陆一看阅读量达到22098,谢谢大家的支持,这里是我的一个技术笔记本,以供学习回顾和大家共享,希望大家多多指点。话不多说,现在就开始。那么今天我要更新“如何在Python中操作MySQL数据库?”

一、Python操作数据库的介绍

Python标准数据库接口为Python DB-API,Python DB-API为开发人员(当然是指所有使用Python的人员,也不例外测试人员,嘿嘿~ 一点小私心)提供了数据库应用编程接口。Python数据库接口支持非非非常多的数据库,既然这样说我们就可以选择适合自己项目的数据库啦,那么都有哪些数据库呢,我列举一下哈:

  1. MySQL(今天的主角儿)
  2. Microsoft SQL Server 2000(微软的,大学时我们用过,你们呢?)
  3. GadFly(一个简单的关系数据库系统)
  4. 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)

好了,好了,第一部分先写到这吧,有点累了(哈哈,其实想偷会儿懒)休息一下,给个关注,不迷路,不定时分享技术哦~