Python连接MySQL数据库(简单便捷)

news2024/11/17 23:40:44

🐒,本文中,使用到的工具有:Pycharm,Anaconda,MySQL 5.5,spyder(Anaconda)

什么是 PyMySQL?

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。

一、🏔环境准备

1、安装pymysql:

进行Python连接mysql数据库之前,需要先安装一下pymysql。

直接在终端执行下面的命令即可。(在此处我将指定1.0.2版本)

pip install pymysql==1.0.2

2、查询安装:

下载完成后,在终端输入 pip list 即可看到下图:

pip list

可以看到我们的PyMySQL是1.0.2版本的。

3、Anaconda下载pymysql:

打开Anaconda,选择 Environments 点击右上方的的搜索框 输入 pymysql

 点击方框,即可下载

方式一🏔:

        此处我们可以选择 spyder 或者 pycharm 首先为大家介绍一下 spyder 我们只需要直接导入 pymysql 库即可 

方式二🏔: 

        4、Pycharm下载pymysql

打开 Pycharm 选择文件,点击设置,

 下划,选择python解释器,这里我的Pycharm已经配置了Anaconda环境

如果没有查询到 pymysql 可以在 Pycharm 终端中下载 pymysql 库

以上我们的环境就准备好了,下面我们进行编写程序 ☀

 二、🏔代码编写,连接数据库

1、导入数据库表 

import pymysql

 数据库连接:

连接数据库前,请先确认以下事项:

  • 连接数据库使用的用户名为 "root" ,密码为 "dai324542",创建了数据库 runoob
  • 你可以可以自己设定或者直接使用root用户名及其密码

db = pymysql.connect(host='localhost',
                     user='root',
                     password='dai324542',
                     database='runoob',
                     charset='utf8')
 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
 
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
 
print ("数据库连接成功!")
 
# 关闭数据库连接
db.close()

 2、创建数据库表

# 创建表
sql="""CREATE TABLE test (
          FIRST_  CHAR(20) NOT NULL,
          SECOND_  CHAR(20),
          THIRD_ INT,
          FOURTH_ CHAR(1),
          FIFTH_ FLOAT )"""
# 运行sql语句
cursor.execute(sql)

这里我们所运用的sql语句是不是很熟悉了😊

下面即是运行结果了,再mysql中可以刷新看到,我输出了一个提示 victory 

 

 3、数据库插入操作

此处我只是随便进行了一个举例,通过更改创建表时的操作可以插入不同类型的数据

try:
    sql = "insert into test(FIRST_,SECOND_,THIRD_,FOURTH_,FIFTH_) values ('MAC','MOTH','20','M','2000')"

    # 运行sql语句
    cursor.execute(sql)
    # 修改
    db.commit()
    # 关闭游标
    cursor.close()
    # 关闭连接
    db.close()
    print("victory!")
except:
    print("false")

 4、查询其中一个表的数据

# 查询语句
try:
    cursor = db.cursor()
    sql = "select * from student"
    cursor.execute(sql)
    result = cursor.fetchall()
    for data in result:
        print(data)
except Exception:
    print("查询失败")

 

 5、删除表中的一条数据

# SQL 删除语句
sql = "DELETE FROM student WHERE Sno='20111107'"
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 向数据库提交
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
# 关闭连接
db.close()
# 成功提示
print("victory!")

注意:Python中的MySQL默认事务打开,需要我们手动提交事务,否则操作无效

写到这里,这篇博客就又又又结束了,很感谢大家的观看,如果对大家有所帮助希望可以留下一个小小的👍,🙇‍。因才学疏浅,如果各位大佬发现其中存在错误,敬请指出,(ง •_•)ง!

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

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

相关文章

Java 语言基础练习题

Java 语言基础练习题 Key Point ●包的基本语法 ●Java 语言中的标识符,命名规范 ●八种基本类型 ●基本操作符 ●if 语句和switch 语句 练习 1.(标识符命名)下面几个变量中,那些是对的?那些是错的?错的请…

C++学习 程序控制结构

程序控制结构 以某种顺序执行的一系列动作,用于解决某个问题。包括 顺序结构、选择结构、循环结构。 顺序结构 按照顺序正常执行。前几篇文章的代码都是顺序结构的体现。 选择结构 执行满足条件的语句。 if 结构:if (表达式){} 表达式为真则执行&…

Linux历史及环境搭建(VMware搭建CentOS7环境)

Linux历史及环境搭建 1.Linux历史1.1 UNIX发展的历史1.2 Linux发展历史1.2.1 开源1.2.2 官网1.2.3 发行版本 2.VMware配置CentOS7环境2.1 CentOS下载2.2 配置环境2.3 切换国内阿里源2.4 无图形化界面开机 结语 1.Linux历史 在这里简要介绍Linux的发展史。要说 Linux&#xff0…

机器学习李宏毅学习笔记36

文章目录 前言Meta learning应用总结 前言 Meta learning(二)应用方向 Meta learning应用 回顾gradient descen Θ0(initial的参数)是可以训练的,一个好的初始化参数和普通的是有很大差距的。可以通过一些训练的任务…

