Python编程:MySQLdb模块对数据库的基本增删改查操作

简介: Python编程:MySQLdb模块对数据库的基本增删改查操作

安装

Python2

https://pypi.org/project/MySQL-python/

pip install MySQL-python

Python3

https://pypi.org/project/mysqlclient/

pip install mysqlclient

使用方式和PyMySQL 类似,如果有条件还是优先使用 PyMySQL :

可参考:SQL:pymysql模块读写mysql数据


代码示例

# -*- coding: utf-8 -*-


import MySQLdb

con_config = {
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "123456",
"database": "demo",
"autocommit": True # 不提交修改不生效,3中方式任选一种
}

# autocommit = True # 提交1:连接的时候就开启自动提交
# con.autocommit(True) # 提交2:执行SQL语句之前设置自动提交
# con.commit() # 提交3:执行SQL语句之后提交


# 连接数据库,获得游标
con = MySQLdb.connect(**con_config)
cursor = con.cursor()


# 1、插入单条数据
insert_sql = "insert into student(name, age) values(%s, %s)"
cursor.execute(insert_sql, ("Tom", 23))
print(cursor.rowcount)
# 1


# 2、插入多条数据
# 可用于改操作: insert, delete, update
cursor.executemany(insert_sql, [("Jack", 24), ("Jimi", 25)])
print(cursor.rowcount) # 无论提交还是不提交,rowcount都有数据,不要被误导
# 2


# 3、删除数据
delete_sql = "delete from student where id=%s"
cursor.execute(delete_sql, (1,)) # 第二个参数为一个可迭代对象,只有一个参数要传元组
print(cursor.rowcount)
# 1


# 4、修改数据
update_sql = "update student set age=99 where id=%s"
cursor.execute(update_sql, (4,))
print(cursor.rowcount)
# 1


# 5、查询单条 查询不需要提交
select_sql = "select name, age from student limit %s"
cursor.execute(select_sql, (1,))
row = cursor.fetchone()
print(row)
# ('Tom', 99)


# 6、查询多条数据
cursor.execute(select_sql, (2,))
rows = cursor.fetchall()
print(rows)
# (('Tom', 23), ('Tom', 23))


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


            </div>
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
网络协议 Unix Linux
计算机网络 套接字函数 | socket、bind、listen、accept、connect
计算机网络 套接字函数 | socket、bind、listen、accept、connect
313 0
|
数据采集 人工智能 监控
【最佳实践】实时计算Flink在广告行业的实时数仓建设实践
通过每个广告位上不同广告的投放地区、广告ID、设备唯一编码等信息,可以统计点击次数、投放次数等指标,可用于制定更高效的广告投放策略,降低投放成本,提高广告收益。
|
JavaScript
《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——第3章 MRP简介 3.1 MRP运行的简要说明
本节书摘来自华章计算机《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》一书中的第3章,第3.1节,作者 乐立骏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
4759 0
|
机器学习/深度学习 开发框架 人工智能
【“玩物立志”scratch少儿编程】坦克动荡-“穿墙控制”和“子弹反弹”的实现-含完整代码
【“玩物立志”scratch少儿编程】坦克动荡-“穿墙控制”和“子弹反弹”的实现-含完整代码
1213 0
【“玩物立志”scratch少儿编程】坦克动荡-“穿墙控制”和“子弹反弹”的实现-含完整代码
|
监控 前端开发 JavaScript
如何打造渐进式可扩展、高生产力的前端研发平台
分享盒马 ReX Dev 研发平台在设计过程中对一些架构问题的思考。
如何打造渐进式可扩展、高生产力的前端研发平台
|
存储 机器学习/深度学习 人工智能
|
Java Android开发
【错误记录】Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ )
【错误记录】Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ )
1001 0
【错误记录】Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ )
|
缓存 安全 算法
大型网站技术架构核心原理与案例分析(读书笔记)
大型网站技术架构核心原理与案例分析 1.概述 网站衡量的标准:高可用,高性能,易扩展,可伸缩,安全 1.1 大型网站特点 高并发 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 1.
2742 0