【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_database 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_database')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)except Exception as e:print(f'数据表创建失败: {e}')else:print('数据表创建成功...')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_database') 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()except Exception as e:print(f'数据插入失败: {e}')db.rollback()else:print('数据插入成功...')if __name__ == '__main__':insert_data()
  • db.commit()用于事务提交
  • db.rollback()用于在数据插入失败时进行事务回滚

数据查询

import pymysqldef query_data():db = pymysql.connect(host='localhost', user='root', password='root', db='python_database')cursor = db.cursor()sql = """select * from book_info;"""try:cursor.execute(sql)except Exception as e:print(f'数据查询失败: {e}')else: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)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_database')cursor = db.cursor()sql = """update book_info set read_count = read_count + 1 where id = 1;"""try:cursor.execute(sql)db.commit()except Exception as e:print(f'数据更新失败: {e}')db.rollback()else:print('数据更新成功...')finally:cursor.close()db.close()if __name__ == '__main__':update_data()

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

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

相关文章

MySQL中like关键字与索引的使用

严格来说,like %abc本身是不能使用索引的,但是一条SQL语句有没有使用索引,要看这条SQL语句整体写的是什么,like不是疫情期间的新冠病毒,沾上一点儿就会把索引隔离开。只要你明白自己在干什么,完全可以使用l…

Maven多模块快速升级超好用Idea插件-MPVP

功能:多模块maven项目快速升级指定版本插件,并提供预览和相关升级模块日志能力。 可快速进行版本升级,进行部署到Maven仓库。 安装: 可在idea插件中心进行安装 / 下载资源拖动安装 MPVP(Maven) - IntelliJ IDEs Plugin | Marke…

html5 语义化标签实用指南

文章导读:AI 辅助学习前端,包含入门、进阶、高级部分前端系列内容,当前是 HTML 的部分,公众号会持续更新,适合零基础的朋友,已有前端工作经验的可以不看,也可以当作基础知识回顾。 HTML5 中新增…

遥测终端赋能水库泄洪监测预警,筑牢度汛安全防线!

4月10日,水利部召开水库安全度汛视频会议。会议要求着力强化水库防洪“四预”措施,加快构建雨水情监测预报“三道防线”,完善预警信息发布机制,推进数字孪生水利工程建设,为科学调度指挥决策提供支持。强调坚决牢牢守住…

Ubuntu Pycharm安装

下载PyCharm,https://www.jetbrains.com/pycharm/download/?sectionlinux 然后按照下图执行安装: 安装的时候可能出现的问题: 问题1:No JDK found. Please validate either PYCHARM_JDK, JDK_HOME or JAVA_HOME environment var…

关于使用后端实现动态表单功能的心得

1、设计方案 1、直接存整体表单结构的json串 优点:相对Mysql细化结构存储,不用在后端处理大量增、删、改的逻辑。如果用mysql对结构体做逻辑删除,可利于回滚。也可用redis、mongodb等实现 缺点:控制粒度不够,不利于需要…

【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,包络熵,散布熵,究竟实现了什么?(第六篇)——“散布熵”及其MATLAB实现

今天讲散布熵,之前用了几篇文章分别讲述了功率谱熵、奇异谱熵、能量熵、近似熵、样本熵、模糊熵、排列熵、包络熵这8种类型的熵: Mr.看海:【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量…

使用API有效率地管理Dynadot域名,自查账户信息

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

使用Python进行异常处理与日志记录的最佳实践

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python进行异常处理与日志记录的最佳实践 异常处理和日志记录是编写可靠且易于维护的软…

Hive——DML(Data Manipulation Language)数据操作语句用法详解

DML 1.Load Load语句可将文件导入到Hive表中。 hive> LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1val1, partcol2val2 ...)];关键字说明: local:表示从本地加载数据到Hive表;否则从HD…

Linux gcc day7

动态链接和静态链接 形成的可执行的程序小:节省资源--内存,磁盘 无法c静态库链接的方法 原因是我们没有安装静态c库(.a) 所以要安装 sudo yum install -y glibc-static gcc static静态编译选项提示错误:/usr/lib/ld:ca…

一些常见的Windows命令

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言看版本号查找端口启动程序杀死某个端口查看全部端口看ip进入目录就是总结 前言 提示:这里可以添加本文要记录的大概内容: 例如&#x…

【算法分析与设计】重复的DNA

📝个人主页:五敷有你 🔥系列专栏:算法分析与设计 ⛺️稳中求进,晒太阳 题目 DNA序列 由一系列核苷酸组成,缩写为 A, C, G 和 T.。 例如,"ACGAATTCCG" 是一个 DNA序列 。 在研究…

「 网络安全常用术语解读 」软件物料清单SBOM详解

1. 概览 软件物料清单(Software Bill of Materials,SBOM)是软件成分信息的集合,SBOM文件中记录了软件产品或服务所使用组件、库、框架的清单,用于描述软件构建过程中使用的所有组件及其关系,以实现软件供应…

顺序表的应用-通讯录

顺序表的应用-通讯录 1.操作2.功能要求2.1.功能要求2.2.思路小结2.3.文件梳理2.4.代码实现"SeqList.h""Contact.h""SeqList.c""Contact.c""test.c" 1.操作 链接: 顺序表专题 这篇文章介绍了顺序表的概念与基本操作。 本文将…

【前端技术】CSS基础入门篇

一、 CSS简介 css&#xff08;Cascading Style Sheets&#xff0c;缩写为 CSS&#xff0c;也叫作层叠样式表&#xff09;是一套美化HTML标签所编写出页面的语法&#xff0c;CSS描述了如何在不同设备上渲染内容的方法。 二、 CSS基本引入方法 <!-- Cascading style shet:层…

[Android]Jetpack Compose状态管理

在 Jetpack Compose 中&#xff0c;状态管理是构建交互式应用程序的核心。Compose 设计思想强调了不变性和重新组合的概念&#xff0c;以支持高效的 UI 更新。 一、使用 Remember 和 MutableState 管理状态 remember 和 mutableStateOf 是管理状态的基础工具&#xff0c;特别…

ctfshow web入门 SQl注入 web191--web200

web191 多了一个正则绕过 上脚本布尔盲注 用ord #author:yu22x import requests import string url"http://70adf0cb-2208-4974-b064-50a4f4103541.challenge.ctf.show/api/index.php" sstring.ascii_lettersstring.digits flag for i in range(1,45):print(i)for j…

【C 数据结构】二叉树

文章目录 【 1. 基本原理 】1.1 二叉树的性质1.2 满二叉树1.3 完全二叉树 【 2. 二叉树的顺序存储结构 】2.1 完全二叉树的顺序存储2.2 普通二叉树的顺序存储2.3 完全二叉树的还原 【 3. 二叉树的链式存储结构 】【 4. 二叉树的先序遍历 】4.1 递归实现4.2 非递归实现 【 5. 二…

面试算法十问2(中英文)

算法题 1: 数组和字符串 Q: How would you find the first non-repeating character in a string? 问&#xff1a;你如何找到字符串中的第一个不重复字符&#xff1f; Explanation: Use a hash table to store the count of each character, then iterate through the strin…