学习MySQL(六):Python的连接与操作

安装第三方模块pymysql

pip install pymysql
或者
通过PyCharm后台操作

连接mysql

# 语法示例
import pymysql
db = pymysql.connect(host='localhost',user='root',password="123456",database='school',port=3306,charset="utf8")

数据操作的基本语法

import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="school")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# 撰写SQL语句
sql = "select * from student"
# 执行SQL语句
cursor.execute(sql)
# 获取数据
results = cursor.fetchall()
# 打印结果
print(results)
# 关闭数据库连接
db.close()

游标的概念

游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。

尽管游标能遍历结果中的所有行,但一次只指向一行。

游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作。

  • 执行SQL代码
  • 遍历获取查询结果

增加表

import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="school")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# 使用预处理语句创建表
sql = "create table ceshi (id int primary key, name char(8), age int)"
# 执行SQL语句
cursor.execute(sql)
# 关闭数据库连接
db.close()

增加数据

import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="school")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL插入语句
sql = "insert into ceshi values(1, 'Toiny', 25)"
try:cursor.execute(sql) # 执行SQL语句db.commit()         # 提交到数据库执行
except:db.rollback()       # 如果发生错误则回滚
# 关闭数据库连接
db.close()

知识点:

  • 支持事务的储存引擎,MySQL8.0默认是innodb。
  • commit() 提交事务。
  • 记录的增删改操作需要提交事务,其他不需要。
  • rollbak() 回退事务,当事务执行到一半报错时整个事务操作都会回退。

import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="school")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL删除语句
sql = "delete from ceshi where age >= 20"
try:cursor.execute(sql) # 执行SQL语句db.commit()         # 提交到数据库执行
except:db.rollback()       # 如果发生错误则回滚
# 关闭数据库连接
db.close()

import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="school")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL更新语句
sql = "update ceshi set age = 25 where age = 22"
sql1 = "select * from ceshi"
try:cursor.execute(sql) # 执行SQL语句cursor.execute(sql1) # 执行SQL语句db.commit()         # 提交到数据库执行
except:db.rollback()       # 如果发生错误则回滚
# 打印数据
print(cursor.fetchall())
# 关闭数据库连接
db.close()

import pymysql# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="school")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# SQL查询语句
sql = "select * from student"
try:cursor.execute(sql)  # 执行SQL语句# results = cursor.fetchone()     # 逐条获取数据results1 = cursor.fetchall()  # 获取全部数据for row in results1:name = row[3]sex = row[1]print("name=%s,sex=%s" % (name, sex))
except:print("Error: unable to fetch data")
# 关闭数据库连接
db.close()

知识点:

  • fetchone():该方法获取下一个查询结果集。结果集是一个对象。
  • fetchall():接受全部的返回结果行。
  • rowcount:这是一个只读属性,并返回执行execute()方法后影响的行数。

来自: 学习MySQL(六):Python的连接与操作

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

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

相关文章

通过gen_compile_commands.py产生compile_commands.json文件的方法

大家在使用vscode查看linux源代码时,会有很多飘红处,而且函数的跳转非常不方便。所以linux给了一个脚本gen_compile_commands.py,此脚本类似ctags这样,产生相应的关联之类的数据库,方便函数及文件的跳转等等。非常好。…

软件测试委托合同(Word原件实际参考)

一、 任务表述 二、双方的主要义务 三、履约地点 四、合同价款 五、测试费用支付方式 六、履行的期限 七、资料的保密 八、 风险责任的承担 九、验收方法 十、 争议解决 十一、 其他 十二、签章 十三、计算机软件产品鉴定测试保密协议 软件资料清单列表部分文档: …

Object.wait()和LockSupport.park()

Object.wait() 和 LockSupport.park() 都是用来使当前线程等待的方法,但它们在使用场景和机制上有所不同: Object.wait() 用途:wait() 方法属于对象监视器(Monitor)的一部分,通常与 synchronized 块或方法…

电感式传感器

