操作語法

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)

當資料庫資料被更改時使用。