Python——pymysql操作数据库

目录

数据库准备

查询数据 

增加数据

删除

修改


数据库准备

CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

 首先需要在本项目的控制台中安装pymysql包

pip install pymysql

查询数据 

导入pymysql包 

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

# 打印结果
print(content)


# 关闭游标和连接
cs.close()
conn.close()

执行代码,发现只得到了数据数量。

那么如何获取数据呢,使用cs.fetchone()方法

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

# 获取单个数据
content=cs.fetchone()

# 打印结果
print(content)

 这样只是获取了一行数据,那么如何获取所有的数据,就需要用到cs.fetchall()方法

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)
# 获取所有数据
content=cs.fetchall()
# 打印结果
print(content)

# 关闭游标和连接
cs.close()
conn.close()

python是以元组的形式返回所有的数据 

增加数据

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

sql="insert into t_user value(null,'宋江',23,'河北省');"
cs.execute(sql)

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

content=cs.fetchall()
# 打印结果
print(content)

# conn.commit()

# 关闭游标和连接
cs.close()
conn.close()

可以看到输出的结果中添加了一个id为6的数据 

但是当我们到数据库中查看的话,发现还是5条数据,并没有加入id为6的数据

之所以发生这种情况是因为,python并不会自动提交事务,所以需要手动去提交事务,手动调用conn.commit()方法

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

sql="insert into t_user value(null,'宋江',23,'河北省');"
cs.execute(sql)

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

content=cs.fetchall()
# 打印结果
print(content)

conn.commit()

# 关闭游标和连接
cs.close()
conn.close()

注意:这里之所以新数据为7是因为,id为自增的,之前没有提交事务,但是id号已经被使用了,所以再次新增就会从7开始自增。

删除

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="delete from t_user where id='7';"

# 执行sql
content=cs.execute(sql)

conn.commit()

# 关闭游标和连接
cs.close()
conn.close()

启动程序,发现id为7的数据已经被删除,注意:必须要手动提交事务

修改

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="update t_user set name='张飞' where id='5';"

# 执行sql
content=cs.execute(sql)

conn.commit()

# 关闭游标和连接
cs.close()
conn.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用多种库来操作MySQL数据库,其中包括PyMySQL和mysqlclient。PyMySQL是一个纯Python编写的库,安装非常简单,而mysqlclient是底层使用C编写的库,安装可能会有一些问题。\[3\]你可以根据自己的需求选择其中之一进行安装和使用。 在使用PyMySQL库时,你可以使用%s作为参数占位符来执行SQL操作,这与Python自带的sqlite3模块的占位符问号(?)有所不同。如果需要更详细的文档,你可以参考PyMySQL的官方文档。\[2\] 如果你想了解更多关于Python操作MySQL的知识,可以参考一些专门的章节或教程,这些资源会更详细地介绍如何使用Python来进行MySQL数据库操作。\[1\]希望这些信息对你有所帮助! #### 引用[.reference_title] - *1* [Python操作之MySQL](https://blog.csdn.net/sanylove/article/details/124166373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [太全了——用Python操作MySQL的使用教程集锦](https://blog.csdn.net/m0_59485658/article/details/126364328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python操作MySql](https://blog.csdn.net/PAN_BING/article/details/120812542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值