文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 操作sqlite数据库的方法

2022-06-02 22:43

关注
目录

前言

sqlite的官网 sqlite.org/index.html SQLite 作为一个SQL数据库引擎,是由C语言实现的,又小又快,具有高可靠性且功能齐全。 作为嵌入式数据库,在移动设备中使用非常广泛且方便。Python3中内嵌了sqlite的驱动,我们直接导入就行。


import sqlite3

简单介绍

首先我们给大家一个能够运行的Python程序,让大家对Python操作sqlite数据库有一个直观的感受。


# 导入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))')


# 继续执行一条SQL语句,插入一条记录:
cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')


# 通过rowcount获得插入的行数:
print(cursor.rowcount)


# 关闭Cursor:
cursor.close()
# 提交事务:
conn.commit()
# 关闭Connection:
conn.close()

我们用Navicat连接这个数据库,可以看到

需要注意的是每次关闭连接之前,一定要commit,否则做的任何操作都不会提交到数据库中

创建或连接数据库

conn = sqlite3.connect('test.db') 首先我们要做的是连接数据库,注意如果我们要访问的数据库不存在,那么会自动创建一个的 conn 就是一个数据库连接对象从上面的程序里我们可以看到

它可以创建一个游标cursor = conn.cursor()
2.它可以提交事务conn.commit()
3.它还可以关闭连接cursor.close()
4.它还可以对事务做回滚cursor.rollback(),不过程序之中没有展示出来

隔离级别可以在conn建立之前通过传入参数来进行修改
conn = sqlite3.connect('test.db', isolation_level=None) 这样,对应的代码就不再需要commit()操作了

游标

游标对象有以下的操作


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

我们一般用到的是execute()更多一些

创建表

下面的代码可以创建表


cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')

可以看到建表语句和MySQL非常类似 创建自增主键的语句


CREATE TABLE "main"."test" (
  "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT
);

在Navicat的创建sqlite自增主键和MySQL也是非常类似

插入

插入这里很简单的


cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')

查询

查询这里需要讲一讲 是要先让游标将sql语句执行掉,再通过上面介绍的


fetchone()--从结果中取一条记录,并将游标指向下一条记录   
fetchmany()--从结果中取多条记录   
fetchall()--从结果中取出所有记录   

来进行查询

查询总数


cursor.execute("select count(*) from user")
print(cursor.fetchone())
# (2,)

查询所有


cursor.execute("select * from user")
print(cursor.fetchall())
# [('1', 'Michael'), ('2', 'Danny')]

查询第一条


cursor.execute("select * from user")
print(cursor.fetchone())
# ('1', 'Michael')

分页查询


cursor.execute("select * from user LIMIT 1, 2")
print(cursor.fetchall())

更新

更新呢也比较简单


cursor.execute("update user set name='test' where id='1'")

这里只要别忘了执行commit就行

删除


cursor.execute("delete from catalog where id = 4")

总结

人生苦短,我用 Python,在强大的Python帮助下,我们只需几行代码就可以操作sqlite数据库来储存查询我们想要的数据。

以上就是python 操作sqlite数据库的方法的详细内容,更多关于python 操作sqlite数据库的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