python自动化笔记:操作mysql数据库

操作mysql数据库常见方法

1、第三方库:pymysql

1.1、安装pymysql

终端输入:pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple/

1.2、连接数据库

python 复制代码
import pymysql

def connect():
    # 连接数据库
    conn = pymysql.connect(
    host="localhost",
    user="root",
    password="123456"
    )
    print(conn)
    return(conn)
# 调用
connect()

1.3、连接指定数据库

python 复制代码
def connect_database(database):
    # 连接数据库
    conn = pymysql.connect(
    host="localhost",
    user="root",
    password="123456",
    database=database
    )
    print(conn)
    return(conn)

connect_database("test")

1.4 创建数据库、创建表

python 复制代码
# 创建数据库
def creatdatabase(databasename):
    # 连接数据库
    conn = pymysql.connect(
        host="localhost",
        user="root",
        password="123456"
    )
    # 创建游标对象
    cursor = conn.cursor()
    # sql中使用变量,格式化输出
    # 创建数据库
    sql ="CREATE DATABASE IF NOT EXISTS {0}".format(databasename)
    cursor.execute(sql)
    # 展示所有数据库
    cursor.execute("SHOW DATABASES;")
    # 展示执行结果
    for database in cursor:
        print(database)
# 调用
creatdatabase("test")

# 创建表
def createtable():
    conn = pymysql.connect(
        host="localhost",
        user="root",
        password="123456",
        database="test"
    )
    cursor = conn.cursor()
    # 删除表格
    cursor.execute("drop table if exists student")
    # 创建表格
    sql="create table student(id int auto_increment primary key, name varchar(20), class varchar(255))"
    cursor.execute(sql)

# 调用
createtable()

1.5、表中插入数据

python 复制代码
def insertdata():
    conn = pymysql.connect(
        host="localhost",
        user="root",
        password="123456",
        database="test"
    )
    # 创建游标对象
    cursor=conn.cursor()
    # 插入数据sql,2种方式,推荐使用第一种占位符的方式,避免sql注入
    # 方式一
    addsheshou_sql="insert into student(name,class)values(%s, %s)"
    addsheshou_value = ("luban", "1")
    cursor.execute(addsheshou_sql,addsheshou_value)
    # 方式二
    addfashi_sql = "insert into student(name,class)values('anqila','2')"
    cursor.execute(addfashi_sql)
    # 提交
    conn.commit()
    # 查询语句
    cursor.execute("select * from student where name='luban' ")
    # 查看返回结果
    res = cursor.fetchall()
    print(res)

# 调用
insertdata()

查看数据库增加了2条数据(也可通过命令行窗口查看):

1.6、批量插入数据

python 复制代码
def insertmany(database):
    conn = connect_database(database)
    # 创建游标对象
    cursor=conn.cursor()
    # 插入数据sql
    addmany_sql="insert into student(name,class)values(%s, %s)"
    addmany_values = (("huangzhong", "1"),("direnjie", "1"),("zhenji", "2"),("zhongwuyan", "3"))
    cursor.executemany(addmany_sql,addmany_values)
    # 提交
    conn.commit()
    select_showall(database, "select * from student")

insertmany('test')

查看数据库增加了多条数据(也可通过命令行窗口查看):

1.7、获取查询结果数据

常用方法:

fetchall() 获取所有的记录

fetchone()获取第一行记录

fetchmany(size)获取前几行记录

python 复制代码
def select_showall(database,sql):
    conn=connect_database(database)
    # 创建游标对象
    cursor = conn.cursor()
    cursor.execute(sql)
   
    # 每次执行cur.fetchone()语句,游标都会向下走,所以不能同时查询
    # 查询所有记录
    # allrows = cursor.fetchall()
    # print(allrows)
    # 查询多条记录
    # manyrows = cursor.fetchmany(2)
    # print(manyrows)
    # 查询第一条数据
    onerow = cursor.fetchone()
    print(onerow)
    print(type(onerow))

# 调用
select_showall('test','select * from student where class="1"')

1.8、防sql注入,sql语句中一般用占位符传值

python 复制代码
def select_data(database):
    conn=connect_database(database)
    # 创建游标对象
    cursor = conn.cursor()
    # 避免sql注入
    sql="select * from student where name=%s"
    svalue=("luban",)
    data=cursor.execute(sql,svalue)
    print(data)

select_data('test')

2、标准库 :mysql.connector

2.1、安装mysql-connector

终端输入:pip install mysql-connector -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.2、操作方法

实现的逻辑跟pysql一致,相同的操作,操作方法也一致

相关推荐
五月君_15 分钟前
放弃 Python,Kimi 用 TS + Node.js 重写了一个 Kimi Code
开发语言·python·node.js
还是鼠鼠16 分钟前
AI掘金头条新闻系统 (Toutiao News)-获取用户信息
后端·python·mysql·fastapi·web
Cloud_Shy61831 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔
开发语言·python
SunnyDays101131 分钟前
Python 操作 Excel 超链接:添加网页、文件、工作表和图片链接
python·excel
KaMeidebaby34 分钟前
卡梅德生物技术快报|Western Blot 实验应用:肺肠轴机制研究全流程技术解析
前端·数据库·人工智能·算法·百度
雨辰AI36 分钟前
MySQL 迁移至达梦 DM9 完整改造指南|99% SQL 零改动
java·开发语言·数据库·sql·mysql·政务
志栋智能36 分钟前
超自动化运维:如何降低人为错误?
大数据·运维·网络·人工智能·自动化
li星野41 分钟前
RAG优化系列:HyDE(假设文档嵌入)——让LLM先写答案再检索
python·学习
知识分享小能手44 分钟前
Flask入门学习教程,从入门到精通,Flask智能租房——用户中心知识点详解(9)
python·学习·flask
MageGojo44 分钟前
做节日活动页时,如何用 API 快速生成对联内容
javascript·python·节日·对联生成