本章对使用android内部提供的方法增、删、改、查语句中用到的参数做一个讲解:
table:查询数据的表名
columns: 要查询出来的列名
whereClause: 查询条件子句,允许使用占位符"?"
whereArgs: 用于为占位符传入参数值
groupBy:用于控制分组
having:用于对分组进行过滤
orderBy:用于对记录进行排序
ContentValues是对key/value的一个包装,使用它可以将要插入或者要修改的数据以key/value的形式进行封装,在使用相应增改方法的时候直接使用。
它有两个存入和取出两个方法:
put(String key,Xxx);
getAsXxx(String Key);
下面一个实例,使用内置函数操作数据库增删改查:
SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
db.execSQL("create table if not exists usertb(_id integer primary key autoincrement, name text not null, age integer not null, sex integer not null) ");
//在执行增、改方法之前,先创建insert方法中的一个ContentValues对象,再对这个对象存入数据,存完后把values插入
ContentValues values = new ContentValues();
//增
values.put("name", "张三");
values.put("age",18);
values.put("sex","男");
db.insert("usertb", null, values); //插入方法的返回值是一个long,表示新添记录的行号
values.clear(); //在插入下一条数据前需要把values清空,再对values存入新数据
values.put("name", "李四");
values.put("age",19);
values.put("sex","男");
db.insert("usertb", null, values);
values.clear();
values.put("name", "王五");
values.put("age",20);
values.put("sex","男");
db.insert("usertb", null, values);
values.clear();
//改 (将id大于的性别改成女
values.put("sex", "女");
db.update("usertb", values, "_id >?", new String[]{"2"});
//删 (将名字里带三的人删除)
db.delete("uesrtb", "name like ?", new String [] {"%三%"});
//查 (查询usertb这张表,所有行都差,_id >0的数据都查,查询出的数据按照name排序)
Cursor c = db.query("usertb", null, "_id > ?", new String[]{"0"}, null, null, "name");
c.close();
//关闭当前数据库
db.close();
//删除user.db数据库(注意不是表名table)
deleteDatabase("user.db");