一、流程:
1、先在本地数据库新建连接,创建一个数据库名叫mysql
2、在mysql数据库中,新建一个表叫student
3、然后根据主机名、用户名、密码、数据库名进行连接
4、操作流程:使用connect()打开数据库连接--使用cursor()获取游标--使用execute()执行sql语句--使用close()关闭数据库连接
注意:增删改操作时,执行完sql语句后,需要提交到数据库执行 使用commit()
二、我创建的数据库:
三、数据库操作
1、查找数据
连接数据库时,用connect("主机名或IP地址", "用户名", "密码", "数据库名", charset='utf8')
import MySQLdb
# 查找数据
def database1():
# 打开数据库连接 connect("主机名或IP地址", "用户名", "密码", "数据库名", charset='utf8')
db = MySQLdb.connect("localhost", "root", "123456", "mysql", charset='utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
cursor.execute("select * from student")
# 使用 fetchall() 接收全部的返回结果行
data = cursor.fetchall()
print(data)
# 关闭数据库连接
db.close()
if __name__ == "__main__":
database1()
2、更新数据
import MySQLdb
# 更新数据
def database2():
db = MySQLdb.connect("localhost", "root", "123456", "mysql", charset='utf8')
cursor = db.cursor()
try:
cursor.execute("update student set age='21' where id='1001'")
db.commit() # 提交到数据库执行
print("更新数据成功")
except:
db.rollback() # 发生错误时回滚
db.close()
if __name__ == "__main__":
database2()
四、执行事务
事务机制可以确保数据一致性。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
- 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
- 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
- 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。
对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。
commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。