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

操作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、连接数据库

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

1.3、连接指定数据库

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

1.4 创建数据库、创建表

# 创建数据库
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、表中插入数据

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、批量插入数据

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)获取前几行记录

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语句中一般用占位符传值

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.rhkb.cn/news/397548.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【《Kafka 入门指南:从零基础到精通》】

前言: 💞💞大家好,我是书生♡,本阶段和大家一起分享和探索KAFKA,本篇文章主要讲述了:消息队列的基础知识,KAFKA消息队列等等。欢迎大家一起探索讨论!!&#x…

rocketMQ5.0事务消息实战

事务消息逻辑 docker部署容器,并且创建消息 dd首先我们来docker 部署rocketMQ与rocketMQDashBoard docker ps查看rocketMQ 容器名称 docker ps 进入容器内部 docker exec -it rmqnamesrv /bin/bash 创建事务消息 MeessageType: TRANSACTION sh mqadmin upda…

Linux驱动.之I2C,iic驱动层(二)

一、 Linux下IIC驱动架构 本篇只分析,一个整体框架。 1、首先说说,单片机,的i2c硬件接口图,一个i2c接口,通过sda和scl总线,外接了多个设备device,通过单片机,来控制i2c的信号发生&…

解锁数据“智能”背后的秘密

在这个被数据洪流包围的时代,每一秒都有无数的信息在生成、传递、分析。但你是否曾好奇,这些数据是如何从简单的数字、文字转化为推动社会进步、改变生活方式的“智能”力量的?今天,就让我们一起揭开数据“智能”背后的神秘面纱&a…

C语言文达学院班级管理系统-计算机毕业设计源码03499

摘 要 本文阐述了一个C语言文达学院班级管理系统的设计与实现过程。该系统充分利用ASP.NET的轻量级、灵活性和可扩展性,旨在为文达学院提供高效、便捷的班级管理系统。通过详细的需求分析、技术选型、系统设计、开发实现、测试与调试以及部署与上线等步骤&#xff0…

通过python管理mysql

打开防火墙端口: 使用 firewall-cmd 命令在防火墙的 public 区域中永久添加 TCP 端口 7500(FRP 控制台面板端口)、7000(FRP 服务端端口)以及端口范围 6000-6100(一组客户端端口)。这些端口是 FR…

Unity补完计划 之 动态控制TileMap

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 1.TileMap &TileBase Unity - Scripting API: Tilemap ,看手册内容太多了故介绍几个常用的公共方法 首…

【凌鸥学园】电机电控课程学习,挑战自我!

电控达人集结号!凌鸥学园精心打造的电机电控课程,现面向全体爱好者及专业人士免费开放! 课程内容从基础原理到高级应用,全方位助力你快速掌握电机电控精髓,实现技能飞跃! 挑战成功,双重奖励等…

12. 矩阵中的路径

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9812.%20%E7%9F%A9%E9%98%B5%E4%B8%AD%E7%9A%84%E8%B7%AF%E5%BE%84/README.md 面试题 12. 矩阵中的路径 题目描述 给定一个 m x n 二维字符网格 board…

Java的反射原理

反射允许程序在运行时检查或修改其类、接口、字段和方法的行为。反射主要通过java.lang.reflect包中的类和接口实现,它主要用于以下目的: 在运行时分析类的能力:通过反射,可以在运行时检查类的结构,比如它的方法、构造…

【RAG检索增强生成】Ollama+AnythingLLM本地搭建RAG大模型私有知识库

目录 前言一、Ollama:革新性的本地LLM服务工具1.核心优势2.技术亮点 二、AnythingLLM 概览1.核心特性2.技术生态支持 三、搭建本地智能知识库1. Ollama的安装启航2. AnythingLLM的安装对接3. AnythingLLM的配置精调4. 工作区与文档管理5. 聊天与检索的智能交互 四、…

计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

封装el-table 基于element封装可配置JSON表格组件

基于element封装可配置JSON表格组件 话不多说直接贴代码&#xff0c;复制运行即可查看效果 子组件全部代码 <template><div class"custom-table"><el-table:data"tableData"borderstyle"width: 100%"size"mini"max-h…

负载均衡之HAProxy超全内容!!!

一、负载均衡 1.1 负载均衡概念 负载均衡&#xff08;Load Balance&#xff0c;简称 LB&#xff09;是高并发、高可用系统必不可少的关键组件&#xff0c;目标是尽力将网络流量平均分发到多个服务器上&#xff0c;以提高系统整体的响应速度和可用性。 1.2 软件负载均衡 软件…

做报表用什么工具?不想再用Excel了!!!

一、什么是中国式报表&#xff1f; 不知道大家现在还是使用Excel来制作报表&#xff0c;然后跟领导汇报工作吗&#xff1f;虽然Excel功能很强大&#xff0c;但是用Excel做过中国式报表的小伙伴一定知道它的制作过程有多复杂。 中国式报表可以用一句话简单概括&#xff1a;格式…

Mozilla Firefox侧边栏和垂直标签在131 Nightly版本中开始试用

垂直选项卡和全新的侧边栏体验现已在Mozilla Firefox Nightly 131 中提供。这一更新备受社区期待和要求&#xff0c;我们期待看到它如何提高您的浏览效率和工作效率。如果您想体验一下这项正在进行中的工作&#xff0c;请这样操作&#xff1a; 更新到最新的Nightly版 转到设置…

uniapp本地打包app安装说明

uniapp本地打包app安装说明 目录 uniapp本地打包app安装说明一、打包说明1.HBuilder X 生成本地打包资源2.Android Studio和App离线SDK环境准备2.1 下载Android Studio和 App离线SDK2.2 资源替换2.3 id属性值修改。2.4 添加provider信息到AndroidManifest.xml中的<applicati…

使用Hugging Face构建大型语言模型应用

在本文中&#xff0c;我们将介绍如何使用Hugging Face的大型语言模型&#xff08;LLM&#xff09;构建一些常见的应用&#xff0c;包括摘要&#xff08;Summarization&#xff09;、情感分析&#xff08;Sentiment analysis&#xff09;、翻译&#xff08;Translation&#xff…

Leetcode JAVA刷刷站(14)最长公共前缀

一、题目概述 二、思路方向 在Java中&#xff0c;要编写一个函数来查找字符串数组中的最长公共前缀&#xff0c;我们可以遵循以下步骤&#xff1a; 处理边界条件&#xff1a;如果数组为空或长度为0&#xff0c;直接返回空字符串。初始化最长公共前缀&#xff1a;将数组的第一个…

HarmonyOS 3.1/4.0应用升级到HarmonyOS NEXT改动点

在 “2024鸿蒙零基础快速实战-仿抖音App开发&#xff08;ArkTS版&#xff09;”&#xff08;https://coding.imooc.com/class/843.html&#xff09;视频课程中&#xff0c;因为讲师在该课程授课时是使用的HarmonyOS 3.1/4.0应用&#xff08;API 9&#xff09;&#xff0c;如果部…