【android】Sqlite中使用SQL与其他数据库的区别
16lz
2021-01-24
Sqlite作为Android中的主流数据库而广为使用,但是他的sql语言与一般的大型数据库所使用的SQL语言还是有一些区别的,本文总结如下:
1、TOP
在SQL Server中,我们使用TOP来获取前N条数据:
[sql] view plain copy print ?
- SELECTTOP10*FROM[index]ORDERBYindexidDESC;
但是在Sqlite中,大家会发现这是不行的,我们需要这么写:
[java] view plain copy print ?
- SELECT*FROM[index]ORDERBYindexidDESClimit0,10;
通过limit来实现TOP的功能。
2、COUNT(DISTINCT column)
Sqlite无法执行以下语句:
[sql] view plain copy print ?
- SELECTCOUNT(DISTINCTwatchid)FROM[watch_item]WHEREwatch_item.watchid=1;
其原因是SQLite的所有内置函数都不支持DISTINCT限定,所以如果要统计不重复的记录数的时候会出现一些麻烦。比较可行的做法是先建立一个不重复的记录表的视图,然后再对该视图进行计数。或者在插入数据的时候,就需要通过主键来判断。
3、Sqlite还无法使用外连
有解决的方法请指教。。。。
4、EXISTS语句
SQL Server中会这样写:
[sql] view plain copy print ?
- IFNOTEXISTS(select*fromaawhereids=5)BEGINinsertintoaa(nickname)select't'END
Sqlite中会这样写:
[java] view plain copy print ?
- insertintoaa(nickname)select't'wherenotexists(select*fromaawhereids=5)
如有新的东西,欢迎大家留言补充。
以上。
转自:http://blog.csdn.net/eclipsexys/article/details/39552613
更多相关文章
- C语言函数的递归(上)
- android:gravity="bottom|center_horizontal"的妙用
- Android基础入门教程——7.5.1 WebView(网页视图)基本用法
- Android整合网上资源以及个人对GreenDao数据库框架的理解与使用(
- Android方向
- Android学习之界面篇(六)ViewPager学习与Android引导界面的实现
- Android开发之旅:深入分析布局文件
- android SQLite 的使用
- android Sqlite数据库事务处理*.sql 语句集文件