【问题标题】:What is difference between SQLite and SQLSQLite 和 SQL 有什么区别
【发布时间】:2012-09-21 22:06:40
【问题描述】:

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

【问题讨论】:

    标签: android sql database sqlite


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      Sqlite 是一个非常轻量级的 SQL 版本,支持 SQL 的许多特性。基本上是为手机、平板电脑等小型设备开发的。

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

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

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

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

      从技术上讲,SQLite 不是开源软件,而是公共领域。没有许可证。 (作者:拉里·拉斯提格)

      【讨论】:

      • Sqlite 也不需要特殊的数据库服务器或任何东西。它只是一个使用 SQL 语法的直接文件系统引擎。
      • 从技术上讲,SQLite 不是开源软件,而是公共领域。没有许可证。
      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        什么是 SQLite?

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

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

        SQLite 有哪些特点?

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

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

        • 不使用任何配置文件。

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

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

        • 对表格使用动态类型。这意味着您可以在任何列中存储任何值,而不管数据类型如何。

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

        SQLite 和酸

        SQLite 保证所有事务都符合 ACID,即使事务因程序崩溃、操作系统转储或计算机电源故障而中断。

        • 原子:事务应该是原子的。这意味着不能将更改分解为较小的更改。提交事务时,要么应用整个事务,要么不应用。

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

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

        • 持久性:如果事务成功提交,无论电源故障或程序崩溃等情况如何,更改都必须在数据库中永久存在。相反,如果程序在事务提交之前崩溃,则更改不应该持续。


        信用Sqlitetutorial.net

        【讨论】:

          【解决方案5】:

          SQLiteSQL 最基本的区别是:

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

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

          【讨论】:

            【解决方案6】:

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

            这个名字本身就暗示它是 SQL RDBMS 的轻量级版本。它用于大多数小型便携式设备,例如 Android 和 iOS 设备。

            【讨论】:

            • SQLite 无法与 SQL Server 竞争,两者的目的不同,因此它们的比较无效。
            【解决方案7】:

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

            【讨论】:

            • SQLite 不是 DBMS
            • 维基百科告知,“SQLite 是一个包含在 C 库中的关系数据库管理系统。与许多其他数据库管理系统相比,SQLite 不是客户端-服务器数据库引擎。相反,它嵌入到结束程序。SQLite 一般遵循 PostgreSQL 语法。"
            猜你喜欢
            • 2014-05-31
            • 1970-01-01
            • 1970-01-01
            • 2021-04-25
            • 2011-07-22
            • 2022-06-11
            • 2012-11-24
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多