Python-数据库SQLite 游标

SQLite 是一种嵌入式数据库,它的数据库就是一个文件。Python 内置了SQLite3,所以,可以直接使用。

使用SQLite,介绍几个概念:

1. 表: 是数据库中存放关系数据的集合。表与表之间通过外键关联。

操作关系数据库必须执行以下几个步骤:

1. 连接到数据库,一个数据库连接称为connection;

2.连接到数据库后,需要打开游标,称为cursor,通过cursor 执行SQL语句,然后或得执行结果。

Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供符合Python标准的数据库驱动即可。

由于SQLite的驱动内置在Python标准库中,所以我们可以直接来操作SQLite数据库。

import  sqlite3
conn=sqlite3.connect('test.db')//连接到SQLite3 数据库 数据库文件是test.db
cursor=conn.cursor()//创建一个cursor
cursor.execute('create table  user1 (id varchar(20) primary key, name varchar(20))')//创建表
cursor.execute('insert into user (id,name)values(\'1\',\'micha\')')//插入记录
cursor.rowcount 通过rowcount 获得插入的行数
cursor.close()
conn.commit()
conn.close()

查询记录:

conn=sqlite3.connect('test.db')
cursor=conn.cursor()
cursor.execute('select * from user where id=?',('1',))
values=cursor.fetchall()
print values
cursor.close()
conn.close()
结果:

[(u'1', u'micha')]

使用Python的DB-API时,只要搞清楚ConnectionCursor对象,打开后一定记得关闭,就可以放心地使用。

使用Cursor对象执行insertupdatedelete语句时,执行结果由rowcount返回影响的行数,就可以拿到执行结果。

使用Cursor对象执行select语句时,通过featchall()可以拿到结果集。结果集是一个list,每个元素都是一个tuple,对应一行记录。

如果SQL语句带有参数,那么需要把参数按照位置传递给 execute() 方法,有几个 ? 占位符就必须对应几个参数,例如

cursor.execute('select * from user where name=? and pwd=?', ('abc', 'password'))

总结:

在Python中操作数据库时,要先导入数据库对应的驱动,然后,通过Connection对象和Cursor对象操作数据。

要确保打开的Connection对象和Cursor对象都正确地被关闭,否则,资源就会泄露。


如何:确保出错的情况下关闭掉关闭掉connection 对象和cursor 对象。

import  sqlite3
conn=sqlite3.connect('test.db')
cursor=conn.cursor()
sql1='create table  user1 (id varchar(20) primary key, name varchar(20))'
cursor.execute('insert into user (id,name)values(\'1\',\'micha\')')
cursor.rowcount
try:
    conn.execute(sql1)
    resut=conn.fetchall()
    print ('result')
    conn.close()
    conn.commit()
except Exception as e:
    raise e
finally:
    conn.close()









  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值