【Python基础】MySQL

文章目录

    • @[toc]
      • 创建数据库
      • 创建数据表
      • 数据插入
      • 数据查询
      • 数据更新

因上努力

个人主页:丷从心·

系列专栏:Python基础

学习指南:Python学习指南

果上随缘


创建数据库

import pymysqldef create_database():db = pymysql.connect(host='localhost', user='root', password='root')cursor = db.cursor()sql = """create database if not exists python_basics charset=utf8;"""try:cursor.execute(sql)except Exception as e:print(f'数据库创建失败: {e}')else:print('数据库创建成功...')if __name__ == '__main__':create_database()
  • pymysql.connect(host='localhost', user='root', password='root')用于连接数据库
    • host用于指定数据库IP地址,localhost表示本地
    • user用于指定数据库用户名
    • password用于指定数据库密码
  • db.cursor()返回一个游标对象,用于执行数据库操作
  • cursor.execute(sql)用于执行一条SQL语句

创建数据表

import pymysqldef create_table():db = pymysql.connect(host='localhost', user='root', password='root', db='python_basics')cursor = db.cursor()sql = """create table if not exists book_info(id int primary key auto_increment,name varchar(10) not null,pub_date datetime,read_count int,comment_count int,is_delete bit);"""try:cursor.execute(sql)print('数据表创建成功...')except Exception as e:print(f'数据表创建失败: {e}')finally:cursor.close()db.close()if __name__ == '__main__':create_table()

数据插入

import pymysqldef insert_data():with pymysql.connect(host='localhost', user='root', password='root', db='python_basics') as db:cursor = db.cursor()sql = """insert into book_info (id, name, pub_date, read_count, comment_count, is_delete) values (%s, %s, %s, %s, %s, %s);"""try:cursor.executemany(sql, [(0, '射雕英雄传', '1980-5-1', 12, 34, 0),(0, '天龙八部', '1986-7-24', 36, 40, 0),(0, '笑傲江湖', '1995-12-24', 20, 80, 0),(0, '雪山飞狐', '1987-11-11', 58, 24, 0)])db.commit()print('数据插入成功...')except Exception as e:print(f'数据插入失败: {e}')db.rollback()if __name__ == '__main__':insert_data()
  • db.commit()用于事务提交
  • db.rollback()用于在数据插入失败时进行事务回滚

数据查询

import pymysqldef query_data():db = pymysql.connect(host='localhost', user='root', password='root', db='python_basics')cursor = db.cursor()sql = """select * from book_info;"""try:cursor.execute(sql)result = cursor.fetchall()# result = cursor.fetchone()# result = cursor.fetchmany(4)for book in result:book_info = dict()book_info['id'] = book[0]book_info['name'] = book[1]book_info['pub_date'] = book[2]book_info['read_count'] = book[3]book_info['comment_count'] = book[4]book_info['is_delete'] = book[5]print(book_info)except Exception as e:print(f'查询失败: {e}')finally:cursor.close()db.close()if __name__ == '__main__':query_data()
{'id': 1, 'name': '射雕英雄传', 'pub_date': datetime.datetime(1980, 5, 1, 0, 0), 'read_count': 12, 'comment_count': 34, 'is_delete': b'\x00'}
{'id': 2, 'name': '天龙八部', 'pub_date': datetime.datetime(1986, 7, 24, 0, 0), 'read_count': 36, 'comment_count': 40, 'is_delete': b'\x00'}
{'id': 3, 'name': '笑傲江湖', 'pub_date': datetime.datetime(1995, 12, 24, 0, 0), 'read_count': 20, 'comment_count': 80, 'is_delete': b'\x00'}
{'id': 4, 'name': '雪山飞狐', 'pub_date': datetime.datetime(1987, 11, 11, 0, 0), 'read_count': 58, 'comment_count': 24, 'is_delete': b'\x00'}
  • cursor.fetchall()用于获取所有查询结果
  • cursor.fetchone()用于获取一条查询结果
  • cursor.fetchmany(4)用于获取四条查询结果

