SQLite是什么

子凡 2020-08-13 13:44:47
问答

SQLite是遵守ACID的关系数据库管理系统,包含在一个相对小的C程序库中。与许多其它数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序中。

SQLite 是遵守 ACID关系数据库管理系统,它包含在一个相对小的 C 程序库中。与许多其它数据库管理系统不同,SQLite 不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序中。 SQLite 遵守 ACID,实现了大多数 SQL 标准。它使用动态的、弱类型的 SQL 语法。

SQLite

作为嵌入式数据库,是应用程序,如网页浏览器,在本地/客户端存储数据的常见选择。它可能是最广泛部署的数据库引擎,因为它正在被一些流行的浏览器、操作系统、嵌入式系统所使用。同时,它有许多程序设计语言的语言绑定。

SQLite 是 D. Richard Hipp 创建的公有领域项目。

设计

不像常见的客户端/服务器结构数据库管理系统,SQLite 引擎不是一个应用程序与之通信的独立进程。SQLite 库链接到程序中,并成为它的一个组成部分。这个库也可被动态链接。应用程序经由编程语言内的直接 API 调用来使用 SQlite 的功能,这在减少数据库访问延迟上有积极作用,因为在一个单一进程中的函数调用比跨进程通信更有效率。SQLite 将整个数据库,包括定义、表、索引以及数据本身,作为一个单独的、可跨平台使用的文件存储在主机中。它采用了在写入数据时将整个数据库文件加锁的简单设计。尽管写操作只能串行进行,但 SQLite 的读操作可以多任务同时进行。

SQLite 将 PostgreSQL 作为参考平台。项目将“PostgreSQL 可能做些什么”作为 SQL 标准实现的开发参考。然而与这个目标最重要的偏差在于,除了主键以外,SQLite 不强制进行类型检查。一个值的类型是动态的,不被 schema 所强制限制(虽然如此,但如果可以进行可恢复的类型转换时,schema 会在存储数据时触发一个自动转换)。

特征

程序库实现了多数的 SQL-92 标准,包括事务,以及实现原子性、一致性、隔离性和持久性(即 ACID),但它缺失了某些特性。例如,它仅部分支持触发器。尽管它支持大多数的复杂查询,但它的 ALTER TABLE 功能有所限制,不能修改或删除列,只能通过重新创建表的方式迂回进行。

SQLite 不进行类型检查。你可以把字符串插入到整数列中。某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候;然而其他用户认为这是主要的缺点。

多个进程或线程可以同时访问同一个数据而没有问题。可以同时平行读取同一个数据库。但同一时间只能有一个进程或线程进行数据写入;否则会写入失败并得到一个错误消息(或者会自动重试一段时间;自动重试的逻辑以及重试时间的长短是可以设置的)。

程序设计者还提供了一个叫做 sqlite3 的独立程序用来查询和管理 SQLite 数据库文件。SQLite 的用户可以把这个程序当作如何写 SQLite 应用程序的示例。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • SQLite

    SQLite,轻量级关系型数据库系统

    SQLite是一款轻量级、高效且跨平台的嵌入式数据库管理系统,特别适合于资源有限的应用环境,如移动应用和小型项目。它以简洁的配置、易于集成和支持SQL标准著称,无需独立的服务器即可运行,使得数据存储解决方案既简单又高效。尽管不适合高并发大型应用,但对于大多数小到中型项目来说,是一个极具吸引力的数据库解决方案。
  • 关系型数据库 Relational database

    关系型数据库有哪些

    关系型数据库有很多种,主要有:MySQL、Oracle、SQL Server、PostgreSQL、IBM DB2、Sybase、Microsoft Access、SQLite等等。
  • SQLAlchemy

    SQLAlchemy是什么

    SQLAlchemy是Python编程语言下的一款开源软件。提供SQL工具包及对象关系映射工具,使用MIT许可证发行。 采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。
  • Z-Blog

    Z-Blog 是什么

    Z-Blog是一款高效,快捷的PHP/ASP程序,跨平台支持Windows、Linux等系统,支持MariaDB(MySQL)、SQLite、PostgreSQL等多种数据库及各类Web服务器。
  • Laravel

    Laravel是什么框架

    Laravel 是一个由Taylor Otwell所建立,免费的开源 PHP Web 框架,旨在实现的Web软件的MVC架构,并作为CodeIgniter的替代方案。其源代码托管于GitHub,许可条款为MIT许可证。
  • HeidiSQL

    HeidiSQL,功能强大的数据库管理客户端软件

    HeidiSQL是一款开源且功能强大的数据库管理工具,支持MySQL、MariaDB、SQL Server等多种数据库。它提供了直观的图形用户界面,使得数据库的查询、编辑、管理变得简单高效。无论是新手还是高级用户都能从其丰富的功能中受益,包括数据操作、导入导出、用户权限管理等。