电感传感器是基于电磁感应原理,将被测非电量(如位移、压力、振动等)转换为电感量变化的一种结构性传感器。利用自感原理的有自感式传感器(可变磁阻式),利用互感原理的有互感式(差动变压器式和涡…

AI学习指南线性代数篇-矩阵的运算

AI学习指南线性代数篇-矩阵的运算 线性代数中,矩阵的运算是一项重要而基础的内容。在人工智能领域,矩阵的运算被广泛应用于各种算法中,如神经网络、图像处理、自然语言处理等。本文将从矩阵的运算概述、在AI中的使用场景、定义和意义以及公式…

QT:QML制作线形图

目录 一.介绍 二.引入库 三.自定义属性 四.悬停处理函数 五.设置X轴 六.设置Y轴 七.画线 八.测试点坐标 九.设置值 十.效果演示 十一.代码演示 1.LineGraph.qml 2.main.qml 一.介绍 线形图(也称为折线图)是一种常用的数据可视化工具&#…

如何找到MySQL中存储引擎所对应的表空间并且打开?

在上节课我们学习了数据库(MySQL)进阶:存储引擎,有不少同学产生疑惑,到底要怎么找到表空间并且打开啊?这节课我们就来探讨。 首先,根据这个路径:C:\ProgramData\MySQL\MySQL Server…

mybatis-plus如何使用QueryWrapper和LambdaQueryWrapper的and方法?

构造器去构造条件的时候,我们都知道eq方法去链式的时候是自动添加and的,那如果需要and的那个条件需要加括号呢? 环境 Jdk 1.8、mybatis-plus 3.5.3.2、mysql 5.7.11 示例 sql: select * from user where openid 1 and (phon…

谷歌Flank潜藏3年的Github Action供应链攻击

01 简 介 Flank [1] 是谷歌 Firebase Test lab 开源在 Github 的一个项目,用于同时对多个安卓和IOS设备进行测试。2024年4月15号 AWS 安全工程师 Adnan Khan 公布了关于该项目代码仓库 Github Action CI/CD 存在漏洞的细节[2],漏洞在2020年于此 代码合…

通信网络时钟同步(PTP网络授时服务器)技术探讨

通信网络时钟同步(NTP网络授时服务器)技术探讨 通信网络时钟同步(NTP网络授时服务器)技术探讨 1、着移动通信业务的发展和移动用户的快速增长, 移动网络架构向IP化、宽带化进展。为了适应业务IP化发展趋势&#xff0c…

02 VUE学习:模板语法

模板语法 Vue 使用一种基于 HTML 的模板语法,使我们能够声明式地将其组件实例的数据绑定到呈现的 DOM 上。所有的 Vue 模板都是语法层面合法的 HTML,可以被符合规范的浏览器和 HTML 解析器解析。 在底层机制中,Vue 会将模板编译成高度优化的…

开发vue3,真的可以不用ref/reactive了,也不需要ref.value

什么是Cabloy-Front? Cabloy-Front 是一款支持 IOC 容器的 Vue3 框架。不用ref/reactive,不用ref.value,不用pinia 与UI库的配合 Cabloy-Front 可以搭配任何 UI 库使用,并且内置了几款 UI 库的项目模版,便于开箱即用…

免费SSL证书签发安装指南

一、签发 1.选择证书颁发机构(CA):首先,你需要找到一个提供免费SSL证书的CA。有些CA会提供永久免费的SSL证书,而有些则可能只提供有限时间的试用证书,如JoySSL就提供永久免费证书。 2.生成CSR&#xff08…

WPF 鼠标拖拽平移

效果 xaml <ScrollViewer x:Name"scrollViewer" HorizontalScrollBarVisibility"Hidden" VerticalScrollBarVisibility"Disabled" Background"#FFF1ADAD"PreviewMouseDown"ScrollViewer_OnPreviewMouseDown"PreviewMou…

Electron学习笔记(一)

文章目录 相关笔记笔记说明 一、轻松入门 1、搭建开发环境2、创建窗口界面3、调试主进程 二、主进程和渲染进程1、进程互访2、渲染进程访问主进程类型3、渲染进程访问主进程自定义内容4、渲染进程向主进程发送消息5、主进程向渲染进程发送消息6、多个窗口的渲染进程接收主进程发…

白鲸开源CEO郭炜在2024 DataOps发展大会上获聘专家

2024年5月15日&#xff0c;白鲸开源CEO郭炜在2024 DataOps发展大会上被正式聘任为DataOps专家&#xff0c;并获得了荣誉证书。本次大会由中国通信标准化协会主办&#xff0c;中关村科学城管委会提供支持&#xff0c;大数据技术标准推进委员会&#xff08;CCSATC601&#xff09;…

iisnginx环境一次奇怪的跨域问题解决经过

跨域问题描述&#xff1a; iis网站跨域、nginx 网站跨域 都已配置&#xff0c;访问接口依然出现跨域问题。 错误提示&#xff1a; ccess to XMLHttpRequest at ‘https://xxx.com/gameapi/preserve/get/status’ from origin ‘https://cdn.xxx.com’ has been blocked by CO…

Python简易信息管理系统

我们将通过一个实例来探讨如何使用Python与MySQL数据库进行交互&#xff0c;以构建一个简单的学生信息管理系统。这个系统将能够执行基本的CRUD&#xff08;创建(Create)、读取(Retrieve)、更新(Update)、删除(Delete)&#xff09;操作&#xff0c;以管理学生信息。我们将使用m…

Python爬虫-批量爬取新能源汽车上牌量

前言 本文是该专栏的第27篇,后面会持续分享python爬虫干货知识,记得关注。 最近粉丝朋友咨询新能源汽车上牌量数据的爬取方法,对此在本文中,笔者以某汽车平台为例,通过python来实现对“新能源汽车上牌量”的数据进行抓取。 具体实现思路和详细逻辑,笔者将在正文结合完整…

三丰云搭建QQ-bot的服务器-代码实现(3)

网址&#xff1a;https://www.sanfengyun.com >> 三丰云免费云服务器 代码实现 书接上回装饰器&#xff0c;显而易见&#xff0c;只有装饰器还不完善&#xff0c;所以我们接着来补充代码 首先定义一个 MyClient 类 class MyClient(botpy.Client):async def on_ready(…