核心内容

(1)使用到的模块:PyMySQL

安装:

pip3 install pymysql

(2)连接数据库

# 连接数据库,地址:localhost,账号:root,密码:root,数据库:school,
# 编码:UTF-8
db = pymysql.connect('localhost', 'root', 'root', 'school', charset='utf8')

(3)创建游标对象

# 创建一个游标对象
cursor = db.cursor()

(4)执行 SQL语句

​cursor.execute(SQL)​

(5)事务提交、回滚

#提交事务
db.commit()
#事务回滚
db.rollback()

(6)获取结果(返回的类型为 元组)

获取一条数据

cursor.fetchone()

获取所有数据

cursor.fetchall()

查看执行SQL语句后影响 到的行数

cursor.rowcount

(7)关闭游标和连接

#关闭游标
cursor.close()
#关闭数据库连接
db.close()

增删改查

1.添加数据

​
import pymysql
# 连接数据库,地址:localhost,账号:root,密码:root,数据库:school,
# 编码:UTF-8
db = pymysql.connect('localhost', 'root', 'root', 'school', charset='utf8')# 创建一个游标对象
cursor = db.cursor()# SQL语句
SQL = ''' INSERT INTO STUDENT VALUES('2016081111','张三','男'),('2016081112','李四','女'),('2016081113','王五','男');'''
try:      # 插入数据cursor.execute(SQL)# 提交到数据库db.commit()print('插入成功')
except:# 插入失败db.rollback()print('插入失败')
# 关闭游标
cursor.close()
# 关闭数据库连接
db.close()​

2.查询数据

import pymysql
# 连接数据库,地址:localhost,账号:root,密码:root,数据库:school,
# 编码UTF-8
db = pymysql.connect('localhost', 'root', 'root', 'school', charset='utf8')
# 创建一个游标对象
cursor = db.cursor()
# SQL语句
SQL = '''SELECT * FROM STUDENT;'''
try:# 查询所有的数据cursor.execute(SQL)# 查询到的条数print('查询到了%s条数据' % (cursor.rowcount))# 获取一条数据one = cursor.fetchone()print(type(one))print(one)# 获取所有数据for item in cursor.fetchall():print(item)
except:# 插入失败print('查询失败')# 关闭游标
cursor.close()
# 关闭数据库连接
db.close()

执行结果

查询到了4条数据
<class 'tuple'>
('30', 'prince', '男')
('2016081111', '张三', '男')
('2016081112', '李四', '女')
('2016081113', '王五', '男')

3.更新数据

import pymysql
# 连接数据库,地址:localhost,账号:root,密码:root,数据库:school
db = pymysql.connect('localhost', 'root', 'root', 'school', charset='utf8')
# 创建一个游标对象
cursor = db.cursor()
SNAME = '李华'
# 更新数据SQL语句
UPDATE_SQL = '''UPDATE STUDENT SET SNAME='%s' WHERE SNO='2016081111';''' % (SNAME)
# 查询数据SQL语句
SELECT_SQL = '''SELECT * FROM STUDENT WHERE SNO='%s'''' % ('2016081111')
try:# 更新数据前cursor.execute(SELECT_SQL)print('更新前:', cursor.fetchall())# 更新数据cursor.execute(UPDATE_SQL)# 提交到数据库db.commit()# 更新数据后cursor.execute(SELECT_SQL)print('更新后:', cursor.fetchall())
except:# 更新失败,回滚db.rollback()print('更新失败')# 关闭游标
cursor.close()
# 关闭数据库连接
db.close()

执行结果:

更新前: (('2016081111', '张三'),)更新后: (('2016081111', '李华'),)

4.删除数据 

import pymysql#连接数据库,地址:localhost,账号:root,密码:root,数据库名:school
db=pymysql.connect('localhost','root','root','school',charset='utf8')
#创建一个游标对象
cursor=db.cursor()SNO='2016081111'
#删除数据SQL语句
DELETE_SQL='''
delete  from student where Sno='%s';
''' % (SNO)
#查询数据SQL语句
SELECT_SQL='''
select * from student where sno='%s'
''' % (SNO)
try:#数据删除前cursor.execute(SELECT_SQL)print('删除前:',cursor.fetchall())#删除数据cursor.execute(DELETE_SQL)#提交到数据库db.commit()#数据删除后cursor.execute(SELECT_SQL)print('删除后:',cursor.fetchall())except:#删除失败,回滚db.rollback()print('删除失败')
#关闭游标
cursor.close()
#关闭数据库连接
db.close()

