SQLite可以解析大部分的標準SQL語句: 查詢語句:select * from 表名 where 條件子句 group by 分組子句 having…order by 排序子句 DESC(降序)(ASC 升序)。 分頁語句:select * from 表名 limit 記錄數 offset 開始位置 或者 select * from 表名 limit 開始位置,記錄數 插入語句:insert into 表名(字段列表) values (值列表) 更新語句:update 表名 set 字段名=值 where 條件子句 刪除語句:delete from 表名 where 條件子句 刪表語句:drop table if exists 表名 增加字段語句: alter table 表名 add column 列名 字段類型 修改數據庫名稱 alter table 表名 rename to 新表名
而為了方便對數據庫進行版本管理,建議在開發項目的時候使用SQLiteOpenHelper類,它提供了兩個重要的方法,分別是 onCreate(SQLiteDatabase db)——用于初次使用軟件時生成數據庫,一旦數據庫存在則不會調用此方法。函數是在第一次創建數據庫的時候執行的,僅僅生成DataBaseHelper對象的時候是不會調用該函數的,而只有當實現DataBaseHelper對象的getReadableDataBase時或者是調用了getWritableDataBase時,如果是第一次創建數據庫,那么就一定會調用onCreate()函數 。 onUpgrade(SQLiteDatabase db,int oldVersion,int vewVersion)——用于升級軟件時更新數據庫表結構,如增加表、列字段等操作。 提示一下,在軟件升級前,最好對原有數據進行備份,在新表建好后把數據導入新表中。 實現了這兩個方法,就可以用他的getWritableDatabase()和getReadableDatabase()來獲得數據庫。
強調下:當第一次創建數據庫時,當實現DataBaseHelper對象的getReadableDataBase時或者是調用了getWritableDataBase時,系統自動調用oncreater()方法(當然程序中也可以調用); 如果用戶需要升級數據庫表結構,需要主動調用onUpgrade(SQLiteDatabase db,int oldVersion,int vewVersion),傳入一個新的版本的號。
查詢操作:在使用SQLite的進行查詢時最好用占位符“?”來代替各值,注意直接用?而不是'?'。 例如: 插入操作: 插入一行記錄,可以通過三種方式實現: 第一種,封裝列-值對,調用 db.insert(table, nullColumnHack, values)或者db.insertOrThrow(table, nullColumnHack, values)方法插入,插入成功返回行號,失敗時返回-1. ContentValues values=new ContentValues(); 如果傳入的values為空的話,則將插入一行各列指為NULL或0的數據,(如果列是Integer類型,則0,其它類型為NULL)。 第二種,組織SQL語句,使用 db.execSQL(String sql)或 db.execSQL(String sql,Object[] data)執行,無返回值。 String sql1="insert into " 第三種,使用update(String table, ContentValues values, String whereClause, String[] whereArgs) 更新行數據,注意WhereClause為update的where條件,不帶關鍵字where:如: SQLiteDatabase db = this.getWritableDatabase(); ContentValues cv = new ContentValues(); |
|