SQLiteDatabase的insert方法的簽名為long insert(String table,String nullColumnHack,ContentValues values),這個插入方法的參數說明如下:
table:代表想插入數據的表名。
nullColumnHack:代表強行插入null值的數據列的列名。
values:代表壹行記錄的數據。
insert方法插入的壹行記錄使用ContentValues存放,ContentValues類似於Map,它提供了put(String key,Xxx value)(其中key為數據列的列名)方法用於存入數據、getAsXxx(String key)方法用於取出數據。
例如如下語句:
ContentValues values=new ContentValues();
values.put("name","孫悟空"):
values.put("age",500);
//返回新添記錄的行號,該行號是壹個內部直,與主鍵id無關,發生錯誤返回-1
long rowid=db.insert("person_inf",null,values);
2、使用update方法更新數據
SQLiteDatabase的update方法簽名為update(String table,ContentValues values,String whereClause,String[] whereArgs),這個更新方法的參數說明如下:
table:代表想要更新數據的表名。
values:代表想要更新的數據。
whereClause:滿足該whereClause子句的記錄將會被更新。
whereArgs:用於為whereArgs子句傳遞參數。
例如我們想要更新person_inf表中所有主鍵大於20的人的人名,可調用如下方法:
ContentValues values=new ContentValues();
//存放更新後的人名
values.put("name","新人名");
int result=db.update("person_inf",values,"_id>?",new Integer[]{20});
3、使用delete方法刪除記錄
SQLiteDatabase的delete方法簽名為delete(String table,String whereClause,String[] whereArgs),這個刪除的參數說明如下:
table:代表想刪除數據的表名。
whereClause:滿足該whereClause子句的記錄將會被刪除。
whereArgs:用於為whereArgs子句傳入參數。
刪除person_inf表中所有人名以孫開頭的記錄
int result=db.delete("person_inf","person_name like ?",new String[]{"孫_"});
4、使用query方法查詢記錄
SQLiteDatabase的query方法簽名為Cursor query(boolean distinct,String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit),這個query方法的參數說明如下。
distinct:指定是否去除重復記錄。
table:執行查詢數據的表名。
columns:要查詢出來的列名。
selection:查詢條件子句。
selectionArgs:用於為selection子句中占位符傳入參數值,值在數組中的位置與占位符在語句中的位置必須壹致,否則就會有異常。
groupBy:用於控制分組。
having:用於對分組進行過濾。
orderBy:用於對記錄進行排序。
limit:用於進行分頁。
例如查詢出person_inf表中人名以孫開頭的數據
Cursor cursor=db.query("person_inf",new String[]{"_id,name,age"},"name like ?",new String []{"孫%"},null,null,"personid desc","5,10");
cursor.close();