android直接执行sql是execSQL(Stringsql)。这个方法可以执行任意sql语句。但是改变这个不够灵活。query这个方法可以很好的解决这个问题。执行query查询指定的数据表返回一个带游标的数据集
工具/原料
编译工具:Eclipse
方法/步骤
1、因为只是介绍一个sqlite的方法水貔藻疽,我们这里就不解释项目结构什么的。建表等我们也不说了。(Cursor)query(St鸡堕樱陨ringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit)
2、现在对参数的解释Stringtable:要查询的那个表String[]columns:返回那一列,如果参数是null,则返回所有列。(不过不推荐这个样子)Stringselection:返回那一行的过滤器。(格式是SQL的WHERE,设置为null,返回这个table的所有行)
3、String[]selectionArgs:在selection字段中可能会用'?'的形式来加一些额外的参数。StringgroupBy:一个过滤器,如何来分组。(设置为null则不分组)
4、Stringhaving:分组后聚合的过滤条件。(作用和sql语句的having作用一样)StringorderBy:排序,格式是SQL的ORDER一样。(设置null使用默认(无序unonder)排列。)
5、Stringlimit:返回的行数,设置为null表示没有限制条款。例子如下图:
6、query返回一个Cursor。针对豢谪楫芫游标(Cursor)也提供了不少方法getCount():总记录条数isFirst():判断是否第一条记录isLast():判断是否最后一条记玲膛宀耱录moveToFirst():移动到第一条记录moveToLast():移动到最后一条记录move(intoffset):移动到指定的记录moveToNext():移动到吓一条记录moveToPrevious():移动到上一条记录getColumnIndex(StringcolumnName):获得指定列索引的int类型值
7、sql语句中聚合函数的编写为例如:SUM,COUNT,MAX,AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。SELECTSUM(population)FROMbbc
8、sql语句中having是分组(grou圬桦孰礅pby)后的筛选条件,分组后的数据组内再筛选where则是在分组前筛选。通过使用GROU霸烹钟爷PBY子句,可以让SUM和COUNT这些函数对属于一组的数据起作用。HAVING子句可以让我们筛选成组后的各组数据。WHERE子句在聚合前先筛选记录。也就是说作用在GROUPBY子句和HAVING子句前。而HAVING子句在聚合后对组记录进行筛选。