建表语句
create table 表名{自增键,列2 值,列3 值…}
创建
SQLiteOpenHelper oncreate(SQLIteDatabase db)方法中创建 db.execSQL(建表语句);
升级
SQLiteOpenHelper onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)
1.不保留数据
//删除原表,重新创建
db.execSQL("drop table is exists 表名");
//重新调用
onCreate(db);
2.保留数据
大体流程:将原表改名,创建新表(原名),复制数据,删除改名后的表
3.添加列
语句:"alter table 表名 add column 列名 类型 DEFAULT 0"
大体流程:将原表改名,创建新表(原名),复制数据,删除改名后的表
CRUD 增查改删
C:insert
...
SQLiteDatabase db=helper.getWriteableDatabase();
ContentValue value=new ContentValue();
value.put(列名,值);
value.put(列名,值);
value.put(列名,值);
db.insert(表名,value);
...
R:query
...
SQLiteDatabase db=helper.getWriteableDatabase();
Cursor cursor=db.query(表名,列名,where约束条件,where具体值,group by的列,group by 具体值,order by);
if(cursor.moveToFirst()){
do{
String str=cursor.getString(cursor.getColumnIndex(列名));
}while(cursor.moveToNext())
}
cursor.close();
...
SQL 语法: db.rawQuery("select * from 表名",null);
U:update
SQLiteDatabase db=helper.getWriteableDatabase();
ContentValue value=new ContentValue();
value.put(列名,新值);
//相当于 update 表名 set 新值 where 条件列=某值
db.update(表名,value,"条件列名=?",new String[]{某值}); //表示将 条件表名=某值 名为 列名的值更改为新值;
D:delete
SQLiteDatabase db=helper.getWriteableDatabase();
// delete from 表名 where 列名=某值
db.delete(表名,条件=?,具体值);
db.delete(Person,"age=?","new String[]{"20"})")//表示从Person表中删除age=20的行