数据更新

import pymysqldef update_data():db = pymysql.connect(host='localhost', user='root', password='root', db='python_basics')cursor = db.cursor()sql = """update book_info set read_count = read_count + 1 where id = 1;"""try:cursor.execute(sql)db.commit()print('数据更新成功...')except Exception as e:print(f'数据更新失败: {e}')db.rollback()finally:cursor.close()db.close()if __name__ == '__main__':update_data()

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

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

相关文章

Maven多模块管理

Maven多模块管理 在了解怎么进行Maven多模块管理之前,先聊聊为什么要进行Maven多模块管理 为什么要Maven多模块管理? 在传统的单体架构开发下,一个项目中的依赖只需要使用一个pom.xml文件管理即可。但是随着微服务的流行,将原有…

【IT运维入门(ITHW)系列】之「快速部署」第二期清单(持续更新)

ITHW是Information Technology Hello World的缩写简拼。意在提供IT领域的入门相关知识,近期给大家带来的是主流技术选型的快速部署系列,意在最大程度地简化部署过程,以便能快速体验或测试相关技术选型。 「快速部署」第一期清单 ITHW快捷部署…

Python零基础从小白打怪升级中~~~~~~~多线程

线程安全和锁 一、全局解释器锁 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。 GIL全称global interpreter lock,全局解释器锁。 每个线程在执行的时候都需要先获取GIL,保证同一时刻只…

MR-JE-70A 三菱MR-JE伺服驱动器(750W通用型)

三菱MR-JE伺服驱动器(750W通用型) MR-JE-70A外部连接,MR-JE-70A用户手册,MR-JE-70A 三相或单相AC220V三菱通用型伺服放大器750W,配套电机HG-SN52J-S100、HG-KN73J-S100。 MR-JE-70A参数说明:伺服驱动器通用型750W,三相或单相AC200V~240V 三…

Dual-AMN论文阅读

Boosting the Speed of Entity Alignment 10: Dual Attention Matching Network with Normalized Hard Sample Mining 将实体对齐速度提高 10 倍:具有归一化硬样本挖掘的双重注意力匹配网络 ABSTRACT 寻找多源知识图谱(KG)中的等效实体是知识图谱集成的关键步骤&…

使用Flask和Flask-JWT-Extended保护API免受跨站请求攻击

