sqlite 优缺点(深入理解sqlite)

技术SQLite与SQL差异的常见问题有哪些这篇文章主要介绍了SQLite与SQL差异的常见问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、常

本文主要介绍了关于SQLite和SQL的区别的常见问题,具有一定的参考价值。有兴趣的朋友可以参考一下。希望你看完这篇文章后有很多收获。让边肖带你去了解一下。

一、常见问题汇总

1 TOP

这是一个经常被问到的问题。例如,在SQLSERVER中,可以使用以下语句获取记录集中的前十条记录:

SELECTTOP10 * FROM[index]ORDERBYindexidDESC;但是,该SQL语句不能在SQLite中执行,应该更改为:

SELECT * FROM[index]orderby indexiddescrimint 0,10;限制0,10意味着将从第0条记录中读取10条记录。

2 创建视图(Create View)

SQLite在创建多表视图时有一个BUG。问题如下:

createview watch _ singlesselectdistinctwatch _ item。[watchid],watch_item。[itemid]FrOmWatch _ item;上面的SQL语句在执行后会显示成功,但事实上,除了

select count(*)FROM[watch _ single]where watch _ single . watch id=1;除非可以,否则不能执行任何其他语句。原因是创建视图时指定了字段所在表的名称,SQLite无法正确识别。所以上面的创建语句应该改为:

CREATEVIEWwatch _从watch_item中选择DISTINCT[watchid],[item id];但是下面的问题是,如果是多表视图,表与表之间有重复的字段,该怎么办?

3 COUNT(DISTINCT column)

SQLite将在执行以下语句时报告错误:

select count(DISTINCTwatchid)FROM[watch _ item]where watch _ item . watch id=1;原因是SQLite的所有内置函数都不支持DISTINCT限制,所以如果我们要统计没有重复的记录数会有些麻烦。先建立一个非重复记录表的视图,然后统计视图是可行的。

4 外连接

虽然SQLite官方宣称已经实现了左外连接,但是没有右外连接和完全外连接。但实际测试表明,它似乎无法正常工作。以下三个语句在执行时都会报告错误:

选择标签。[tagid]FROM[tags],[tag_rss]WHEREtags。[tagid]=tag_rss。[tagid](*);选择标签。[tagid]FROM[tags],[tag _ RSS]where leftoutjointag _ RSS。[tagid]=标签。[tagid];选择标签。[tagid]FROM[tags],[tag_rss]WHERELEFTJOINtag_rss。[tagid]=标签。[tagid];另外,测试后用*符号代替*符号是不可行的。

二、收集SQLite与Sql Server的语法差异

1.返回最后插入的标识值

返回最后插入的标识值。sql server使用@@IDENTITY

Sqlite使用标量函数LAST_INSERT_ROWID()

返回通过当前SQLConnection插入数据库的最后一行的行标识符(生成的主键)。该值与SQLConnection.lastInsertRowID属性返回的值相同。

2.top n

sql server中返回的前两行可以是这样的:

从fromaaorderbyidsdescsqlite中选择top2 *使用LIMIT,语句如下:

从aaorderbyidsdesclimit 23.GETDATE ()中选择*

GETDATE()返回sql server中的当前系统日期和时间。

不在sqlite中

4.EXISTS语句

sql server中的判断插入(如果ids=5不存在,则插入)

not exists(select * from aawhere eds=5)begininserttoaa(昵称)select' t' end在sqlite中可以是这样的。

插入一个(昵称)选择' t 'wherenotexists(选择* from aawhere ids=5)5.嵌套事务

Sqlite只允许单个活动事务。

6.RIGHT 和 FULL OUTER JOIN

Sqlite不支持右外连接或全外连接。

7.可更新的视图

sqlite视图是只读的。您不能对视图执行DELETE、INSERT或UPDATE语句,但是sql server可以删除、插入或更新视图。

三、新增内容

1.关于日期时间类型列的默认设置:

“列”的设置包括三个字段:名称、类型和默认值。

Name:日志时间(随机命名);

Type:

日期类型,得到的值为“2011年4月23日”。

DATETIME类型,获得的值的形式为“2011-04-23 11:49336004.000”;

Default:日期时间(‘now’,‘local time’)我用了两个参数,后面不要丢弃本地时间,否则时间会不准确。

感谢您仔细阅读本文。希望边肖分享的文章《关于SQLite和SQL的区别有哪些常见问题》对大家有所帮助。同时也希望大家多多支持,关注行业信息渠道,多多了解!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151382.html

(1)

相关推荐

  • 如何使用Eclipse进行PHP的服务器端调试

    技术如何使用Eclipse进行PHP的服务器端调试这篇文章将为大家详细讲解有关如何使用Eclipse进行PHP的服务器端调试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先,得将您P

    攻略 2021年11月25日
  • 怎么使用css z index属性

    技术怎么使用css z index属性本篇内容主要讲解“怎么使用css z index属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用css z index属性”吧

    攻略 2021年11月12日
  • C++对象模型之RTTI的实现原理是什么

    技术C++对象模型之RTTI的实现原理是什么本篇内容介绍了“C++对象模型之RTTI的实现原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大

    攻略 2021年10月26日
  • 怎样使SQL用户只能看到自己拥有权限的库

    技术怎样使SQL用户只能看到自己拥有权限的库怎样使SQL用户只能看到自己拥有权限的库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。以SQL Server 2

    攻略 2021年12月1日
  • 配置python环境中遇到的一些问题

    技术配置python环境中遇到的一些问题 配置python环境中遇到的一些问题这是个人第一次发博客,想分享一下在配置python中出现的一些问题。
    在cmd或Anaconda命令行中操作的。
    pip使用

    礼包 2021年12月20日
  • 第五篇 Scrum冲刺博客

    技术第五篇 Scrum冲刺博客 第五篇 Scrum冲刺博客Team:Five Empty/五大皆空
    project:基于微信小程序的社团招新软件
    冲刺合集:在这里在这里
    目录每日站立会议
    项目燃尽图

    礼包 2021年11月27日