- // 在sqlite中创建表的语句
- //创建表sql语句
- Stringstu_table="createtableusertable(_idintegerprimarykeyautoincrement,snametext,snumbertext)";
-
在Android中查询数据是通过Cursor类来实现的,当我们使用sqliteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:
public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit);
各个参数的意义说明:
①table:表名称
②columns:列名称数组
③selection:条件字句,相当于where
④selectionArgs:条件字句,参数数组
⑤groupBy:分组列
⑥having:分组条件
⑦orderBy:排序列
⑨Cursor:返回值,相当于结果集ResultSet
Cursor是一个游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获得列值方法getString()等.
Cursor游标常用方法
方法描述 |
|
getCount() |
获得总的数据项数 |
isFirst() |
判断是否第一条记录 |
isLast() |
判断是否最后一条记录 |
moveToFirst() |
移动到第一条记录 |
moveToLast() |
移动到最后一条记录 |
move(int offset) |
移动到指定记录 |
moveToNext() |
移动到下一条记录 |
moveToPrevIoUs() |
移动到上一条记录 |
getColumnIndexOrThrow(String columnName) |
根据列名称获得列索引 |
getInt(int columnIndex) |
获得指定列索引的int类型值 |
getString(int columnIndex) |
获得指定列缩影的String类型值 |
- privatevoidquery(sqliteDatabasedb)
- {
- //查询获得游标
- Cursorcursor=db.query("usertable",null,153)">null);
- //判断游标是否为空
- if(cursor.moveToFirst(){
- //遍历游标
- for(inti=0;i<cursor.getCount();i++){
- cursor.move(i);
- //获得ID
- intid=cursor.getInt(0);
- //获得用户名
- Stringusername=cursor.getString(1);
- //获得密码
- Stringpassword=cursor.getString(2);
- //输出用户信息
- System.out.println(id+":"+sname+":"+snumber);
- }
- }
- }
在sql中,select语句的基本格式如下:
select [all distinct] select_list
from table_list/view_list
[where conditions]
[group by group_list]
[having conditions]
[order by order_list]
下面对select语句的语法进行一下分析:
第一行关键字select后的select_list列出了所选择列的名称,在检索后系统将列出符合条件的列的数据。select关键字之后可选的关键字all表示将显示所有检索到的数据(包括重复的数据),distince表示不在结果中显示重复数据。
第二行关键字from之后,指定要进行检索的表的名称table_list或视图的名称view_list。from后面可以是一张表,也可以是多张表。
第三行关键字where之后,可以指定检索的条件,使select语句按照指定的检索条件在表中检索数据。要注意检索条件可以来源于一张表,也可以来源于多张表。
第四行关键字group by指定如何对检索到的数据进行分组,使显示结果按照用户的需要分好组,产生可读性更好的结果。
第五行关键字having子句可以看成用于组的where子句。having子句用来限制组,就像排好序,产生可读性更好的结果。