sqlite 中的query操作

query()方法实际上是把select语句拆分成了若干个组成部分,然后作为方法的输入参数:

SQLiteDatabasedb=databaseHelper.getWritableDatabase();

Cursorcursor=db.query("person",newString[]{"personid,name,age"},"namelike?",newString[]{"%传智%"},null,null,"personiddesc","1,2");

while(cursor.moveToNext()){

intpersonid=cursor.getInt(0);//获取第一列的值,第一列的索引从0开始

Stringname=cursor.getString(1);//获取第二列的值

intage=cursor.getInt(2);//获取第三列的值

}

cursor.close();

db.close();

上面代码用于从person表中查找name字段含有“传智”的记录,匹配的记录按personid降序排序,对排序后的结果略过第一条记录,只获取2条记录。

query(table,columns,selection,selectionArgs,groupBy,having,orderBy,limit)方法各参数的含义:

table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。

columns:要查询出来的列名。相当于select语句select关键字后面的部分。

selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”

selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。

groupBy:相当于select语句groupby关键字后面的部分

having:相当于select语句having关键字后面的部分

orderBy:相当于select语句orderby关键字后面的部分,如:personiddesc,ageasc;

limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。

相关推荐