本文主要总结了SQLite增删改查的语句和方法
SQL语句
name,phone,money为表的三个字段(windows可下载SQLite Expert软件,可以适应SQLite语句)
- insert into person (name, phone, money) values ('张三', '159874611', 2000);
- delete from person where name = '李四' and _id = 4;
- update person set money = 6000 where name = '李四';
- select name, phone from person where name = '张三';
java代码使用SQL语句:
//创建OpenHelper对象。getContext()获取虚拟的上下文。
MyOpenHelper oh = new MyOpenHelper(getContext(), "person.db", null, 1);
//获得数据库对象,如果数据库不存在,先创建数据库,后获得,如果存在,则直接获得
SQLiteDatabase db = oh.getWritableDatabase();
public void insert(){
db.execSQL("insert into person (name, salary, phone)values(?, ?, ?)", new Object[]{"小志", 14000, "13888"});
}
public void delete(){
db.execSQL("delete from person where name = ?", new Object[]{"小志"});
}
public void update(){
db.execSQL("update person set phone = ? where name = ?", new Object[]{186666, "小志的儿子"});
}
public void select(){
Cursor cursor = db.rawQuery("select name, salary from person", null);
while(cursor.moveToNext()){
//通过列索引获取列的值
String name = cursor.getString(cursor.getColumnIndex("name"));
String salary = cursor.getString(1);
System.out.println(name + ";" + salary);
}
使用api实现增删改查
插入
//以键值对的形式保存要存入数据库的数据 ContentValues cv = new ContentValues(); cv.put("name", "刘能"); cv.put("phone", 1651646); cv.put("money", 3500); //返回值是改行的主键,如果出错返回-1 long i = db.insert("person", null, cv);
删除
//返回值是删除的行数 int i = db.delete("person", "_id = ? and name = ?", new String[]{"1", "张三"});
修改
ContentValues cv = new ContentValues(); cv.put("money", 25000); int i = db.update("person", cv, "name = ?", new String[]{"赵四"});
查询
//arg1:要查询的字段 //arg2:查询条件 //arg3:填充查询条件的占位符 public void selectApi(){ Cursor cursor = db.query("person", null, null, null, null, null, null, null); while(cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); String phone = cursor.getString(cursor.getColumnIndex("phone")); String salary = cursor.getString(cursor.getColumnIndex("salary")); System.out.println(name + ";" + phone + ";" + salary); } }