本文字数:3808 字

阅读本文大概需要:10 分钟

写在之前

SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务、零配置。我们在之前讲过的两个数据库,不管是 MySQL 还是 MongoDB,都需要我们安装。安装之后,然后运行起来,其实这就相当于已经有一个相应的服务在跑着。

SQLite 与前面所说的两个数据库不同。首先Python 已经将相应的驱动模块作为了标准库的一部分,只要是你安装了 Python,就可以使用;再者它可以类似于操作文件那样来操作 SQLite 数据库文件。还有一点,SQLite 源代码不受版权限制。

建立连接

SQLite 也是一个关系型数据库,所以 SQL 可以直接在里面使用。由于 SQLite 的驱动已经在 Python 里面了,所以只要引用就可以直接使用,由于我们之前已经讲过 MySQL 了,所以对于本次内容理解起来就容易多了。

>>> import sqlite3>>> conn = sqlite3.connect('lite.db')

由上面的代码我们得到了连接对象,是不是觉得比 MySQL 连接要简单很多呢?在 sqlite3.connect('lite.db') 中,如果已经有了那个数据库,就直接连接它,如果没有的话,就会自动建一个。需要注意的是,这里的路径是可以随意指定的。

下面的代码显示的是连接对象的属性和方法:

>>> dir(conn)['DataError', 'DatabaseError', 'Error', 'IntegrityError', 'InterfaceError', 'InternalError', 'NotSupportedError', 'OperationalError', 'ProgrammingError', 'Warning', '__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'commit', 'create_aggregate', 'create_collation', 'create_function', 'cursor', 'execute', 'executemany', 'executescript', 'in_transaction', 'interrupt', 'isolation_level', 'iterdump', 'rollback', 'row_factory', 'set_authorizer', 'set_progress_handler', 'set_trace_callback', 'text_factory', 'total_changes']

建立游标

这一步其实跟 MySQL 也很类似,连接了数据库之后,要建立游标对象:

>>> cur = conn.cursor()

接下来就是对数据库内容的操作,都是用游标对象方法来实现:

>>> dir(cur)['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'arraysize', 'close', 'connection', 'description', 'execute', 'executemany', 'executescript', 'fetchall', 'fetchmany', 'fetchone', 'lastrowid', 'row_factory', 'rowcount', 'setinputsizes', 'setoutputsize']

我们在里面看到了一系列我们熟悉的名称:close()、execute()、fetchall() 等。

1.创建数据库表

面对 SQLite 数据库,我们之前熟悉的 SQL 指令都可以用:

>>> create_table = "create table books (title,author,language)">>> cur.execute(create_table)

这样就在数据库 lite.db 中建立了一个表 books。对这个表可以增加数据:

>>> cur.execute('insert into books values("python basic","rocky","python")')

为了保证数据能够保存,还要进行如下操作:

>>> conn.commit()>>> cur.close()>>> conn.close()

以上,在刚才建立的数据库中已经有了一个表 books,表中已经有了一条记录。

2.查询

保存以后我们来查询一下:

>>> conn = sqlite3.connect('lite.db')>>> cur = conn.cursor()>>> cur.execute('select * from books')>>> cur.fetchall()[('python basic', 'rocky', 'python')]

3.批量插入

我们来给 books 表中多增加一些内容,以便于我们进行其它的操作:

>>> books = [("first book","first","c"),("second book","second","c++"),("third book","third","java")]

这次我们来一个批量插入:

>>> cur.executemany('insert into books values (?,?,?)',books)>>> conn.commit()

接下来我们用循环语句来打印一下查询结果:

>>> rows = cur.execute('select * from books')>>> for row in rows:... print(row)... ('python basic', 'rocky', 'python')('first book', 'first', 'c')('second book', 'second', 'c++')('third book', 'third', 'java')

4.更新

正如我们前面所说的,在 cur.execute() 中,可以写 SQL 语句来操作数据库:

>>> cur.execute("update books set title='physics' where author='first'")>>> conn.commit()

接下来我们按照条件查询来看一看:

>>> cur.execute("select * from books where author='first'")>>> cur.fetchall()[('physics', 'first', 'c')]

5.删除

删除也是操作数据库必须的动作:

>>> cur.execute("select * from books")>>> cur.fetchall()[('python basic', 'rocky', 'python'), ('physics', 'first', 'c'), ('third book', 'third', 'java')]

最后不要忘记在完成对数据库的操作以后,一定记得给人家「关上门」:

>>> cur.close()>>> conn.close()

写在之后

基本的知识差不多就是这些,当然肯定不局限于此。在实际的编程中我们肯定会遇到很多的问题,大家记得要多多去查阅官方文档,学会解决问题。

至此,Python 操作数据这一部分就结束了,其实不光是这一个章节的结束,我计划里面的整个「零基础入门学习 Python」这个系列也到此结束了,后续随着我碰到的知识的增加,还会再给大家更新关于 Python 方面的东西,让我们一起加油。

如果你觉得本篇文章对你有所帮助的话,欢迎点赞 + 关注,期待和你的交流。

The end。

python数据库sqlite3_Python 操作 SQLite 数据库相关推荐

  1. python操作sqlite数据库_Python 操作SQLite数据库的示例

    SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.在很多嵌入式产品中使用了它,它占用资源非常的低,python 中默认继承了操作此款数据库的引擎 sq ...

  2. python的sqlite数据库_Python操作SQLite数据库

    ### 连接数据库 从2.5版本开始,Python的标准库中就有了一个专门用于SQLite的sqlite3模块.连接SQLite数据库方式如下: ~~~ import sqlite3 as dbapi ...

  3. swift 连接mysql数据库_Swift - 操作SQLite数据库(引用SQLite3库)

    重要事项(2015-11-23日):SQLiteBD原作者又继续更新了,现在已经完美支持Swift2.0.所以大家可以直接使用,本文使用样例也已同步更新. 重要事项(2016-10-31日):SQLi ...

  4. python读数据库的通信协议是,Python操作SQLite数据库过程解析

    SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统. 不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协 ...

  5. python数据库操作sqlite_Python3操作SQLite数据库

    Python3操作SQLite数据库 SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目 ...

  6. python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python操作sqlite数据库 sqlite数据库以.db格式的文件形式存在,所以不需要安装驱动和应用系统,在标准库中也集成了sqlite ...

  7. python对sqlite增删改查_Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】...

    本文实例讲述了python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的 ...

  8. python操作sqlite数据库

    SQLite数据库是一款轻量级的数据库,无服务器.零配置.事务性的SQL数据库引擎.SQLite是世界上最广泛部署的SQL数据库引擎,而且SQLite的源代码不受版权限制,是小型项目和简单web应用的 ...

  9. Python自动化操作sqlite数据库

    你好,我是悦创. 1. 什么是数据库 数据库是"按照数据结构来组织.存储和管理数据的仓库",是一个长期存储在计算机内的.有组织的.有共享的.统一管理的数据集合. 数据库是以一定方式 ...

最新文章

  1. 腾讯员工人均年薪84.7万,马化腾:员工心理健康最重要
  2. Java系列笔记(1) - Java 类加载与初始化
  3. python基本随机生成函数_Python学习笔记(三):随机生成函数方法
  4. 16 代码分割之错误边界与Suspense和命名导出
  5. 没有暑假的Ada 要好好努力咯 C#继续
  6. 边缘计算框架_黑科技 | 英特尔发布边缘计算加速框架最新版本 | OpenVINO 2019R02...
  7. Linux使用tcpdump抓获取WIFI包
  8. 为什么现在电脑基本没有病毒了?
  9. 廖雪峰Java2面向对象编程-5包和classpath-4classpath和jar
  10. 中文分词的python实现----HMM、FMM
  11. 中国企业软件为什么如此的难
  12. 西电计算机学院嵌入式所,祝贺计算机科学与技术学院张亮老师团队论文被顶级期刊TNNLS录取...
  13. 买土豆的故事(转中外管理)
  14. Face Swapping: Automatically Replacing Faces in Photographs论文阅读
  15. 1024程序员节是怎么来的?为什么设置程序员节?
  16. WPF---RenderTransform图形旋转,缩放
  17. 类的成员变量 请定义一个交通工具(Vehicle)的类其中有: 属性速度(speed)体积(size)等等 方法移动(move())设置速度(setSpeed(int speed))加速speed
  18. 40st-m00330 型伺服电机STM32单片机PWM脉冲控制
  19. 什么是站群以及站群的排名原理和作用解答
  20. [转载]R软件包vegan教程 5.1 函数adonis的使用

热门文章

  1. mysql数据库同步xtrab_热备份的实现方式
  2. .net mysql 多线程_.Net多线程问题总结
  3. python牛客网编程题_一波优秀的自学编程语言网站
  4. 3_python基础—运算符 1
  5. java sql inj_Java防止SQL注入的几个途径
  6. python归一化改变图像大小_基于Python+PIL-Speed问题的图像强度归一化
  7. Python3+RobotFramework+pycharm
  8. onvif协议_大华的录像机添加海康摄像头,使用了onvif协议,为啥也添加不进去?...
  9. 模数转换实验中断方式c语言,DSP实验报告--模拟信号的AD+FFT变换
  10. 建设工程项目全寿命周期管理是指_(必过)2020年二建机电《施工管理》考前必背精华知识点整理一...