python连接数据库,相关数据处理

news2024/11/24 22:45:57

随机生成一千个数据插入large_db中

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。
import pandas as pd
from sqlalchemy import create_engine
from faker import Faker

# 初始化faker对象
faker = Faker()
data = []

# 生成虚拟数据
for _ in range(1000):
    data.append([faker.name(), faker.address(), faker.email()])

df = pd.DataFrame(data, columns=['name', 'address', 'email'])

# 创建数据库引擎
engine = create_engine("mysql+pymysql://root:123456@localhost/large_db")

# 将DataFrame写入MySQL数据库中的'users'表
df.to_sql('users', con=engine, if_exists='append', index=False, chunksize=100)
# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

优化查询

分页查询:

USE large_db;
SET @start_time=Now0;
SELECT SOL_NO_CACHE *FROM users  Limit 100 OFFSET 1000;
SET @end_time=Nowd;
SELECT TIMEDIFF(@end_time,@start_time)AS query_duration;

索引查询:

CREATE INDEX idx_ name ON user(name);
CREATE INDEX idx_email ON users(email);
SET @start_time=Now();
SEIELCT SOL_NO_CACHE*FROM users WHERE name=“John Doe”;
SET @end_time=Now();
SELECT TIMEDIFF(@end_time,@start_time)AS query_duration;

在pycharm中版本查询:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL查询
        sql = "SELECT VERSION()"
        cursor.execute(sql)
        result = cursor.fetchone()
        print("Database version:", result['VERSION()'])

finally:
    connection.close()

单字段查询:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL查询
        sql = "SELECT * FROM users WHERE name = %s"
        cursor.execute(sql, ('John Doe',))
        result = cursor.fetchall()
        for row in result:
            print(row)

finally:
    connection.close()

插入数据:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL插入
        sql = "INSERT INTO users (name, address, email) VALUES (%s, %s, %s)"
        cursor.execute(sql, ('John Doe', '123 Main St', 'john.doe@example.com'))
    
    # 提交事务
    connection.commit()

finally:
    connection.close()

数据更新:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL更新
        sql = "UPDATE users SET address = %s WHERE name = %s"
        cursor.execute(sql, ('456 Oak St', 'John Doe'))
    
    # 提交事务
    connection.commit()

finally:
    connection.close()

删除数据:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL删除
        sql = "DELETE FROM users WHERE name = %s"
        cursor.execute(sql, ('John Doe',))
    
    # 提交事务
    connection.commit()

finally:
    connection.close()

单字段查询:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1835671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

空气流量和空气压力参数解耦系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 空气流量和空气压力参数解耦系统simulink建模与仿真,在许多系统中,空气流量(Q)和压力(P)之间存在耦合关…

shell脚本编程(概念、编程和语句)

一、shell脚本概述 1、shell脚本概念 Shell 脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件,将一些 shell 的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能。 2、Shell 脚…

openlayers 点击多边形弹框,高亮多边形,自定义属性传递,鼠标悬浮多边形上动态修改鼠标样式

本篇介绍一下使用openlayers点击多边形弹框,高亮多边形,自定义属性传递,鼠标悬浮多边形上动态修改鼠标样式 1 需求 加载天地图,polygon传递自定义属性标悬浮在polygon上,根据自定义属性,动态修改鼠标样式为pointer点…

【机器学习300问】124、什么是LSTM?LSTM的基本结构是怎样的?

长短期记忆网络(LSTM)是一种解决隐变量模型长期信息保存和短期输入缺失问题的方法,有趣的是,长短期记忆网络的设计比门控循环单元稍微复杂一些, 却比门控循环单元早诞生了近20年。 一、什么是LSTM? LSMT全…

迷你手持小风扇十大名牌排名有哪些?公认迷你小风扇排行榜揭开!

随着夏季的到来,炎热的天气让人们迫切需要一款便携、高效的降温工具。迷你手持小风扇因其小巧便携、操作简单而备受欢迎,成为人们日常生活中不可或缺的降温神器。然而,市场上迷你手持小风扇品牌繁多,如何挑选一款既实用又耐用的小…

SpringBoot + thymeleaf 修改文件,刷新页面不能实时展示修改后的内容问题解决

修改页面后文件后,刷新页面,内容不变,是因为项目没有编译,没有将新的页面文件编译,以下方法可以完美解决次问题 具体内容请查看:http://www.haozgx.top/blog/article/2

GD32调试篇:JLink驱动下载安装

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 向上代码兼容GD32F450ZGT6中使用 后续项目主要在下面该专栏中发布: https://blog.csdn.net/qq_62316532/category_12608431.html?spm1001.2014.3001.5482 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转…