在本文中,我们将探讨如何使用Flask和Flask-JWT-Extended库来保护您的API免受跨站请求攻击(CSRF)。我们将首先简要介绍CSRF攻击的概念,然后详细说明如何使用Flask-JWT-Extended库来保护您的API。 什么是跨站请求攻击(C…

CSS文本属性与字体属性

目录 文本属性 文本颜色 文本对齐 修饰文本 文本缩进 行高 字体属性 字体系列 字体大小 字体粗细 字体样式 字体/文本综合属性写法 Chrome调试工具的使用 文本属性 文本颜色 在CSS中使用color 属性用于定义文本的颜色,使用background-color设置一个盒…

Adobe Acrobat PDF 2024

Adobe Acrobat PDF 2024正式发布!支持Windows和macOS系统,新界面做了轻微调整。 下载地址 Windows客户端:https://www.123pan.com/s/f43eVv-GKZKd.html macOS客户端:https://www.123pan.com/s/f43eVv-PKZKd.html

带缓存的输入输出流(I/O)

文章目录 前言一、带缓冲的输入输出流是什么?二、使用方法 1.BufferedInputStream与BufferedOutputStream类2.BufferedReader与BufferedWriter类总结 前言 输入输出流可以视为,从A点把货物搬运至B点。那么带缓冲的意思可以视为用货车把A点的货物搬运至B点…

[ ROS入门]

00ROS实现流程大致分为5步 先创建一个工作空间;再创建一个功能包;编辑源文件;编辑配置文件;编译并执行。 01创建工作空间 02进入src创建ros包并添加依赖 上述命令,会在工作空间下生成一个功能包,该功能包依…

关于外网java后端服务访问内网minio中间件,因连接minio超时,启动失败问题

注:服务器情况:2台服务器,内网服务器包含(activemq、minio、nginx、redis、mysql、后端java服务)。外网服务器只有后端java服务,访问内网的中间件(内网服务器开放了部分指定端口) 问…

Unity应用开机自启动

使用说明 以代码设置的方式设置Unity应用开机自启动。 将下面脚本挂载到场景物体,通过UI按钮开启应用自启动和取消应用自启动,设置下次运行应用生效。 所用到的Dll下载地址:Interop.IWshRuntimeLibrary 脚本代码 using System; using Syst…

将本地项目推送至gitlab仓库

1. gitlab上新建一个空白项目 gitlab上点击new project按钮,新建一个项目 新建空白项目 项目名称与本地新建项目名称相同,其余根据具体需要选择 2. 初始化本地仓库并commit项目 进入本地项目根目录下,右击 git bash here打开命令窗口 初始化…

Netty-NioServerSocketChannel与NioSocketChannel

NioServerSocketChannel NioServerSocketChannel是netty服务端的channel。在ServerbootStrap的bind方法中,通过反射,实例化对象NioServerSocketChannel。   NioServerSocketChannel对象实例化的过程中。 AbstractChannel中实例化channel的id&#xff…

3DGS渐进式渲染 - 离线生成渲染视频

总览 输入:环绕Object拍摄的RGB视频 输出:自定义相机路径的渲染视频(包含渐变效果) 实现过程 首先,编译3DGS的C代码,并跑通convert.py、train.py和render.py。教程如下: github网址&#xf…

HarmonyOS开发实例:【分布式数据服务】

介绍 分布式数据服务(Distributed Data Service,DDS)为应用程序提供不同设备间数据分布式的能力。通过调用分布式数据接口,应用程序将数据保存到分布式数据库中。通过结合帐号、应用和分布式数据服务对属于不同的应用的数据进行隔离,保证不同…

Java项目实现Excel导出(Hutool)

官网&#xff1a; Excel生成-ExcelWriter (hutool.cn) 1.使用Hutool工具实现Excel导出&#xff08;.xlsx格式&#xff09; 业务场景&#xff1a; 使用SpringCloudmysqlmybatis-plus需要将数据库中的数据导出到Excel文件中 前端为Vue2 第零步&#xff1a;导入依赖 <!-…

ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路

前言 前面的几篇文章讲了很多 JWT 的优点&#xff0c;但作为技术人员都知道&#xff0c;没有一种技术是万能的 “银弹”&#xff0c;所谓有矛就有盾&#xff0c;相比 Session、Cookie 等传统的身份验证方式&#xff0c;JWT 在拥有很多优点的同时&#xff0c;也有着不可忽视的缺…

49.HarmonyOS鸿蒙系统 App(ArkUI)Tab导航组件的使用

HarmonyOS鸿蒙系统 App(ArkUI)Tab导航组件的使用 图片显示 Row() {Image($r(app.media.leaf)).height(100).width(100)Image($r(app.media.icon)).height(100).width(100) } 左侧导航 import prompt from ohos.prompt; import promptAction from ohos.promptAction; Entry C…

适用于Windows电脑的最佳数据恢复软件是哪些?10佳数据恢复软件

丢失我们系统中可用的宝贵信息是很烦人的。我们可以尝试几种手动方法来重新获取丢失的数据。然而&#xff0c;当我们采用非自动方法来恢复数据时&#xff0c;这是一项令人厌烦和乏味的工作。在这种情况下&#xff0c;我们可以尝试使用一些正版硬盘恢复软件进行数据恢复。此页面…