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)

相关推荐

  • 大数据Hadoop技术在银行的七个应用分别是什么

    技术大数据Hadoop技术在银行的七个应用分别是什么大数据Hadoop技术在银行的七个应用分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。诈骗侦

    攻略 2021年11月29日
  • 用python做未来的预测(数据预测怎么用python做)

    技术如何在R中使用开源大规模预测工具Prophet这期内容当中小编将会给大家带来有关如何在R中使用开源大规模预测工具Prophet,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Prop

    攻略 2021年12月20日
  • 为什么oracle 10.2.0.5只会获取child#=1的shared pool latch

    技术为什么oracle 10.2.0.5只会获取child#=1的shared pool latch这篇文章主要介绍了为什么oracle 10.2.0.5只会获取child#=1的shared pool latch,具有

    攻略 2021年11月12日
  • 如何使用mysqlbinlog备份binlog搭建Binlog Server

    技术如何使用mysqlbinlog备份binlog搭建Binlog Server这篇文章给大家分享的是有关如何使用mysqlbinlog备份binlog搭建Binlog Server的内容。小编觉得挺实用的,因此分享给大

    攻略 2021年10月27日
  • 战时管制是指,什么叫战时状态战时措施

    技术战时管制是指,什么叫战时状态战时措施它是指当国家安全受到严重威胁时,将军队处于最高级的备战准备,并向全国发布战争动员令的一种战斗紧张形势战时管制是指。交战国之间的敌对状态。一旦进入战争状态,交战国之间的外交关系、经济

    生活 2021年10月29日
  • 苹果手机怎么换ip地址,苹果手机ip地址怎么修改

    技术苹果手机怎么换ip地址,苹果手机ip地址怎么修改方法如下: 先在苹果手机的主屏上找到“设置”应用,打开它苹果手机怎么换ip地址。
    在设置列表中点击“无线局域网”一栏。接下来找到当前手机已经连接的无线网络,在网络名称的

    生活 2021年10月19日