增
- 数据库的添加数据,SQLiteDatabase提供了一个insert()方法,专门用于添加数据。
contentValues.put("name","张三");
contentValues.put("age",18);
contentValues.put("clazz","计算机1301班");
db.insert("book",null,contentValues);
contentValues.clear();
contentValues.put("name","李四");
contentValues.put("age",25);
contentValues.put("clazz","土木1403班");
db.insert("book",null,contentValues);
contentValues.clear();
- db.insert(“book”,null,contentValues),这个方法接收三个参数
- 第一个参数是表名,我们要添加数据的表的名称
- 第二个参数是用于未指定添加数据的情况下,给某些可为空的列自动赋值为null,一般不用,所以传NULL
- 第三个参数是一个contentValues对象,它提供了一系列的put()方法的重载,,用于向contentValues中添加数据,吱需要将每个列名及对应的数据传入即可。
改
- 数据库的更新数据,SQLiteDatabase提供了一个update()方法
contentValues.put("clazz","家里蹲大学");
//将名字为张三的clazz字段改为家里蹲大学
db.update("book",contentValues,"name=?",new String[]{"张三"});
contentValues.clear();
- db.update(“book”,contentValues,”name=?”,new String[]{“张三”})方法接收四个参数
- 第一个参数是表名
- 第二个参数是contentValues对象
- 第三、四个参数是用于去约束某一行或几行的数据,不指定的话就默认更新所有行。
删
- 数据库的删除数据,SQLiteDatabase提供了一个delete()方法
//删除年龄小于20岁的学生信息
db.delete("book","age<?",new String[]{"20"});
- 这个方法接收三个参数
- 第一个参数是表名
- 第二、三个参数是用于去约束删除某一行或者某几行的数据,不指定的话就默认删除所有行。
查
- 数据库的查询数据,SQLiteDatabase提供了一个query()方法
Cursor cursor=db.query("book",null,null,null,null,null,null);
if (cursor.moveToFirst()){
do {
String name=cursor.getString(cursor.getColumnIndex("name"));
int age=cursor.getInt(cursor.getColumnIndex("age"));
String clazz=cursor.getString(cursor.getColumnIndex("clazz"));
Toast.makeText(MainActivity.this, name + age + clazz, Toast.LENGTH_SHORT).show();
}while (cursor.moveToNext());
cursor.close();
}
- db.query(“book”,null,null,null,null,null,null)方法接收七个参数
- 第一个参数是表名
- 第二个参数用于指定查询哪几列,默认查询所有列
- 第三、四个参数用于去约束某一行或某几行的数据,默认查询所有行
- 第五个参数用于指定需要去group by的列,默认不进行group by操作
- 第六个参数用于对group by之后的数据进一步过滤,默认不过滤
第七个参数用于指定查询结果的排序方式,不指定按默认排序。
查询结果为一个cursor对象,通过对cursor对象的遍历,及可以获得所有的查询数据。
各个操作执行之后,效果图如下
使用SQL操作数据库
- 我们还可以直接使用sql语句进行数据库的操作
增
db.execSQL("insert into book(name,author,prices,pages)values(?,?,?,?)",new String[]{"大学语文","谁知道呢","15.42","200"});
改
db.execSQL("update book set price = ? where name = ?",new String[]{"9.9","英语"});
删
db.execSQL("delete from book set where name = ?",new String[]{"英语"});
查
db.rawQuery("select * from book",NULL);
- 这种查询方法与上面一样,看自己喜好。