学会这几点,轻松制作引人入胜的电子期刊

随着数字化时代的到来,电子期刊已经成为了信息传播的重要载体。它以方便快捷、形式多样、互动性强等特点,受到了广泛的欢迎。那么,如何制作一份引人入胜的电子期刊呢?下面就来为大家分享几点制作电子期刊的小技巧。 1.选择合适的制…

【机器学习】第2章 线性回归及最大熵模型

一、概念 1.回归就是用一条曲线对数据点进行拟合,该曲线称为最佳拟合曲线,这个拟合过程称为回归。 2.一个自变量 叫 一元线性回归,大于一个自变量 叫 多元线性回归。 (1)多元回归:两个x,一个…

Vue3鼠标悬浮个人头像时出现修改头像,点击出现弹框,上传头像使用cropperjs可裁剪预览

实现效果&#xff1a; 鼠标悬浮到头像上&#xff0c;下方出现修改头像 点击修改头像出现弹框&#xff0c;弹框中可上传头像&#xff0c;并支持头像的裁剪及预览 实现方式&#xff1a; 1.tempalte中 <div class"img-box"><img v-if"avatarImgUrl&qu…

开始报名啦!智能可观测运维技术 MeetUp 议题硬核来袭

「龙蜥社区“走进系列”MeetUp」是由龙蜥社区与生态合作伙伴联合主办的系列月度活动&#xff0c;每期走进一家企业&#xff0c;聚焦龙蜥社区和合作伙伴的技术、产品和创新动态&#xff0c;展示硬核技术&#xff0c;共建繁荣生态。 龙蜥社区“走进系列”第 11 期走进中兴通讯-智…

【Axure高保真原型】动态统计中继器表格项目数

今天和大家分享动态统计中继器表格项目数的原型模板&#xff0c;具体包括以下功能&#xff1a; 表格下方可以自动根据表格内容统计表格的总项目数、启用和禁用数、选中和未选中数 我们可以点击开发切换启用和禁用 点击多选按钮&#xff0c;选中或取消选中对应行内容 选中后可…

关于Markdown的使用与创建

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

《收获,不止oracle》读书笔记一:oracle体系结构

从图中可以看出,oracle数据库是由实例和一组数据库文件组成。实例是由oracle开辟的内存区和一组后台进程组成的。

【多线程】线程状态

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 枚举线程所有状态2. 线程转移2.1 示意图2.2 观察 NEW 、 RUNNABLE 、 TERMINATED 状态的转换2.3 观察 WAI…

fastsam-pytorch基于YOLACT方法的实例分割分支的目标检测器模型

FastSAM 论文 Fast Segment Anything 模型结构 以yolov8-seg的instance segmentation为基础&#xff0c;检测时集成instance segmentation分支,主要分为两步全实例分割(all instance Segmentation)和基于prompt的mask输出(Prompt-guided Selection)&#xff0c;仅使用了2%的…

采用了宽电压设计的测径仪为什么仍旧需要到现场勘察电力环境

关键字: 测径仪宽电压设计,测径仪电压范围,电压影响测径仪,测径仪车间电压 设备宽电压设计是指该设备能够在一定范围的电压波动内正常工作&#xff0c;而不会因为电压的轻微变化而导致性能下降或损坏。宽电压设计通常涉及到电源电路的优化和设计&#xff0c;以确保设备在电压波…

POSIX信号量以及读写者模型/环形队列

POSIX信号量 POSIX信号量和SystemV信号量作用相同&#xff0c;都是用于同步操作&#xff0c;达到无冲突的访问共享资源目的。 但POSIX可以用于线程间同步,他的本质是一个计数器,对共享资源进行等待或释放 POSIX信号量的重要概念 1.计数器:信号量维护一个计数器&#xff0c;它…

AI大佬都在说下一个爆点是智能体,建议开发者抢占先机!

现在大模型行至一年&#xff0c;风口与炒作如影随形&#xff0c;相信很多人身处其中但仍然感到很迷失&#xff0c;这个行业到底发展到什么程度了&#xff0c;作为普通开发者还有什么可以抓住的机会&#xff1f;从AI大佬的观点中&#xff0c;我们能获得一些行业变化的新风向。 …

corona渲染器与vray比哪个好?支持云渲染平台吗

​在视觉渲染技术领域&#xff0c;V-Ray和Corona都以其卓越的性能和广泛应用赢得了高度评价。这两款渲染器各有其独特的优势&#xff0c;使得在它们之间做出选择并非易事。不同的应用场景和用户需求可能会让它们各自展现出不同的优势。 一、corona渲染器跟vray怎么样 在比较V-…