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

embedded/2024/12/22 13:28:10/

操作mysql数据库常见方法

  • 1、第三方库:pymysql
    • 1.1、安装pymysql
    • 1.2、连接数据库
    • 1.3、连接指定数据库
    • 1.4 创建数据库、创建表
    • 1.5、表中插入数据
    • 1.6、批量插入数据
    • 1.7、获取查询结果数据
    • 1.8、防sql注入,sql语句中一般用占位符传值
  • 2、标准库 :mysql.connector
    • 2.1、安装mysql-connector
    • 2.2、操作方法

1、第三方库:pymysql

1.1、安装pymysql

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

1.2、连接数据库

python">import pymysqldef 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()# 插入数据sqladdmany_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一致,相同的操作,操作方法也一致


http://www.ppmy.cn/embedded/93745.html

相关文章

【UE 网络】Network Role and Authority、Actors Owner、Actor Role and RemoteRole

目录 0 引言1 Network Role and Authority(网络角色和授权)1.1 Authority (权威角色 / 权威端)1.2 Simulated Proxy (模拟代理 / 模拟端)1.3 Autonomous Proxy (自主代理 / 主动端)1.4 示例:多人塔防游戏中的 NetRole 2 Actors and their Own…

小米机试 2048

小米机试 2048 题目说明解题思路:python代码 题目说明 《2048》是一款热门的数字游戏。游戏中,每个方块上的数字都有2的幂,数字方块会根据指令整体进行上下左右移动,如果两个数字相同的方块在移动中碰撞,他们就会合成…

LVS集群实现四层负载均衡详解(以nat,dr模式为例)

目录 一、LVS集群的介绍 1、LVS 相关术语: 2、lvs四层负载均衡工作原理 3、相关名词概念 4、lvs集群的类型 二、lvs的nat模式 1、介绍: 2、数据逻辑: 3、nat实验部署 环境搭建: 1、lvs中要去打开内核路由功能&#xff0c…

scrapy实战

免责声明 本文的爬虫知识仅用于合法和合理的数据收集,使用者需遵守相关法律法规及目标网站的爬取规则,尊重数据隐私,合理设置访问频率,不得用于非法目的或侵犯他人权益。因使用网络爬虫产生的任何法律纠纷或损失,由使用…

Git 常用命令指南:从入门到精通

文章目录 前言1. 初始化一个Git仓库2. 克隆远程仓库3. 查看仓库状态4. 添加文件到暂存区5. 提交代码6. 推送到远程仓库7. 拉取远程仓库的更改8. 分支管理9. 查看提交历史10. 回退到某个版本结语 前言 如果你是一位开发者或者对代码感兴趣,那么你一定听说过Git。Git…

10个html+css+js 绚丽按钮合集(1)

前言:哈喽,大家好,今天给大家分享10个htmlcssjs 绚丽按钮合集(1) 创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文章目录 10个htmlcssjs 绚丽按钮第1个:效果&#xff…

[Meachines] [Easy] SwagShop Magento SQLI+Magento 反序列化RCE+vi权限提升

信息收集 IP AddressOpenping Ports10.10.10.140TCP:22,80 $ nmap -p- 10.10.10.140 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 b6:55:2b:d2…

【ARM CoreLink 系列 4.1 -- NIC-400 控制器详细介绍】

请阅读【ARM AMBA 总线 文章专栏导读】 文章目录 QoS-400 Advanced Quality of Service可编程的 QoS 功能读写请求的调节配置化的 QoS 选项无额外周期的延迟QVN-400(QoS Virtual Networks)防止系统内的流量拥塞支持配置多达八个虚拟网络TLX-400 Thin LinksTLX 主要能特点上篇文…