android原始sqlite中query的复杂用法

2025-10-17 17:09:33

1、因为只是介绍一个sqlite的方法,我们这里就不解释项目结构什么的。

建表等我们也不说了。

(Cursor) query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

2、现在对参数的解释

String table: 要查询的那个表

String[] columns: 返回那一列,如果参数是null,则返回所有列。

(不过不推荐这个样子)

String selection: 返回那一行的过滤器。

(格式是SQL的WHERE,设置为null,返回这个table的所有行)

android原始sqlite中query的复杂用法

3、String[] selectionArgs: 在selection字段中可能会用'?'的形式来加一些额外的参数。

String groupBy: 一个过滤器,如何来分组。(设置为null则不分组)

android原始sqlite中query的复杂用法

4、String having: 分组后聚合的过滤条件。(作用和sql语句的having作用一样)

String orderBy: 排序,格式是SQL的ORDER一样。

(设置null使用默认(无序unonder)排列。)

android原始sqlite中query的复杂用法

5、String limit: 返回的行数,设置为null表示没有限制条款。

例子如下图:

android原始sqlite中query的复杂用法

6、query返回一个Cursor。

针对游标(Cursor)也提供了不少方法

getCount():总记录条数

isFirst():判断是否第一条记录

isLast():判断是否最后一条记录

moveToFirst():移动到第一条记录

moveToLast():移动到最后一条记录

move(int offset):移动到指定的记录

moveToNext():移动到吓一条记录

moveToPrevious():移动到上一条记录

getColumnIndex(String columnName):获得指定列索引的int类型值

android原始sqlite中query的复杂用法

7、sql语句中聚合函数的编写为例如:SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM(population) FROM bbc

android原始sqlite中query的复杂用法

8、sql语句中having是分组(group by)后的筛选条件,分组后的数据组内再筛选where则是在分组前筛选。

通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。

HAVING子句可以让我们筛选成组后的各组数据。 WHERE子句在聚合前先筛选记录。也就是说作用在GROUP BY 子句和HAVING子句前。而 HAVING子句在聚合后对组记录进行筛选。 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