SQLite是輕量級的、嵌入式的、關系型數據庫,目前已經在iPhone、Android等手機系統中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的應用程序中,它們共用相同的進程空間,而不是單獨的一個進程。SQLite數據庫對SQL規范的支持很全面,它支持大多數SQL標准,同時摒棄了一些復雜的功能,添加了一些自身的特性,下圖是SQLite所支持的SQL語句類型:
下圖是SQLite所定義的數據類型:
SQLite也支持SQL標准類型,VARCHAR、CHAR、BIGINT等。
創建數據庫
Android 不自動提供數據庫。在 Android 應用程序中使用 SQLite,必須自己創建數據庫,然后創建表、索引,填充數據。Android 提供了 SQLiteOpenHelper 幫助你創建一個數據庫,只要繼承 SQLiteOpenHelper 類,就可以創建數據庫。繼承了SQLiteOpenHelper的子類,必須實現三個方法:
1、構造函數,調用父類 SQLiteOpenHelper 的構造函數。這個方法需要四個參數:上下文環境(例如,一個 Activity),數據庫名字,一個可選的游標工廠(通常是 Null),一個代表你正在使用的數據庫模型版本的整數。
2、onCreate()方法,它需要一個 SQLiteDatabase 對象作為參數,根據需要對這個對象填充表和初始化數據。
3、onUpgrage() 方法,它需要三個參數,一個 SQLiteDatabase 對象,一個舊的版本號和一個新的版本號,這樣可以清楚如何把一個數據庫從舊的模型轉變到新的模型。
如下代碼:
class databaseAdapter extends SQLiteOpenHelper{ public databaseAdapter(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }
還可以使用如下方法創建數據庫:
1、Context.createDatabase(String name,int vision,int mode,CursorFactory factory);//創建一個新的數據庫並返回一個SQLiteDatabase對象
2、SQLiteDatabase mydb = SQLiteDatabase.create(new CursorFactory() {
@Override
public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
String editTable, SQLiteQuery query) {
return null;
}
});
3、SQLiteDatabase db = this.openOrCreateDatabase("mydb.db", MODE_PRIVATE, new CursorFactory() {
@Override
public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
String editTable, SQLiteQuery query) {
// TODO Auto-generated method stub
return null;
}
});
刪除數據庫
Context.deleteDatabase(String name);//刪除指定名字的數據庫
打開數據庫
Context.openDatabase(String basename,CursorFactory factory);//打開一個存在的數據庫,並返回SQLiteDatabase對象
非查詢SQL指令
SQLiteDatabase.execSQLite(String sql);//可以用來執行非查詢的SQL指令,這些指令執行后沒有結果返回
查詢SQL指令,游標cursors的使用
Cursor cursor = mydb.rawQuery(String sql,String[] selectionArg);//第一個參數為查詢語句,第二個參數為查詢語句中的占位符,若沒有占位符,則第二個參數為null