
1、准备数据库demo_temp
create database demo_temp;
2、连接数据库
import pymysql.cursors connect = pymysql.connect( host='127.0.0.1', user='root', password='123', db='demo_temp', charset='utf8', cursorclass=pymysql.cursors.DictCursor )
3、创建表
import pymysql.cursors # 连接数据库 connect = pymysql.connect( host='127.0.0.1', user='root', password='123', db='demo_temp', charset='utf8', cursorclass=pymysql.cursors.DictCursor ) # 创建表users with connect.cursor() as cursor: sql = """ CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT , user CHAR(30), passwd CHAR(20)) """ cursor.execute(sql) connect.close()
4、一个简单的增、删、改、查实例
import pymysql.cursors
# 连接数据库
connect = pymysql.connect(
host='127.0.0.1',
user='root',
password='123',
db='demo_temp',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor
)
with connect.cursor() as cursor: # 创建游标
# 创建表
sql = """
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT ,
user CHAR(30),
passwd CHAR(20))
"""
cursor.execute(sql)
# 向表中插入数据
sql = """
INSERT INTO users (user,passwd) VALUES ('ipipgo','123')
"""
cursor.execute(sql)
connect.commit() # 插入数据后必须更新
# 查询数据
sql = """
select * from users
"""
cursor.execute(sql)
ret = cursor.fetchone() # 提取查询数据
print(ret)
# 修改数据
sql = """
update users set user='葫芦娃' where id=1
"""
cursor.execute(sql)
# 再次查询数据
sql = """
select * from users
"""
cursor.execute(sql)
ret = cursor.fetchone() # 提取查询数据
print(ret)
connect.close() # 关闭数据库连接
打印内容如下
{'id': 1, 'user': 'ipipgo', 'passwd': '123'}
{'id': 1, 'user': '葫芦娃', 'passwd': '123'}
5、简单的事务
import pymysql.cursors
# 连接数据库
connect = pymysql.connect(
host='127.0.0.1',
user='root',
password='123',
db='demo_temp',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor
)
try:
with connect.cursor() as cursor: # 创建游标
# 插入数据
sql = """
INSERT INTO users (user,passwd) VALUES ('11111','123')
"""
cursor.execute(sql)
# 更新数据
sql_1 = """
update users set user='葫芦娃' where id=1
"""
cursor.execute(sql_1)
raise NameError # 更新数据时主动抛出异常
except Exception as e:
connect.rollback() # 事务回滚
connect.commit()
connect.close() # 关闭数据库连接
通过下面的小动画我们可以看出,这里模拟在更新数据时出现问题。而插入数据时没有问题的。然后执行事务回滚,最终数据没有被写入到数据库中。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试



