pymysql是一个Python的第三方包,需要手动安装后才能使用
1.使用pymysql查询数据
'''
pymysql基本使用步骤
使用pymysql查询数据
'''
import pymysql
# 创建数据库连接对象,除了端口外,其他类型都要用字符串类型
connect_db=pymysql.connect(host='localhost',port=3306,user='root',password='root',charset='utf8',database='jing_dong')
# 获取游标对象,操作数据库时都是使用游标对象操作,类似与电脑写文档时的光标,可以指示操作的起始位置
# 一个数据库连接对象可以创建多个(多次)游标对象,一般同一时刻只会建立一个进行操作
# 游标对象在创建时,默认会开启一个隐式的事务环境
cur=connect_db.cursor()
# 操作数据库
# 避免字符串引号和sql语句中的引号冲突,使用三引号
sql_str='''select * from goods'''
# 执行sql语句,会返回操作的数据行数
row_count=cur.execute(sql_str)
print(f'查询到{row_count}条记录')
# 查询数据的语句的返回值都是一个元祖,或者元祖套元祖
# 从游标对象指示的位置开始,获取一条查询结果
result_one=cur.fetchone() # 返回一个元祖
print(result_one)
print('*'*30)
# 让游标回到开头处
cur.rownumber=0
# 从游标对象指示的位置开始,获取指定条数的记录
result_many=cur.fetchmany(7) # 返回一个元祖类型的可迭代对象,一条数据的话是这样的((),)
for result in result_many:
print(result)
print('*'*30)
# 让游标回到开头处
cur.rownumber=0
# 获取所有数据
result_all=cur.fetchall() # 返回一个元祖类型的可迭代对象,一条数据的话是这样的((),)
for result in result_all:
print(result)
# 关闭游标对象
cur.close()
# 关闭数据库对象
connect_db.close()
2.使用pymysql插入数据
'''
插入数据
'''
import pymysql
# Connect = connect = Connection = connections.Connection
connect_db=pymysql.Connect(host='localhost',port=3306,database='jing_dong',user='root',password='root',charset='utf8')
cur=connect_db.cursor()
sql_str='''insert into goods(name,cate_id,brand_id) values('MacBookPro 15',1,5)'''
t=cur.execute(sql_str)
print(t)
'''
当对数据库做增删改时,默认会在事务环境中进行操作,操作完成后要手动提交操作,否则程序默认操作为回滚,那么刚才的操作就不会生效
但是增加数据时,即使回滚了,为主键的字段的auto_increment值也会加1
'''
# 事务的提交操作由数据库连接对象来完成
# 事务的提交操作必须在执行sql语句之后进行
connect_db.commit()
cur.close()
connect_db.close()
3.使用pymysql修改数据
'''
使用pymysql更新数据
'''
import pymysql
connect_db=pymysql.Connect(host='localhost',port=3306,user='root',password='root',charset='utf8',database='jing_dong')
cur=connect_db.cursor()
sql_str='''update goods set price=2099 where id=10'''
cur.execute(sql_str)
connect_db.commit()
cur.close()
connect_db.close()
4.使用pymysql删除数据
'''
使用pymysql删除数据
'''
import pymysql
connect_db=pymysql.Connection(host='localhost',port=3306,user='root',password='root',charset='utf8',database='jing_dong')
cur=connect_db.cursor()
sql_str='''delete from goods where name='笔记本电脑17' '''
cur.execute(sql_str)
connect_db.commit()
cur.close()
connect_db.close()