返回顶部
首页 > 资讯 > 后端开发 > Python >python之sqlite3使用详解
  • 924
分享到

python之sqlite3使用详解

详解python 2023-01-31 03:01:40 924人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

python sqlITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有

python sqlITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距。但是性能表现上,SQLITE并不逊色。麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,比如说 transaction 、 trigger 和复杂的查询等。

Python的数据库模块有统一的接口标准,所以数据库操作都有统一的模式,基本上都是下面几步(假设数据库模块名为db):

  1. 用db.connect创建数据库连接,假设连接对象为conn
  2. 如果该数据库操作不需要返回结果,就直接用conn.execute查询,根据数据库事务隔离级别的不同,可能修改数据库需要conn.commit
  3. 如果需要返回查询结果则用conn.cursor创建游标对象cur, 通过cur.execute查询数据库,用cur.fetchall/cur.fetchone/cur.fetchmany返回查询结果。根据数据库事 务隔离级别的不同,可能修改数据库需要conn.commit
  4. 关闭cur, conn

下面让我们一步步走进Python中的SQLite吧。

一,Python SQLITE数据库导入模块:

import sqlite3

二,创建数据库/打开数据库:

cx = sqlite3.connect("E:/test.db")

其实我们不需要显式的创建一个sqlite数据库,在调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开。这一点应用很好理解。

三,数据库连接对象:

打开数据库时返回的对象cx就是一个数据库连接对象,它可以有以下操作:

commit()–事务提交
rollback()–事务回滚
close()–关闭一个数据库连接
cursor()–创建一个游标

四,Python SQLITE数据库游标的使用:

游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联。因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功, 该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。
我们知道关系数据库管理系统实质是面向集合的,在Sqlite中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。

下面着重阐述cursor游标的使用。其实,所有sql语句的执行都要在游标对象下进行。

首先,定义一个游标:

cu = cx.cursor()
这样定义了一个游标。游标对象有以下的操作:

execute()–执行sql语句
executemany–执行多条sql语句
close()–关闭游标
fetchone()–从结果中取一条记录,并将游标指向下一条记录
fetchmany()–从结果中取多条记录
scroll()–游标滚动

下面就使用Python SQLITE数据库中游标对我们上面建立的数据库作一些操作吧:

1,建表:
cu.execute('create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE)') 上面语句创建了一个叫catalog的表,它有一个主键id,一个pid,和一个name,name是不可以重复的。

2,插入数据:
cu.execute("insert into catalog values(0, 0, 'name1')")  cu.execute("insert into catalog values(1, 0, 'hello')") 简单的插入两行数据,不过需要提醒的是,只有提交了之后,才能生效.我们使用数据库连接对象cx来进行提交commit和回滚rollback操作.
cx.commit()

3,查询:
cu.execute("select * from catalog") 要提取查询到的数据,使用游标的fetch***函数,如:
print cu.fetchall() 返回结果如下:
[(0, 0, u'name1'), (1, 0, u'hello')] 如果我们使用cu.fetchone(),则首先返回列表中的第一项,再次使用,则返回第二项,依次下去.

4,修改:
cu.execute("update catalog set name='name2' where id = 0") 

cx.commit() 注意,修改数据以后提交

5,删除:
cu.execute("delete from catalog where id = 1")  cx.commit() 以上简单的操作反应的Python SQLITE数据库操作的基本要点,这里点到为止.然后,SQLite的强大,并不仅限于此,其对SQL高级特性的支持及其小巧灵活的特点,使得SQLite在众多领域受到开发者的青睐.

举例:

Exemplary exemplar 1

import sqlite3

con = sqlite3.connect('d:/mydatabase.db3')
cur = con.cursor()
cur.execute('CREATE TABLE foo (o_id INTEGER PRIMARY KEY, fruit VARCHAR(20), veges VARCHAR(30))')
con.commit()
cur.execute('INSERT INTO foo (o_id, fruit, veges) VALUES(NULL, "apple", "broccoli")')
con.commit()
print cur.lastrowid

cur.execute('SELECT * FROM foo')
print cur.fetchall()

  Exemplary exemplar 2
import sqlite3

conn = sqlite3.connect("D:/aaa.db")
conn.isolation_level = None #这个就是事务隔离级别,默认是需要自己commit才能修改数据库,置为None则自动每次修改都提交,否则为""
# 下面就是创建一个表
conn.execute("create table if not exists t1(id integer primary key autoincrement, name varchar(128), info varchar(128))")
# 插入数据
conn.execute("insert into t1(name,info) values ('zhaowei', 'only a test')")
# 如果隔离级别不是自动提交就需要手动执行commit
conn.commit()
# 获取到游标对象
cur = conn.cursor()
# 用游标来查询就可以获取到结果
cur.execute("select * from t1")
# 获取所有结果
res = cur.fetchall()
print 'row:', cur.rowcount
# cur.description是对这个表结构的描述
print 'desc', cur.description
# 用fetchall返回的结果是一个二维的列表
for line in res:
    for f in line:
        print f,
    print
print '-'*60

cur.execute("select * from t1")
# 这次查询后只取一个结果,就是一维列表
res = cur.fetchone()
print 'row:', cur.rowcount
for f in res:
    print f,
print
# 再取一行
res = cur.fetchone()
print 'row:', cur.rowcount
for f in res:
    print f,
print
print '-'*60


cur.close()
conn.close()

原文:Http://anony3721.blog.163.com/blog/static/5119742010716104442536/

