本章對使用android內(nèi)部提供的方法增、刪、改、查語句中用到的參數(shù)做一個(gè)講解:
table:查詢數(shù)據(jù)的表名
columns: 要查詢出來的列名
whereClause: 查詢條件子句,允許使用占位符"?"
whereArgs: 用于為占位符傳入?yún)?shù)值
groupBy:用于控制分組
having:用于對分組進(jìn)行過濾
orderBy:用于對記錄進(jìn)行排序
ContentValues是對key/value的一個(gè)包裝,使用它可以將要插入或者要修改的數(shù)據(jù)以key/value的形式進(jìn)行封裝,在使用相應(yīng)增改方法的時(shí)候直接使用。
它有兩個(gè)存入和取出兩個(gè)方法:
put(String key,Xxx);
getAsXxx(String Key);
下面一個(gè)實(shí)例,使用內(nèi)置函數(shù)操作數(shù)據(jù)庫增刪改查:
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) ");
//在執(zhí)行增、改方法之前,先創(chuàng)建insert方法中的一個(gè)ContentValues對象,再對這個(gè)對象存入數(shù)據(jù),存完后把values插入
ContentValues values = new ContentValues();
//增
values.put("name", "張三");
values.put("age",18);
values.put("sex","男");
db.insert("usertb", null, values); //插入方法的返回值是一個(gè)long,表示新添記錄的行號
values.clear(); //在插入下一條數(shù)據(jù)前需要把values清空,再對values存入新數(shù)據(jù)
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的數(shù)據(jù)都查,查詢出的數(shù)據(jù)按照name排序)
Cursor c = db.query("usertb", null, "_id > ?", new String[]{"0"}, null, null, "name");
c.close();
//關(guān)閉當(dāng)前數(shù)據(jù)庫
db.close();
//刪除user.db數(shù)據(jù)庫(注意不是表名table)
deleteDatabase("user.db");