执行结果

删除前: (('2016081111', '张三'),)
删除后: ()

PyCharm Python3操作数据库MySQL增删改查相关推荐

  1. django-model操作数据库(增删改查)

    django-model操作数据库(增删该查) 一.数据库操作 1.创建model表 ​ 基本结构 更多字段: + View Code 更多参数 + View Code 2.注册APP,setting ...

  2. java数据库edit_Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  3. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  4. 使用LitePal操作数据库(CRUD增删改查) 项目已上传GitHub

    GitHub项目地址: https://github.com/Skymqq/LitePalSave.git LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)映射的模式 ...

  5. Mysql存储函数实现增删改查_使用存储过程操作数据库(实现增删改查)

    使用存储过程操作数据库 添加数据: --创建一个存储过程,向表中插入一条数据 create proc usp_insertintoTbClass @className nvarchar(50), @c ...

  6. uniCloud云函数中通过传统方式操作数据库的-增删改查

    云函数 可以看做java或者php,作为后端服务 cloudfunctions/myCloud/index.js exports.main = async (event, context) => ...

  7. 删除所有数据_mysql数据库操作——数据库的增删改查

    创建数据库 create database 数据库名称 (其他选项) 其他选项可以不要 如: create database test; 则创建了一个数据库名为test的数据库 加上其他选项如字符集设 ...

  8. django关于Mysql增删改查操作以及浏览器数据返回

    1.serializers: from django.core import serializersdef squitData(request):#查询一条#c1=Catinfo.objects.ge ...

  9. 【接口测试】Day5-使用pymysql库对mysql数据库进行增删改查操作

    目录 今日目标 一.数据库介绍 二.数据库基本操作 1.安装 2.操作流程(重点) 1. 创建连接 2. 获取游标 3. 执行sql 4. 关闭游标 5. 关闭连接 3.数据准备 4.数据库基本操作 ...

最新文章

  1. 国产Dhyana禅定x86处理器开始启动生产
  2. OpenGL缩放转换
  3. gin 生成api文档_golang gin框架 集成swagger 自动生成文档
  4. 【前端就业课 第一阶段】HTML5 零基础到实战(五)基础元素
  5. 关于锁表查询的部分SQL
  6. 关于“指针数组”和”数组指针“
  7. MTK:架构和消息机制(必看)
  8. IP地址定位计算机,怎么通过ip地址定位到具体位置
  9. 【高效开发插件】06 FEHelper 数据格式化
  10. java 二叉树转数组_java二叉树怎么转成数组?java怎么实现二叉树?
  11. android网络框架OkHttp之get请求(源码初识)
  12. Kubernetes 调整 nodePort 端口范围
  13. 计算机开机桌面黑,电脑能正常启动但屏幕全黑原因和解决方法
  14. aspcms系统加密后https后台无法登录解决办法
  15. C++表达式语句实训 对 26 个大写英文字母进行循环加密,输入一个大写英文字母(明文)和一个整数秘钥,输出用秘钥对该大写英文字母加密后的结果(密文)。
  16. 【CF833D】Red-Black Cobweb(点分治)
  17. html实现边下边播mp4,WebTorrent:一款可边下边播磁力链接的播放器
  18. ArcGIS水文分析提取河网、流域、湖泊
  19. CISSP AIO7 学习笔记 - 第三章 安全工程 3.4-3.10小节
  20. 一个C语言面试的经典例题

热门文章

  1. 动态SLAM:关于语义分割时间效率的讨论
  2. PatchmatchNet:一种高效multi-view stereo框架 (CVPR2021 Oral)
  3. 用于高亮反光零件缺陷的自动视觉检测系统
  4. SpirngMVC jsp页面空指针
  5. 爬虫准备工作1-Java写入字符串到txt文档
  6. Ubuntu下Astro Pro配置openni踩坑小记
  7. java交通工具的类继承代码_Java作业-交通工具继承
  8. 简单使用DESeq2/EdgeR做差异分析
  9. 高级转录组分析和R数据可视化专题研讨会(2019.12)
  10. ggplot2笔记4 语法基础