![](https://csdnimg.cn/release/download_crawler_static/10703202/bg5.jpg)
values.put("name","安桌");
values.put("age",4);
longrowid=db.insert(“person”,null,values);//返回新添记录的行号,与主键 id 无关
(2)delete
SQLiteDatabasedb=databaseHelper.getWritableDatabase();
db.delete("person","personid<?",newString[]{"2"});
db.close();
(3)update
SQLiteDatabasedb=databaseHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
values.put(“name”,“android”);//key 为字段名,value 为值
db.update("person",values,"personid=?",newString[]{"1"});
db.close();
(4)query
query()方法实际上是把 select 语句拆分成了若干个组成部分,然后作为方法的输入参数:
SQLiteDatabasedb=databaseHelper.getWritableDatabase();
Cursorcursor=db.query("person",newString[]{"personid,name,age"},"namelike?",
newString[]{"%android%"},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 字段含有“android”的记录,匹配的记录按
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 关键字后面的部分。