10分钟吃透,python操作mysql数据库的增、删、改、查

news2024/9/21 20:50:35

 大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:

lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼Develop

小淼Develop的个人空间-小淼Develop个人主页-哔哩哔哩视频

本篇文章主要讲述python操作mysql数据库的增、删、改、查

目录

python后端

mysql数据库表结构的创建

pymysql库的安装

增加数据

写法一(静态):

写法二(动态):

写法三(动态):

综合代码:

小案例:

mysql数据库的数据显示:

 查询数据

写法一(admin表中所有的数据):

写法二(admin表中条件查询id==3的数据):

写法三(admin表中条件查询id>2的数据):

写法四(admin表中条件查询id>2的数据"利用execute的第一个参数判断"):

写法五(admin表中条件查询id>2的数据中第一条满足的数据。"利用execute的第一个参数判断"):

综合代码:

综合代码查询结果:

删除数据

条件删除(删除admin数据表中id为3的数据):

写法:

综合代码:

删除后的显示

修改数据

条件修改写法:

综合代码


python后端

 python是后端开发的语言,后端开发指的是所开发的内容不会直接展示在用户的面前。而是在进行数据的处理和逻辑功能的交互,后端也被称之为服务端。

在后端开发里面数据处理是一个麻烦而又重要的领域,所有程序的功能交互都离不开数据,哪怕是一个变量都是数据。而python能够使用丰富的基本数学库math和第三方库numpy等等完成不同类型不同格式的数据处理工作,对于文本类型数据也有XML和BeautifulSoup等库可以进行轻松的处理。

一个网页的开发分为前端和后端两个部分,前端就是使用HTML、CSS、JavaScript等语言去开发出来的可以直观的展示给用户浏览的页面,也被称之为视图。而后端就是这些页面上所执行的操作,例如网页跳转、数据展示和文件读写等等操作。

mysql数据库表结构的创建

我这里创建一个有id,username,password,mobile这些键的表表结构。

sql语句代码如下:

create table admin(
    -> id int not null auto_increment primary key,
    -> username varchar(16) not null,
    -> password varchar(64) not null,
    -> mobile char(11) not null
    -> ) default charset=utf8;

pymysql库的安装

在pycharm编译器中的终端输入一下代码

pip install pymysql

或者根据下面的图片中的引导下载:

增加数据

写法一(静态):

cursor.execute("insert into admin(username,password,mobile) values ('lqj','lqj0828','123456789')")

 写法二(动态):

   sql = "insert into admin(username,password,mobile) values (%s,%s,%s)"
   cursor.execute(sql,["张三","qwe123","12333333333"])

 写法三(动态):

  sql = "insert into admin(username,password,mobile) values (%(n1)s,%(n2)s,%(n3)s)"
  cursor.execute(sql, {"n1": "李四", "n2": "qwe44", "n3": "14444444444"})

 综合代码:

import pymysql

    # 1.链接mysql
    conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # 2.发送指令
    # 生成命令
    # 写法一(静态)
    cursor.execute("insert into admin(username,password,mobile) values ('lqj','lqj0828','123456789')")
    # 提交命令
    conn.commit()

    # 3.关闭连接
    cursor.close()
    conn.close()

小案例:

用户输入的值存放到mysql数据库的数据表中

import pymysql

while True:
    user = input("用户名:")
    if user.upper() == 'Q':
        break
    pwd = input("密码:")
    mobile = input("手机号:")

    # 1.链接mysql
    conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

    # 2.发送指令
    # 生成命令
    # 写法一(静态)
    # cursor.execute("insert into admin(username,password,mobile) values ('lqj','lqj0828','123456789')")
    # 写法二(动态)
    # sql = "insert into admin(username,password,mobile) values (%s,%s,%s)"
    # cursor.execute(sql,["张三","qwe123","12333333333"])
    # 写法二(动态获取用户输入信息)
    sql = "insert into admin(username,password,mobile) values (%s,%s,%s)"
    cursor.execute(sql, [user, pwd, mobile])
    # 写法三(动态)
    # sql = "insert into admin(username,password,mobile) values (%(n1)s,%(n2)s,%(n3)s)"
    # cursor.execute(sql, {"n1": "李四", "n2": "qwe44", "n3": "14444444444"})

    # 提交命令
    conn.commit()

    # 3.关闭连接
    cursor.close()
    conn.close()

mysql数据库的数据显示:

 查询数据

写法一(admin表中所有的数据):

sql = "select * from admin"
res = cursor.execute(sql)
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)

写法二(admin表中条件查询id==3的数据):

sql = "select * from admin where id=3"
res = cursor.execute(sql)
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)

写法三(admin表中条件查询id>2的数据):

