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)

相关推荐

  • 服务器哪些因素会影响SEO香港服务器租用

    技术服务器哪些因素会影响SEO香港服务器租用大多数SEO专家认为,在决定为给定搜索查询显示哪些网站时,搜索引擎会考虑多个因素。其中之一是用于托管您的网站的服务器,在这里,我们将以香港服务器为例讨论服务器的选择会对您的搜索

    礼包 2021年10月26日
  • 香港云服务器租用——中小海外站长首选

    技术香港云服务器租用——中小海外站长首选目前在免备案的海外云服务器中,一般中小站长都会选择香港云服务器部署业务,以USA-IDC为例,租用旗下香港云服务器非常有利于一些中小站长搭建网站,主要有以下几个优势1. 可扩展 作

    礼包 2021年11月23日
  • Java多线程概念知识点有哪些

    技术Java多线程概念知识点有哪些这篇文章主要介绍“Java多线程概念知识点有哪些”,在日常操作中,相信很多人在Java多线程概念知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月24日
  • vue 页面渲染完成触发事件

    技术vue 页面渲染完成触发事件 vue 页面渲染完成触发事件vue的渲染时先DOM(结构)后css,js渲染,在我们做ui自动化测试时,需要在页面完全加载完成事触发一个事件给脚本捕获
    在使用Vue框架

    礼包 2021年12月6日
  • 铵根的化合价,邱俊霖化合价style歌词

    技术铵根的化合价,邱俊霖化合价style歌词是这个吧铵根的化合价?!《化学价Style》——邱俊霖
    我背化合价
    化合价
    化合物中 钾钠银氢 常显 +1 价
    在化合物中 钙镁钡锌 通常显 +2 价
    在化合物中 氟氯溴碘 通

    生活 2021年10月20日
  • MySQL面试题有哪些

    技术MySQL面试题有哪些本篇内容介绍了“MySQL面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!非关系型数

    攻略 2021年12月3日