SQLite和SQL有什么区别

时间:2012-10-01 02:15:28

标签: android sql database sqlite

我知道SQLite数据库用于移动设备(Android,iPhone),它很轻,只占用Kb空间。 SQLite有任何限制吗?我想知道它们有何不同。

7 个答案:

答案 0 :(得分:59)

每个SQL数据库都使用自己的语言实现略有不同。虽然基本查询几乎是通用的,但MySQL,PostgreSQL,Microsoft SQL Server,Oracle数据库等之间存在明显的细微差别。

SQLite特别值得注意的是,与上面提到的所有其他内容不同,这个数据库软件没有附带查询传递的守护进程。这意味着如果多个进程同时使用数据库,它们将直接通过SQLite库更改数据,并自行调用操作系统的读/写数据。这也意味着锁定机制不能很好地处理争用。

对于大多数人都会想到使用SQLite的应用程序来说,这不是问题 - 小的开销优势和简单的数据检索是值得的。但是,如果您要使用多个进程访问数据库,或者不考虑通过一个线程映射所有请求,则可能会有点麻烦。

答案 1 :(得分:29)

Sqlite是一个非常简单的SQL版本,支持SQL的许多功能。基本上是为手机,平板电脑等小型设备开发的。

SQLite是第三方,开源和进程内数据库引擎。 SQL Server Compact来自Microsoft,是SQL Server的精简版本。它们是两个竞争的数据库引擎。

SQL是查询语言。 Sqlite是可嵌入的关系数据库管理系统。

编辑:(来自以下对我的回答的评论)

Sqlite也不需要特殊的数据库服务器或任何东西。它只是一个使用SQL语法的直接文件系统引擎。 (作者:Adam Plocher)

从技术上讲,SQLite不是开源软件,而是公共领域。没有许可证。 (作者:Larry Lustig)

答案 2 :(得分:11)

SQL是查询语言。 Sqlite是可嵌入的关系数据库管理系统。

与其他数据库(如SQL Server和MySQL)不同,SQLite不支持存储过程。

SQLite是基于文件的,不像其他数据库,如基于服务器的SQL Server和MySQL。

答案 3 :(得分:0)

什么是SQLite?

  • SQLite是一个开放源代码,零配置,自包含,独立的事务关系数据库引擎,旨在嵌入到应用程序中。

  • 可以将
  • Python SQLite定义为使用基于轻量级光盘的ANSI-C数据库开发的 C库;不需要额外的或任何其他单独的服务器进程。

SQLite有哪些特征?

  • SQLite 不需要来运行服务器(RDBMS,例如MySQL,PostgreSQL等,需要单独的服务器进程来运行)。

  • 是自包含的,它需要操作系统或外部库的最少支持。这使得SQLite可以在任何环境中使用,特别是在iPhone,Android手机,游戏机,手持媒体播放器等嵌入式设备中。

  • 不使用任何配置文件。

  • 符合ACID 。这意味着所有查询和更改都是原子的,一致的,隔离的和持久的,即使发生应用程序崩溃,电源故障或操作系统崩溃等意外情况,事务中的所有更改还是完全发生或根本没有发生。

  • 能够创建非常快速地使用的内存数据库。

  • 为表使用动态类型。这意味着您可以在任何列中存储任何值,而与数据类型无关。

  • 允许单个数据库连接同时访问多个数据库文件。

SQLite和ACID

SQLite保证所有事务均符合 ACID ,即使由于程序崩溃,操作系统转储或计算机电源中断而中断了事务。

  • 原子:事务应该是原子的。这意味着更改无法分解为较小的更改。提交事务时,是否应用整个事务。

  • 一致:事务必须确保将数据库从一种有效状态更改为另一种有效状态。当事务开始并执行修改数据的语句时,数据库将变得不一致。但是,当事务被提交或回滚时,重要的是事务必须保持数据库的一致性。

  • 隔离:一个会话执行的待处理事务必须与其他会话隔离。当会话启动事务并执行INSERT或UPDATE语句更改数据时,这些更改仅对当前会话可见,而对其他会话则不可见。另一方面,事务开始后其他会话提交的更改对当前会话不可见。

  • 持久性:如果事务成功提交,则更改必须在数据库中永久存在,而不管诸如电源故障或程序崩溃之类的情况。相反,如果程序在提交事务之前崩溃,则更改不应持久。


信用Sqlitetutorial.net

答案 4 :(得分:0)

SQLiteSQL 之间最基本的区别是:

SQL 是一种被不同 SQL 数据库使用的查询语言。它本身不是数据库。

SQLite 本身就是一个使用 SQL 的数据库管理系统。

答案 5 :(得分:-3)

SQL是一种查询语言的数据库,SQLite是一种使用SQL规范的数据库(RDBMS)。 SQLite可以说是微软SQL Server的竞争对手。

这个名称本身表明它是SQL RDBMS的简易版本。它用于大多数小型便携式设备,如Android和iOS设备。

答案 6 :(得分:-4)

SQLite :数据库管理系统(DBMS) SQL :结构化查询语言是一种计算机语言,用于通过查询从DBMS创建,编辑和获取数据。