Python通过私信消息提取博主的赠书活动地址

文章目录 前言背景设计开发1.引入模块2.获取私信内容3.根据文本提取url的方法4.获取包含‘书’的url5.程序入口 效果总结最后 前言 博主空空star主页空空star的主页 大家好,我是空空star,本篇给大家分享一下《通过私信消息提取博主的赠书活动地址》。 背…

通用策略04丨ORB魔改框架+自适应动量过滤模板

量化策略开发,高质量社群,交易思路分享等相关内容 大家好,今天我们分享2023年度第4期通用策略——ORB魔改框架自适应动量过滤模板。 本期策略是2023年通用系列第4篇。本期主要内容有对ORB原版的逻辑魔改,其次我们将跨日周期均线过…

现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

停机迁移方案 最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂 个公告,说 0 点到早上 6 点进行运维,无法访问。 接着到 0 点停机,系统停掉,没有流量写入了,…

设计一个高流量高并发的系统需要关注哪些点

1、设计原则 1.1、系统设计原则 在设计一个系统之前,我们先要有一个统一且清晰的认知:不要想着一下就能设计出完美的系统,好的系统是迭代出来的。不要复杂化,要先解决核心问题。但是要有先行的规划,对现有的问题有方…

字符与代表数据的转化

目的 在与设备交互当中,大都以十六进制的数进行交互。 而显示给用户时,是以字符的形式显示。 这中间就需要字符与其所代表的数值的转化,比如: ‘0F’---->0x0F 这怎么实现呢,一个是字符,另一个是数字&a…

Apache seatunnel集群部署

跳转到安装目录 cd /opt/soft/seatunnel 1.设置环境变量 export SEATUNNEL_HOME/opt/soft/seatunnel export PATH$PATH:$SEATUNNEL_HOME/bin 启动服务端 ./bin/seatunnel-cluster.sh -d 启动客户端 ./bin/seatunnel.sh --config ./config/kafka2gbase_udf.conf 这样就启…

Vue3 数字滚动插件 vue-countup-v3

文章目录 介绍效果安装属性事件配置项完整样例 介绍 vue-countup-v3 插件是一个基于 Vue3 的数字动画插件,用于在网站或应用程序中创建带有数字动画效果的计数器。通过该插件,我们可以轻松地实现数字的递增或递减动画,并自定义其样式和动画效…

软件测试职业发展的7个阶段,哪个都吃香!

首先谈谈我在软件测试行业的亲身经历:我的一位同事曾经很认真地问过我一个问题,他说他现在从事软件测试工作已经4年了,但是他不知道现在的工作和自己在工作3年时有什么不同,他想旁观者清,也许我能回答他的问题。此外他…

手写vue-diff算法(一)

Vue初始化流程 1.Vue流程图 Vue流程图: Vue的初始化流程,默认会创建一个Vue实例,执行初始化、挂载、模板编译操作,模板被编译成为render函数;在render函数初始化时会执行取值操作,从而进入getter方法对当…

【科研入门】会议、期刊、出版社、文献数据库、引文数据库、SCI分区、影响因子等基础科研必备知识

大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目录 一、会议与期刊二、如何辨别是否…

【UE5 Cesium】07-Cesium for Unreal 从一个地点飞行到另一个地点(下)

UE版本:5.1 介绍 本文以在基督城(新西兰)和悉尼(澳大利亚)这两个城市间为例,在上一篇文章(【UE5 Cesium】06-Cesium for Unreal 从一个地点飞行到另一个地点(上)&#…

vant-weapp源码解析---Tab标签页

这个标签栏,属于一个很常见的组件,一般我不用这个组件,自己手写一个scroll-view以及样式,更加轻便。但是我写的最简单的标签页没有滚动效果,以及选中标签动画效果。因此根据标签栏滚动学习下,并且自己手写一…

动态规划的入门

https://www.bilibili.com/video/BV13Q4y197Wg/ 动态规划解题步骤 —— carl 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由…

Postman 最被低估的功能,自动化接口测试效率简直无敌!

目录 该篇文章针对已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求的操作。 接口结果判断 功能区 脚本相关 代码模板 集合(批量)测试 批量执行 变化的参数数据 请求依赖问题 接口执行顺序 数据传递 解决依…

系统出错。发生系统错误 1067。进程意外终止。

问题描述 使用管理员cmd,任务管理器均无法启动mysql。 报错提示信息:系统出错。发生系统错误 1067。进程意外终止。 错误排查 1.检查3306端口是否被占用 在cmd输入netstat -aon|findstr 3306,结果如下: 如果你发现是端口被占用…

OpenAI 又赢麻了谷歌 DeepMind 创始人刚称 Gemini 能碾压 GPT-4

整理 | 褚杏娟,核子可乐 谷歌在上个月的开发者大会上公布了一系列 AI 新项目,当时首次亮相的 Gemini 曾受到不少嘲讽。但近日,DeepMind 联合创始人兼 CEO Demis Hassabis 自曝,工程师们正在使用 AlphaGo 的技术来开发 Gemini&…