Python-数据库SQLite 游标
2017-11-23 09:02
281 查看
SQLite 是一种嵌入式数据库,它的数据库就是一个文件。Python 内置了SQLite3,所以,可以直接使用。
使用SQLite,介绍几个概念:
1. 表: 是数据库中存放关系数据的集合。表与表之间通过外键关联。
操作关系数据库必须执行以下几个步骤:
1. 连接到数据库,一个数据库连接称为connection;
2.连接到数据库后,需要打开游标,称为cursor,通过cursor 执行SQL语句,然后或得执行结果。
Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供符合Python标准的数据库驱动即可。
由于SQLite的驱动内置在Python标准库中,所以我们可以直接来操作SQLite数据库。
查询记录:
结果:
[(u'1', u'micha')]
使用Python的DB-API时,只要搞清楚
使用
使用
如果SQL语句带有参数,那么需要把参数按照位置传递给
总结:
在Python中操作数据库时,要先导入数据库对应的驱动,然后,通过
要确保打开的
如何:确保出错的情况下关闭掉关闭掉connection 对象和cursor 对象。
使用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时,只要搞清楚
Connection和
Cursor对象,打开后一定记得关闭,就可以放心地使用。
使用
Cursor对象执行
insert,
update,
delete语句时,执行结果由
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()
相关文章推荐
- arcgis python 创建 SQLite 数据库
- python之数据库操作(sqlite)
- python 分析 nginx 日志 ip 并存入sqlite 数据库
- python连接sqlite(mysql)数据库以及sqlite数据库基础操作
- Python基础-数据库-使用SQLite
- python 访问 sqlite 数据库
- python使用sqlite3时游标使用方法
- [译] Python 和 Pandas 在 SQLite 数据库中的运用
- python数据库编程(2) 游标对象cursor
- 临时数据库之python用sqlite3模块操作sqlite 推荐
- python数据库操作(1)--Mysql/Sqlite--DB-API
- Python标准库14 数据库 (sqlite3)
- python数据库操作-MySQL,SQLite
- Python Sqlite3数据库相关操作
- Python压缩Sqlite3数据库
- Python操作sqlite3数据库教程
- Python 3.x之数据库框架Sqlalchemy操作SQlite(续)
- python sqlite3 查看数据库中所有表
- python 学习笔记6(数据库 sqlite)
- python数据库编程_sqlite