`
web3d
  • 浏览: 86196 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

SQLite不支持的SQL特性

 
阅读更多
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="center"><span>SQLite 不支持的<span lang="EN-US"> SQL </span>
特性<span lang="EN-US"></span>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style=""> </span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style=""> 相对于试图列出<span lang="EN-US"> SQLite </span>
支持的所有<span lang="EN-US"> SQL92 </span>
特性,只列出不支持的部分要简单得多。下面显示的就是<span lang="EN-US"> SQLite </span>
所不支持的<span lang="EN-US"> SQL92 </span>
特性。<span lang="EN-US"></span>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style=""> 这个列表的顺序关系到何时一个特性可能被加入到<span lang="EN-US">SQLite</span>
。接近列表顶部的特性更可能在不远的将来加入。接近列表底部的特性尚且没有直接的计划。 <span lang="EN-US"></span>
</span>
</p>
<table class="MsoNormalTable" style="" border="0" cellpadding="0"><tbody>
<tr style="">
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span><strong><span style="">外键约束(<span lang="EN-US">FOREIGN KEY constraints</span>
)</span>
</strong>
</span>
</p>
</td>
<td style="border: medium none #ece9d8; padding: 7.5pt; width: 7.5pt; background-color: transparent;" width="10">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US"></span>
</p>
</td>
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="">外键约束会被解析但不会被执行。 <span lang="EN-US"></span>
</span>
</p>
</td>
</tr>
<tr style="">
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="">完整的触发器支持(<span lang="EN-US">Complete trigger support</span>
)</span>
</strong>
<span style="" lang="EN-US"></span>
</p>
</td>
<td style="border: medium none #ece9d8; padding: 7.5pt; width: 7.5pt; background-color: transparent;" width="10">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US"></span>
</p>
</td>
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="">现在有一些触发器的支持,但是还不完整。 缺少的特性包括<span lang="EN-US"> FOR EACH STATEMENT </span>
触发器(现在所有的触发器都必须是<span lang="EN-US"> FOR EACH ROW </span>
), 在表上的<span lang="EN-US"> INSTEAD OF </span>
触发器(现在<span lang="EN-US"> INSTEAD OF </span>
触发器只允许在视图上), 以及递归触发器<span lang="EN-US">——</span>
触发自身的触发器。 <span lang="EN-US"></span>
</span>
</p>
</td>
</tr>
<tr style="">
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="">完整的<span lang="EN-US"> ALTER TABLE </span>
支持(<span lang="EN-US">Complete ALTER TABLE support</span>
)</span>
</strong>
<span style="" lang="EN-US"></span>
</p>
</td>
<td style="border: medium none #ece9d8; padding: 7.5pt; width: 7.5pt; background-color: transparent;" width="10">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US"></span>
</p>
</td>
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="">只支持<span lang="EN-US"> ALTER TABLE </span>
命令的<span lang="EN-US"> RENAME TABLE </span>
和<span lang="EN-US"> ADD COLUMN</span>
。 其他类型的<span lang="EN-US"> ALTER TABLE </span>
操作如<span lang="EN-US"> DROP COLUMN</span>
,<span lang="EN-US">ALTER COLUMN</span>
,<span lang="EN-US">ADD CONSTRAINT </span>
等等均被忽略。 <span lang="EN-US"></span>
</span>
</p>
</td>
</tr>
<tr style="">
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="">嵌套事务(<span lang="EN-US">Nested transactions</span>
)</span>
</strong>
<span style="" lang="EN-US"></span>
</p>
</td>
<td style="border: medium none #ece9d8; padding: 7.5pt; width: 7.5pt; background-color: transparent;" width="10">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US"></span>
</p>
</td>
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="">现在的实现只允许单一活动事务。 <span lang="EN-US"></span>
</span>
</p>
</td>
</tr>
<tr style="">
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">RIGHT </span>
</strong>
<strong><span style="">和<span lang="EN-US"> FULL OUTER JOIN</span>
(<span lang="EN-US">RIGHT and FULL OUTER JOIN</span>
)</span>
</strong>
<span style="" lang="EN-US"></span>
</p>
</td>
<td style="border: medium none #ece9d8; padding: 7.5pt; width: 7.5pt; background-color: transparent;" width="10">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US"></span>
</p>
</td>
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">LEFT OUTER JOIN </span>
<span style="">已经实现,但还没有<span lang="EN-US"> RIGHT OUTER JOIN </span>
和<span lang="EN-US"> FULL OUTER JOIN</span>
。 <span lang="EN-US"></span>
</span>
</p>
</td>
</tr>
<tr style="">
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="">可写视图(<span lang="EN-US">Writing to VIEWs</span>
)</span>
</strong>
<span style="" lang="EN-US"></span>
</p>
</td>
<td style="border: medium none #ece9d8; padding: 7.5pt; width: 7.5pt; background-color: transparent;" width="10">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US"></span>
</p>
</td>
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">SQLite </span>
<span style="">中的视图是只读的。无法在一个视图上执行<span lang="EN-US"> DELETE</span>
,<span lang="EN-US">INSERT</span>
,<span lang="EN-US">UPDATE</span>
。 不过你可以创建一个试图在视图上<span lang="EN-US"> DELETE</span>
,<span lang="EN-US">INSERT</span>
,<span lang="EN-US">UPDATE </span>
时触发的触发器,然后在触发器中完成你所需要的工作。 <span lang="EN-US"></span>
</span>
</p>
</td>
</tr>
<tr style="">
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">GRANT </span>
</strong>
<strong><span style="">和<span lang="EN-US"> REVOKE</span>
(<span lang="EN-US">GRANT and REVOKE</span>
)</span>
</strong>
<span style="" lang="EN-US"></span>
</p>
</td>
<td style="border: medium none #ece9d8; padding: 7.5pt; width: 7.5pt; background-color: transparent;" width="10">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US"></span>
</p>
</td>
<td style="border-right: #ece9d8; padding-right: 7.5pt; border-top: #ece9d8; padding-left: 7.5pt; padding-bottom: 7.5pt; border-left: #ece9d8; padding-top: 7.5pt; border-bottom: #ece9d8; background-color: transparent;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="">由于<span lang="EN-US"> SQLite </span>
读和写的是一个普通的磁盘文件, 因此唯一可以获取的权限就是操作系统的标准的文件访问权限。 一般在客户机<span lang="EN-US">/</span>
服务器架构的关系型数据库系统上能找到的<span lang="EN-US"> GRANT </span>
和<span lang="EN-US"> REVOKE </span>
命令对于一个嵌入式的数据库引擎来说是没有意义的, 因此也就没有去实现。 <span lang="EN-US"></span>
</span>
</p>
</td>
</tr>
</tbody></table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="">如果你发现<span lang="EN-US"> SQLite </span>
不支持的其它<span lang="EN-US"> SQL92 </span>
特性,请在<span lang="EN-US">Wiki <a href="http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql"><span style="color: #50695f;">http://www.sqlite.org/cvstrac/wiki?p=Unsupported</span>
</a>
</span>
中添加。<span lang="EN-US"></span>
</span>
</p>
分享到:
评论

相关推荐

    sqlite支持的sql语法详解

    SQLite支持SQL(结构化查询语言)语法,这是数据库管理系统中用于数据操作和管理的标准语言。下面将对SQLite支持的SQL语法进行详细解析。 1. 数据库创建与连接: - 使用`CREATE DATABASE`语句创建数据库,但在...

    sqlite 支持的 sql 语法详解

    以下是对SQLite支持的SQL语法的详细讲解,同时也将指出一些SQLite不支持的SQL语句。 一、创建与管理数据库 在SQLite中,可以使用`CREATE DATABASE`命令创建数据库,例如: ```sql CREATE DATABASE my_database; ```...

    SQLite+SQL中文速查手册

    2. **事务支持**:SQLite支持ACID(原子性、一致性、隔离性和持久性)事务,保证了数据的一致性和完整性。 3. **兼容性**:SQLite遵循SQL标准,虽然某些高级特性可能因实现限制而有所不同,但基本的SELECT、INSERT、...

    Sql server 转sqlite

    它支持复杂的SQL查询、事务处理、存储过程等高级特性。然而,SQLite则更适合那些需要在资源有限的环境下运行或对便携性有高要求的应用,例如移动应用或桌面应用。 转换过程涉及多个步骤: 1. 数据导出:首先,你...

    SQLITE3所支持的SQL教程

    ### SQLITE3支持的SQL教程知识点概述 #### 一、ALTER TABLE命令详解 - **功能**:`ALTER TABLE`命令主要用于SQLite数据库中已有表的结构调整,包括表名更改和字段添加等。 - **语法**: - `ALTER TABLE [database-...

    SQLite的SQL语法(中文)

    SQLite支持SQL语言,这是一种用于管理和处理关系数据库的标准查询语言。下面将详细介绍SQLite中的SQL语法。 一、数据类型 SQLite支持五种基本的数据类型:NULL、INTEGER、REAL、TEXT和BLOB。 1. NULL:表示空值,不...

    Sqlite数据库支持库

    SQLite支持SQL标准,提供事务处理、备份和恢复、数据类型灵活性等多种功能。 在"Sqlite数据库支持库"中,我们可以探讨以下几个关键知识点: 1. **SQLite数据库结构**:SQLite数据库由一个或多个磁盘文件组成,每个...

    DB-SQLite_SQL_sqlite

    SQLite的特性包括事务处理、ACID(原子性、一致性、隔离性、持久性)属性、多种数据类型支持(整型、浮点型、字符串、BLOB等),以及强大的SQL标准兼容性。通过DB-Browser for SQLite,用户可以充分利用这些特性,...

    SQLServer转SQLite源码

    6. **性能优化**:由于SQLite和SQL Server的性能特性不同,源码可能考虑到了性能优化,比如批量迁移、错误处理、事务管理等。 7. **自定义选项**:开发者添加的实用选项可能包括选择性迁移某些表或视图、数据过滤、...

    SQLite SQL语法中文手册

    SQL(Structured Query Language)是用于管理和操作数据库的语言,SQLite支持标准的SQL语法,但也有其特有的一些扩展。这篇"SQLite SQL语法中文手册"详细介绍了如何在SQLite中使用SQL进行数据的查询、插入、更新和...

    SQLite SQL语法 CHM

    SQLite SQL语法 CHM SQLite库可以解析大部分标准SQL语言。但它也省去了一些特性 并且加入了一些自己的新特性。这篇文档就是试图描述那些SQLite支持/不支持的SQL语法的。

    SQL Server数据导入SQLite工具及源码

    SQL Server和SQLite都是广泛应用的数据库系统,但它们在使用场景和特性上有所不同。SQL Server是Microsoft公司推出的企业级数据库管理系统,适用于大型企业,支持复杂的事务处理和大数据量的管理;而SQLite则是一款...

    SqlServer 到SQLite数据库的自动转换工具

    这样的工具对于那些需要在移动设备、本地离线应用或其他不支持SQL Server的环境中使用数据的用户非常有用。通过自动转换,它可以显著减少手动操作的工作量,提高效率,并降低错误发生的可能性。在实际使用中,用户...

    “SQLITE数据库支持库”开发指南.pdf

    - SQLite支持事务的ACID属性,这意味着它保证了原子性、一致性、隔离性和持久性。即使在系统崩溃和断电后也能保持事务的完整性。 - 不需要配置或管理,即所谓的零配置。 - 支持大部分的SQL92标准,但也有部分功能...

    sqlserver2sqlite_converter

    SQL Server和SQLite都是广泛应用的数据库系统,但它们在使用场景、性能和特性上有所不同。本项目"sqlserver2sqlite_converter"提供了一个便捷的工具,用于将SQL Server数据库转换为SQLite数据库文件,以适应不同的...

    xorm, 面向 Go,支持 mysql,postgres,tidb,sqlite3,sql,oracle的简单和强大的ORM.zip

    xorm, 面向 Go,支持 mysql,postgres,tidb,sqlite3,sql,oracle的简单和强大的ORM 中文Xorm... 特性结构 &lt;-&gt;-表映射支持可以链接的api事务支持ORM和原始SQL操作支持同步数据库架构支持查询缓存加速数据库反向支持,

    数据库SQLITE特性分析

    SQLite支持一系列SQL命令,包括但不限于:`ATTACH DATABASE`、`BEGIN TRANSACTION`、`COMMIT TRANSACTION`、`CREATE INDEX`、`CREATE TABLE`、`CREATE TRIGGER`、`CREATE VIEW`、`DELETE`、`DETACH DATABASE`、`DROP...

    SQLite Sql语法参考手册

    SQLite支持标准SQL的大部分语法,包括以下内容: 1. 数据库创建与删除:CREATE DATABASE和DROP DATABASE语句用于创建和删除数据库。 2. 表的创建与修改:CREATE TABLE用于创建表,ALTER TABLE则用于修改表结构,如...

    SQLite 1.0.112 版,支持数据库加密的版本,支持64和32位

    SQLite是一款轻量级的、开源的、自包含的SQL数据库引擎,它被广泛应用于各种操作系统和应用程序中。...对于那些需要在.NET环境中处理加密SQLite数据库的开发者来说,System.Data.SQLite库是一个不可或缺的工具。

    Sqlite SQL基本语法汇总

    SQLite支持`BEGIN`, `COMMIT`, `ROLLBACK`进行事务操作,确保数据一致性: ```sql BEGIN TRANSACTION; -- 执行一系列SQL操作 COMMIT; -- 提交事务 ``` 14. **存储过程**: 虽然SQLite没有标准的存储过程概念...

Global site tag (gtag.js) - Google Analytics