Python怎样操作sqlite数据库,增删改怎样做
Admin 2022-11-12 群英技术资讯 1292 次浏览
很多朋友都对“Python怎样操作sqlite数据库,增删改怎样做”的内容比较感兴趣,对此小编整理了相关的知识分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获,那么感兴趣的朋友就继续往下看吧!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 就是一个数据库连接对象从上面的程序里我们可以看到
1.它可以创建一个游标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数据库来储存查询我们想要的数据。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在YOLOV5算法之中,针对不同的数据集,一般会预先设置固定的Anchor,下面这篇文章主要给大家介绍了关于yolov5中anchors设置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
最近想用pytorch,因此装了pytorch,但是碰到了问题,下面这篇文章主要给大家介绍了关于安装pytorch报错torch.cuda.is_available()=false问题的解决过程,需要的朋友可以参考下
在python中,我们经常会使用到字符串,它可以来表示文件的描述、硬件的标识等。字符串的使用可以方便我们编程的操作。我们在使用字符串的时候,也经常遇到分割这个词。你知道如何字符串分割字符串吗?今天小编就带大家认识一下python中分割字符串的explode() 函数。
Python语言作为一种比较“新”的编程语言,能在众多编程语言中脱颖而出,且与C语言、C++、Java等“元老级”编程语言并驾齐驱,无疑说明其具有诸多高级语言的优点,亦独具一格,拥有自己的特点。下面我们将简单说明Python语言的优点。为什么说Python对编程小白更友好呢?
1.两个连续的print()函数为什么在输出时内容会分行显示?解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用‘,’代替空格,且默认末尾加上换行符,end函数用来定义一行输出的末尾coffee_cup='coffee' print("Ilovemy",coffee_cup,"!",end="end_flag") """
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008