--结束END--

本文标题: python之sqlite3使用详解

本文链接: https://lsjlt.com/news/187542.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python之sqlite3使用详解
    Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有...
    99+
    2023-01-31
    详解 python
  • python 使用sqlite3
    Sqlite是一个轻量级的数据库,类似于Access.一、 安装Python 2.5开始提供了对sqlite的支持,带有sqlite3库.没有sqli...
    99+
    2023-01-31
    python
  • 详解Python 数据库 (sqlite3)应用
    Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具。SQLite还在其它领域有广泛的应用,比...
    99+
    2022-06-04
    详解 数据库 Python
  • python sqlite3 的使用,性
    sqlite3 的使用,性能及限制python 中使用sqlite3首先是基本的使用:# coding=utf8 __author__ = 'Administrator' # 导入模块,在 python 中是已经内置了这个模块,所以就不...
    99+
    2023-01-31
    python
  • Sqlite3详细解读
    Sqlite3详细解读"代码下载:SQLite3_2013_0402详细版.zip" http://vdisk.weibo.com/s/Gb9Qi***数据库***严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的...
    99+
    2023-01-31
    详细
  • Python中Sqlite3如何使用
    今天就跟大家聊聊有关Python中Sqlite3如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 使用大量操作如果你需要在数据库中一次性插入很多行,那么你真不应该使用 ex...
    99+
    2023-06-17
  • Python之Pandas使用详解
    Pandas 在数据分析当中,我们通常使用 Pandas 来做数据清理的工作。在真实的工作生活中,我们拿到的数据往往都是不整洁的,空值、重复值、无效值等等信息都会干扰我们的分析,此时我们就需要按部就班的完成数据的清理。数据清理是数据分析中非...
    99+
    2023-09-05
    pandas python 开发语言
  • python之pil的使用详解
    一:PIL功能介绍与安装 PIL,全称Python Image Library,主要作用是图像处理,可用于图片剪切、粘贴、缩放、镜像、水印、颜色块、滤镜、图像格式转换、色场空间转换、...
    99+
    2024-04-02
  • Python数据库sqlite3图文实例详解
    目录前言SQLite3数据库1.需要的模块(只有一个)2.模块的使用2.1创建与数据库的连接2.2创建游标2.3创建 table2.4插入数据2.5查找数据快乐的coding时间!最后前言 提到数据库,大家第一时间想到的...
    99+
    2024-04-02
  • Python之OptionParser模块使用详解
    目录介绍基本用法参数选项OptionParser()parser.add_option()生成帮助错误提示代码示例总结介绍 OptionParser是一个更方便、更灵活、更强大的用于...
    99+
    2024-04-02
  • Python标准库之数据库 sqlite3
    目录1、创建数据库 2、插入数据3、查询4、更新与删除Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配P...
    99+
    2024-04-02
  • 怎么使用SQLite3
    这篇文章主要讲解了“怎么使用SQLite3”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用SQLite3”吧!开始使用这个功能强大且通用的数据库吧。应...
    99+
    2024-04-02
  • sqlite3使用总结
           OS X自从10.4后把SQLite这套相当出名的数据库软件,放进了作业系统工具集里。OS X包装的是第三版的SQLite,又称SQLite3。这套软件有几个特色:软件属于公共财(public domain),SQLite可说...
    99+
    2023-01-31
  • Android使用SQLITE3 WAL
    sqlite是支持write ahead logging(WAL)模式的,开启WAL模式可以提高写入数据库的速度,读和写之间不会阻塞,但是写与写之间依然是阻塞的,但是如果使用默认的TRUNCATE模式,当写入数据时会阻塞android中其他...
    99+
    2023-01-31
    Android WAL
  • python中怎么使用sqlite3数据库
    python中怎么使用sqlite3数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python SQLITE数据库是一款非常小巧的嵌入式...
    99+
    2024-04-02
  • 详解Python之find函数的使用
    目录          一、find函数的官方定义          二、find函数的详细函数使用解释 一、find函数的官方定义 首先,Python的find函数多用在字符串的处理上,也是Python计算机二级的小考点。 定义:P...
    99+
    2023-10-12
    python
  • Python之Sqlite3数据库基本操作
    在一些小的应用中,难免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,本文主要以一个简单的小例子,简述Python在Sqlite数据库方面的应用,仅供学习分享使用,如有不足之处,还请指正。 涉及知识点 sqlite3...
    99+
    2017-01-09
    Python之Sqlite3数据库基本操作 数据库入门 数据库基础教程 数据库 mysql
  • Python学习之元组的使用详解
    目录元组的创建元组的删除元组部分元素的输出元组的嵌套元组元素的个数计算:len()元组中的元素最大最小值的求解:max(),min()元组中某元素出现的次数:count函数元组中某元...
    99+
    2024-04-02
  • python爬虫之requests库的使用详解
    目录python爬虫—requests库的用法基本的get请求带参数的GET请求:解析json使用代理获取cookie会话维持证书验证设置超时异常捕获异常处理 总结 python爬虫...
    99+
    2024-04-02
  • python之np.sum()用法详解
        python库numpy提供的求和方法np.sum(),可以对数组和矩阵进行求和。sum方法可以接收多个参数,主要是数组a,坐标轴axis,数据类型dtype,初始值initial。其中,axis对于我们来说比较容易迷糊,这个值对求...
    99+
    2023-09-16
    python numpy sum axis dtype
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作