操作語法
SQL語法
(1)CREATE TABLE
建立資料表,基使用語法結構為:
CREATE TABLE table_name (column_name1 datatype , column_name2 datatype , .....);
(2)SELECT
用於將資料從資料庫中選出,基本語法結構為:
SELECT column_name FROM table_name ;
去掉重覆的結果:
SELECT DISTINCT column_name FROM table_name ;
有條件的篩選:
SELECT column_name FROM table_name WHERE column_name = "值" ;
條件選擇:
>、<、=、!=
條件聯結
and、or
(3)INSERT
在資料表中加入資料,語法結構為:
加入一筆:
INSERT INTO table_name (column_name1, column_name2, ...) VALUES ("值1", "值2", ...);
加入多筆 (將另一個資料表的資料加入現在表格中)
INSERT INTO new_table_name (column_name1, column_name2, ...) SELECT column_name3, column_name4, ... FROM old_table_name ;
(4)UPDATE
用於修改資料表中的資料,語法結構為:
UPDATE table_name SET column_name = "new_value" WHERE column_name = "值";
(5)DELETE
刪除資料表中的資料,語法結構為:
DELETE FROM table_name WHERE column_name = "值" ;
SQLiteDatabase
(1)CREATE DATABASE
public static SQLiteDatabase openOrCreateDatabase (File file, SQLiteDatabase.CursorFactory factory)
public static SQLiteDatabase openOrCreateDatabase (String path, SQLiteDatabase.CursorFactory factory)
(2)SELECT
public Cursor query (
boolean distinct, //取得欄位的資料是否包含重覆資料,不重覆 true,可以重覆 false
String table, //資料表名稱
String[] columns, //需要取得的欄位名稱,輸入NULL,回傳全部欄位
String selection, //where 條件,不需要包含「where」,可以是NULL
String[] selectionArgs, //where 條件中的值,必需是String,可以是NULL
String groupBy, //群組,不需要包含「gropu by」,可以是NULL
String having, //分組條件,不需要包含「having」,可以是NULL
String orderBy, //排序,不需要包含「grder by」,可以是NULL
String limit) //限制回傳行數,輸入NULL,回傳所有行數
(3)INSERT
public long insert (String table, String nullColumnHack, ContentValues values)
ContentValue類似java中HashMap,用於以 key 值對應 數值
(4)UPDATE
public int update (String table, ContentValues values, String whereClause, String[] whereArgs)
(5)DELETE
public int delete (String table, String whereClause, String[] whereArgs)
(6)其他
public void execSQL (String sql, Object[] bindArgs)
public void execSQL (String sql)
執行非查詢的sql語法,例如:insert、update或delete
public void close ()
關閉資料庫並釋放資源
Cursor
得到資料表欄位總數:
public abstract int getColumnCount()
得到傳回資料表的資料筆數:
public abstract int getCount()
得到資料表第index欄的欄名:
public abstract String getColumnName(int index)
得到欄名為name的index:
public abstract int getColumnIndex(String name)
不清楚
public abstract boolean isAfterLast ()
不清楚
public abstract boolean isBeforeFirst ()
得到目前Cursor是否為關閉
public abstract boolean isClosed ()
得到目前指標是否指向第一筆:
public abstract boolean isFirst()
得到目前指標是否指向最後一筆:
public abstract boolean isLast()
得到特定欄位是否為空值:
public abstract boolean isNull(int columnIndex)
將目前指標指向第一筆:
public abstract boolean moveToFirst ()
將目前指標指向最後一筆:
public abstract boolean moveToLast ()
將目前指標指向下一筆:
public abstract boolean moveToNext ()
將目前指標指向指定位置:
public abstract boolean moveToPosition (int position)
將目前指標指向上一筆:
public abstract boolean moveToPrevious ()
重新執行Query指令
public abstract boolean requery ()
SQLiteOpenHelper
(1)synchronized void close()
關閉任何已開啟的資料庫對象。
(2)synchronized SQLiteDatabase getReadableDatabase()
建立或開啟一個只可以讀取(read-only)的資料庫。
(3)synchronized SQLiteDatabase getWritableDatabase()
建立或開啟一個可讀可寫的資料庫。
(4)abstract void onCreate(SQLiteDatabase db)
當資料庫第一次被建立時使用的方法。
(5)void onOpen(SQLiteDatabase db)
資料庫已經被開啟後的調用。
(6)abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
當資料庫資料被更改時使用。