Python学习之数据库操作

本文介绍了Python中进行数据库操作的核心概念,包括Connection和Cursor对象。Connection对象主要用于与数据库建立连接,并提供了commit()、rollback()和close()方法。Cursor对象则用于执行SQL语句,其execute()方法执行SQL,fetch*系列方法用于获取查询结果。通过这两个对象的配合,可以实现对数据库的灵活操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在python中,我们可以通过MySQLdb这一适配器连接并操作数据库。
其中有两个主要的对象ConnectionCursor,分别用来与数据库连接和通信。
下面给出一个与数据库连接的实例:

Connection对象:

conn = MySQLdb.connect(
    host='127.0.0.1',    # 主机名 127.0.0.1 为本机IP
    port=3306,           # 端口
    user='root',         # 用户名
    passwd='***',        # 数据库密码
    db="test",           # 数据库名
    charset='utf8'       # 字符集
)

conn有几个比较重要的方法:

  • commit() 和 rollback()
    理解这两个方法我们首先要知道和数据库的整个通信过程是怎样的:
    建立连接之后,我们提供要执行的sql语句给数据库,然后数据库将运行的结果返回到本地的缓存区,我们一系列的增删改是在本地的缓存中进行。如果修改完成后,我们便通过commit()方法提交当前的事务(即此次操作)使其在数据库中生效,如果要撤销本次操作,则通过rollback()方法取消当前事务。
  • close()用来关闭当前的连接

Cursor对象:

Cursor最重要的方法是execute()fetch*(),其中execute用来执行sql语句,fetch用来查询结果:
fetch*方法其实类似于C语言的的文件操作,有一个指针指向当前的位置,fetchone()得到第一条结果,此时指针便会指向第二条结果,此时fetchall()便得到除了第一条以外的所有结果。

cursor = conn.cursor()       # 创建游标

sql = "select * from user"
cursor.execute(sql)          # 执行sql语句

print cursor.rowcount        # 上一条sql语句处理或影响的行数

rs = cursor.fetchone()       # fetchone为查询一条结果
print rs

rs = cursor.fetchmany(3)     # fetchmany(n) 为查询n条
print rs

rs = cursor.fetchall()       # fetchall 为查询剩余所有
print rs

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

此时灵活运用以上的两个对象,便可以对数据库进行各种操作。

conn = MySQLdb.connect(...)
cursor = conn.cursor()

#插入语句
sql_insert = "insert into user(userid, username) values (10, 'name10')"  
# 更新语句
sql_update = "update user set username='name11' where userid=1"
# 删除语句
sql_delete = "delete from user where useid<3"

try:
    # 一组操作,同时进行,出错时取消所有操作
    cursor.execute(sql_insert)
    print cursor.rowcount
    cursor.execute(sql_update)
    print cursor.rowcount
    cursor.execute(sql_delete)
    print cursor.rowcount

# 若有异常 输出异常 将事物取消
except Exception as e:
    print e
    conn.rallback()

# 提交事物, 使变化在数据库中生效
conn.commit()

cursor.close()
conn.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值