知行编程网知行编程网  2022-11-11 07:00 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中SQLite的简单应用的相关知识,包括应用未安装怎么处理简单方法,以及科技让应用更简单这些编程知识,希望对大家有参考作用。

SQLite 是一个嵌入式数据库,它的数据库是一个文件。由于 SQLite 本身是用 C 编写的,而且体积很小,因此它经常被集成到各种应用程序中,甚至在 iOS 和 Android 应用程序中。 Python内置了SQLite3,所以要在Python中使用SQLite,不需要安装任何东西,直接使用即可。

Python中SQLite的简单应用

在使用SQLite前,我们先要搞清楚几个概念:

表是存储在数据库中的关系数据的集合。一个数据库通常包含多个表,例如学生表、班级表、学校表等。表通过外键相互关联。

操作关系型数据库,首先需要连接数据库,数据库连接称为Connection;

连接数据库后,需要打开一个游标,叫做Cursor,通过Cursor执行SQL语句,然后获取执行结果。

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

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

我们在Python交互式命令行实践一下:

# 导入SQLite驱动:
>>> import sqlite3
# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
>>> conn = sqlite3.connect('test.db')
# 创建一个Cursor:
>>> cursor = conn.cursor()
# 执行一条SQL语句,创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
<sqlite3.cursor object="" at="" 0x10f8aa260="">
# 继续执行一条SQL语句,插入一条记录:
>>> cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
<sqlite3.cursor object="" at="" 0x10f8aa260="">
# 通过rowcount获得插入的行数:
>>> cursor.rowcount
1
# 关闭Cursor:
>>> cursor.close()
# 提交事务:
>>> conn.commit()
# 关闭Connection:
>>> conn.close()
 
</sqlite3.cursor></sqlite3.cursor>

我们再试试查询记录:

>>> conn = sqlite3.connect('test.db')
>>> cursor = conn.cursor()
# 执行查询语句:
>>> cursor.execute('select * from user where id=?', '1')
<sqlite3.cursor object="" at="" 0x10f8aa340="">
# 获得查询结果集:
>>> values = cursor.fetchall()
>>> values
[(u'1', u'Michael')]
>>> cursor.close()
>>> conn.close()
 
</sqlite3.cursor>

在使用 Python 的 DB-API 时,只要了解 Connection 和 Cursor 对象,并记得打开后关闭它们,就可以放心使用了。

使用Cursor对象执行insert、update、delete语句时,执行结果返回rowcount影响的行数,即可得到执行结果。

使用 Cursor 对象执行 select 语句时,可以通过 fetchall() 获取结果集。结果集是一个列表,每个元素是一个元组,对应一行记录。

如果 SQL 语句有参数,则需要将参数按位置传递给 execute() 方法。有几个?占位符必须对应几个参数,例如:

cursor.execute('select * from user where id=?', '1')

SQLite 支持常见的标准 SQL 语句以及几种常见的数据类型。具体文档请参考SQLite官网。


小结

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

确保打开的 Connection 对象和 Cursor 对象正确关闭,否则会导致资源泄漏。

我们如何确保 Connection 对象和 Cursor 对象在发生错误时也关闭?请回想一下 try:...except:...finally:... 的用法。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享