sql = "select * from admin where id>2"
res = cursor.execute(sql)
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)

写法四(admin表中条件查询id>2的数据"利用execute的第一个参数判断"):

sql = "select * from admin where id>%s"
res = cursor.execute(sql, [2, ])
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)

写法五(admin表中条件查询id>2的数据中第一条满足的数据。"利用execute的第一个参数判断"):

sql = "select * from admin where id>%s"
res = cursor.execute(sql, [2, ])
data_list = cursor.fetchone()
print(data_list)

综合代码:

import pymysql

# 1.链接mysql
conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令
# 写法一(获取admin表中所有的数据)
# sql = "select * from admin"
# res = cursor.execute(sql)
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 写法二(admin中的条件查询)
# 1.id等于3的所有数据写法
# sql = "select * from admin where id=3"
# res = cursor.execute(sql)
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 2.id大于2的所有数据写法一
# sql = "select * from admin where id>2"
# res = cursor.execute(sql)
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 3.id大于2的所有数据写法二
# sql = "select * from admin where id>%s"
# res = cursor.execute(sql, [2, ])
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 4.id大于2的第一条数据写法
sql = "select * from admin where id>%s"
res = cursor.execute(sql, [2, ])
data_list = cursor.fetchone()
print(data_list)
# 提交命令
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

综合代码查询结果:

删除数据

条件删除(删除admin数据表中id为3的数据):

写法:

sql = "delete from admin where id=%s"
res = cursor.execute(sql,[3,])
print("admin表中id为3的数据删除成功!")

综合代码:

import pymysql

# 1.链接mysql
conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令
# 写法一(删除admin表中id为3的数据)
sql = "delete from admin where id=%s"
res = cursor.execute(sql,[3,])
print("admin表中id为3的数据删除成功!")
# 提交命令
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

删除后的显示

python显示:

mysql数据库变化:

修改数据

条件修改写法:

sql = "update admin set mobile=%s where id=%s"
res = cursor.execute(sql, ["444444", 4, ])
print("admin表中id为4的mobile数据成功修改为了:444444")

综合代码

import pymysql

# 1.链接mysql
conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令
# 写法一(删除admin表中)
sql = "update admin set mobile=%s where id=%s"
res = cursor.execute(sql, ["444444", 4, ])
print("admin表中id为4的mobile数据成功修改为了:444444")
# 提交命令
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

 python显示:

 mysql数据库变化:

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

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

相关文章

聊聊汽车OTA测试技术方案

