標籤:
sqlite 是一款輕量級的嵌入式資料庫,sqlite對資源的消耗非常低,在嵌入式裝置中可能只要幾百k的記憶體。相對於mysql、postgre而言速度也更加快。
需要注意的是sqlite不屬於用戶端-伺服器模式的資料庫,它的引擎會串連到程式中成為其中的一部分,所以不存在如mysql等DB一樣,需要由一個通訊協定和資料庫執行個體互動。
對sqlite而言都是API執行。並且整個資料庫,包括定義、表、索引、資料都儲存在單一的檔案中。
在這種設計下,支援事務的sqlite在執行事務時會鎖定整個資料檔案。下面是一個基本的程式執行個體:
db = openOrCreateDatabase(DB_NAME, this.MODE_PRIVATE, null); db.execSQL("DROP TABLE IF EXISTS users"); db.execSQL("CREATE TABLE IF NOT EXISTS users (_id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR, password VARCHAR)"); db.execSQL("INSERT INTO users VALUES (NULL,‘fredric‘,‘fredricpassword‘)"); ContentValues cv = new ContentValues(); cv.put("username", "sinny"); cv.put("password", "sinnypassword"); db.insert("users", null, cv); Cursor cursor = db.rawQuery("SELECT * FROM users", null); while (cursor.moveToNext()) { Log.i(TAG_ACTIVITY, cursor.getString(cursor.getColumnIndex("username"))); Log.i(TAG_ACTIVITY, cursor.getString(cursor.getColumnIndex("password"))); } cursor.close();
列印輸出:fredric、fredricpassword、sinny、sinnypassword
sqlite(1、基礎)