sqlite數(shù)據(jù)庫(kù)介紹:
文件數(shù)據(jù)庫(kù):它可以將數(shù)據(jù)庫(kù)的所有表、索引、 視圖等存儲(chǔ)一個(gè)單獨(dú)的文件里
數(shù)據(jù)規(guī)模:
記錄數(shù)目 ? ? ? ? ? ?存儲(chǔ)方式
?100 –1萬(wàn) ? ? ? ? ? ? ?SQLite (本地文件)
使用場(chǎng)景:
假設(shè)有這樣一張表,統(tǒng)計(jì)每個(gè)用戶每天的登錄次數(shù)userinfo:
username??? time??? type??? count
張三???????????? 4號(hào)????? 1????????? 5
張三???????????? 6號(hào)????? 3????????? 4
張三???????????? 11號(hào)???? 1???????? 11
李四???????????? 11號(hào)???? 1????????? 9
其中type表示星期幾,count表示該天的登錄次數(shù),
比如第一條表示張三在4號(hào)(星期一)登錄了5次,
如果我們要計(jì)算某個(gè)用戶各個(gè)工作日的登錄次數(shù),可以用如下一條語(yǔ)句:
select sum(case when type=0 then count else 0 end) as sum_sunday,
? ? sum(case when type=1 then count else 0 end) as sum_monday,
? ? ...
? ? from userinfo where username='張三';
代碼使用:
1、DBHelper 繼承SQLiteOpenHelper
2、構(gòu)造函數(shù):
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSIONCODE);
}
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
3、實(shí)現(xiàn)onCreate方法,完成創(chuàng)表操作
@Override
public void onCreate(SQLiteDatabase db) {
//實(shí)現(xiàn)數(shù)據(jù)庫(kù)的創(chuàng)表操作
? ? String sql="create table "
? ? ? ? ? ? +TABLE_NAME +" (_id integer primary key autoincrement, "
? ? ? ? ? ? +CITY_NAME +" varchar,"
? ? ? ? ? ? +ROOM_TITLE+" text ,"
? ? ? ? ? ? +PRICE+" varchar) ";
? ? db.execSQL(sql);
}
4、實(shí)例化DBHelper對(duì)象,通過(guò)DBHelper對(duì)象調(diào)用getWritableDatabase()完成數(shù)據(jù)庫(kù)的創(chuàng)建
DBHelper dbHelper=new DBHelper(this);
SQLiteDatabase dbDataBase=dbHelper.getWritableDatabase();
5、數(shù)據(jù)庫(kù)的增刪改查
dbDataBase.insert();
dbDataBase.delete();
dbDataBase.update();
dbDataBase.query();
可以寫(xiě)一個(gè)布局:
設(shè)置四個(gè)按鈕,每個(gè)按鈕對(duì)應(yīng)一個(gè)功能,測(cè)試數(shù)據(jù)庫(kù)的增刪改查。