汽车OTA已成为时下热门话题,由于OTA的升级可能会带来一定的风险,针对OTA的测试就尤为重要。本文我们主要通过介绍OTA的发展背景、汽车OTA测试的必要性以及汽车OTA测试内容,为大家分享一套成熟的OTA测试方案。 什么是OTA OTA(Over-…

以最大速度将数据迁移至AWS S3存储

数据上云,已经成为企业数据管理发展的必然趋势。 对于企业而言,数据上云“常态化”的趋势,无疑是一个巨大的技术红利。而数据规模爆发式增长的今天,移动和访问云端数据却成为困扰企业的一大难题。不过幸运的是,在对象…

ES6:promise简单学习

一、理解promise Promise将异步执行的程序变成同步执行,所谓的在开发中解决回调嵌套的问题 Promise 是异步编程的一种解决方案 从语法上讲,promise是一个对象 从它可以获取异步操作的消息 从本意上讲,它是承诺,承诺它过一段时间会…

Java入门超详细(内含Java基础 Java高级)

Java基础入门 - 内含Java基础,Java高级 Java 基本介绍Java 学习须知Java 学习文档Java 基础Java 基础语法Java 对象与类Java 基本数据类型Java 变量类型Java 修饰符Java 运算符Java 循环结构Java 条件语句Java switch caseJava 数组Java 日期与时间Java 正则表达式J…

Swift AsyncSequence — 代码实例详解

前言 AsyncSequence 是并发性框架和 SE-298 提案的一部分。它的名字意味着它是一个提供异步、顺序和迭代访问其元素的类型。换句话说:它是我们在 Swift 中熟悉的常规序列的一个异步变体。 就像你不会经常创建你的自定义序列一样,我不期望你经常创建一个…

2022 Jiangsu Collegiate Programming Contest A. PENTA KILL!

题目链接 Sample 1 Input 10 Bin Guigo Grevthar Bin GALA Grevthar GALA TitaN GALA Guigo GALA Aegis GALA Jojo GALA Grevthar Xiaohu Grevthar GALA Aegis Output PENTA KILL! Sample 3 Input 7 GALA Jojo Aegis Ming GALA Grevthar GALA Grevthar GALA Aegis GALA Guigo…

树莓派硬件介绍及配件选择

目录 树莓派Datasheet下载地址: Raspberry 4B 外观图: 技术规格书: 性能介绍: 树莓派配件选用 电源的选用: 树莓派外壳选用: 内存卡/U盘选用 树莓派Datasheet下载地址: Raspberry Pi …

CompletableFutrue异步处理

异步处理 一、线程的实现方式 1. 线程的实现方式 1.1 继承Thread class ThreadDemo01 extends Thread{Overridepublic void run() {System.out.println("当前线程:" Thread.currentThread().getName());} }1.2 实现Runnable接口 class ThreadDemo02 implements …

故障:更新后电脑卡顿

前一天下班的时候关电脑,关机选项变成了“更新并关机”,没多想,我点了。。。。早上上班就发现电脑卡得不行,看了下更新日志,装了一大堆东西,看了下任务管理器,内存直接跑到了90%,这电…

每日学术速递5.2

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.DataComp: In search of the next generation of multimodal datasets 标题:DataComp:寻找下一代多模态数据集 作者:Samir Yitzhak Gadre, Gab…

【JAVA模块六------ 综合案例基础巩固】

JAVA模块六------ 综合案例基础巩固 1 逢7跳过2 数组元素求和3 判断两个数组的内容是否相同4 查找某个数组元素索引5 数组元素反转输出:(逆序输出)6 评委打分7 随机产生验证码其他:方法抽取: 1 逢7跳过 要求&#xff1…

国产光伏仪器 6581太阳能电池板伏安特性测试仪

6581太阳能电池板伏安特性测试仪主要用于太阳能电池板生产的最终测试,也可以作为层压前测试使用,能大大提高一次封装成品率。该测试仪适合于单晶、多晶、薄膜等多种电池组件,可进行I-V曲线、P-V曲线、短路电流、开路电压、峰值功率等全部参数…

Hive SQL on Flink 构建流批一体引擎

摘要:本文整理自阿里巴巴开发工程师罗宇侠、阿里巴巴开发工程师方盛凯,在 Flink Forward Asia 2022 流批一体专场的分享。本篇内容主要分为五个部分: 1. 构建流批一体引擎的挑战 2. Hive SQL on Flink 3. 流批一体引擎的收益 4. Demo 5. 未来…

做到“有效沟通”,帮你达到这3个目的

在项目管理中,团队沟通是至关重要的。团队成员之间应该建立良好的沟通机制,及时沟通和协调问题,避免出现问题后甩锅的情况。 在实际项目中,很多问题出现的原因是团队沟通不畅,项目经理需要加强团队沟通的重要性&…

K8S二进制安装报错及各个组件功能介绍

目录 一、K8S安装二、安装时遇到的几个问题2.1、Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kuberne…

C语言复习笔记2

1.变量命名只能以数字、字母、下划线组成并且不能以数字开头。 #include<stdio.h> #include<unistd.h>//变量名只能由数字字母下划线组成&#xff0c;不能以数字开头 int main() {//int 2b;return 0; }2.内存中保存的是补码 0的补码取反得补码再求源码是-1。 源码…

提升论文影响力的方法

论文发表后&#xff0c;还有一些重要的工作去做&#xff0c;那就是去积极宣传和推广自己的论文&#xff0c;提高自己论文的影响力。这类似于一个电影上映后&#xff0c;主演们还得去做宣传一样&#xff0c;要想办法推销自己的作品。本文将介绍提升论文影响力的方法。 1. 开源数…

xray简单使用指南

前言收到需求如下 用户还需要一个报告 询问了群里的小伙伴推荐使用xray进行扫描 一、下载 https://github.com/chaitin/xray/releases windows下载amd64即可 解压后进入其目录下执行exe程序&#xff0c;帮我们生成一些yaml文件 生成 ca 证书 .\xray_windows_amd64.exe g…

创客匠人:五月,爱成长的力量,有爱必赢

2023年5月4日&#xff0c;创客匠人第六十九届铁军训练营在厦门举办&#xff0c;由创客匠人CEO蒋洪波、CSO张潇峰及HRM何巧婷为厦门总部的伙伴们带来精彩的回顾总结及主题分享。 一、四月总结 为了明确前进奋斗的方向&#xff0c;进一步提升团队战斗力&#xff0c;从而更好地帮助…

Altium Designer中如何在顶层中添加对应端口

转载说明&#xff1a; 大众深度科普 https://jingyan.baidu.com/article/c33e3f4889f327ea15cbb584.html 版权归原作者所有&#xff1b;感谢原作者的分享&#xff1b; 转载到此&#xff0c;主要为了后期查看方便&#xff1b; 本经验简要介绍Altium Designer中如何在顶层中添…