SQLiteDatabase中query、insert、update、delete方法參數說明

補充:除了execSQL()和rawQuery()方法,SQLiteDatabase還專門提供了insert(),delete(0,update()和query()。對於熟悉SQL語法的程序員而言,直接使用execSQL()和rawQuery()方法執行SQL語句就能完成數據的添加、刪除、更新、查詢操作。

1、SQLiteDataBase對象的query()接口:
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs,
                               String groupBy, String having,String orderBy,String limit)

Query the given table,returning a Cursor overthe result set.

Parameters
table The table name to compile the query against.(要查詢的表名.)
columns A list of which columns to return. Passing null will return allcolumns, which is discouraged to prevent reading data from storagethat isn't going to be used.(想要顯示的列,若爲空則返回所有列,不建議設置爲空,如果不是返回所有列)
selection A filter declaring which rows to return, formatted as an SQL WHEREclause (excluding the WHERE itself). Passing null will return allrows for the given table.(where子句,聲明要返回的行的要求,如果爲空則返回表的所有行。)
selectionArgs You may include ?s in selection, which will be replaced by thevalues from selectionArgs, in order that they appear in theselection. The values will be bound as Strings.( where子句對應的條件值)
groupBy A filter declaring how to group rows, formatted as an SQL GROUP BYclause (excluding the GROUP BY itself). Passing null will cause therows to not be grouped.(分組方式,若爲空則不分組.)
having A filter declare which row groups to include in the cursor, if rowgrouping is being used, formatted as an SQL HAVING clause(excluding the HAVING itself). Passing null will cause all rowgroups to be included, and is required when row grouping is notbeing used.(having條件,若爲空則返回全部(不建議))
orderBy How to order the rows, formatted as an SQL ORDER BY clause(excluding the ORDER BY itself). Passing null will use the defaultsort order, which may be unordered.(排序方式,爲空則爲默認排序方式)
limit Limits the number of rows returned by the query, formatted as LIMITclause. Passing null denotes no LIMIT clause.(限制返回的記錄的條數,爲空則不限制)
Returns
  • Cursor object,which is positioned before the first entry. Notethat Cursorsare not synchronized, see the documentation for more details.
示例:
ContentValues cv = new ContentValues();
String[] args = {String.valueOf("a")};

query("user",new String[] { "username","password" },"username=?"args,null,null,null, null);


2、SQLiteDataBase對象的insert()接口:

publiclong insert (String table, String nullColumnHack, ContentValues values)

Convenience method forinserting a row into the database.

Parameters
table the table to insert the row into(要插入數據的表的名稱)
nullColumnHack optional; may be null.SQL doesn't allow inserting a completely empty row without namingat least one column name. If yourprovided valuesisempty, no column names are known and an empty row can't beinserted. If not set to null, the nullColumnHack parameterprovides the name of nullable column name to explicitly insert aNULL into in the case where your values isempty.( 當values參數爲空或者裏面沒有內容的時候,我們insert是會失敗的(底層數據庫不允許插入一個空行),爲了防止這種情況,我們要在這裏指定一個列名,到時候如果發現將要插入的行爲空行時,就會將你指定的這個列名的值設爲null,然後再向數據庫中插入。)
values this map contains the initial column values for the row. The keysshould be the column names and the values the columnvalues(一個ContentValues對象,類似一個map.通過鍵值對的形式存儲值。)
Returns
  • the row ID of the newly insertedrow, or -1 if an error occurred
示例:
ContentValues cv = new ContentValues();
cv.put("username""a");
cv.put("password""b");
insert("user"null,cv);
 
 
3、SQLiteDataBase對象的update()接口:

publicint update (String table, ContentValues values, String whereClause, String[] whereArgs)

Convenience method for updatingrows in the database.

Parameters
table the table to update in(要更新的表名)
values a map from column names to new column values. null is a valid valuethat will be translated to NULL.(一個ContentValues對象,類似一個map.通過鍵值對的形式存儲值。)
whereClause


whereArgs
the optional WHERE clause to apply when updating. Passing null willupdate all rows.(可選的where語句)

the group of args to dealwith(whereClause語句中表達式的?佔位參數列表
)
Returns
  • the number of rows affected
ContentValues cv = new ContentValues();
cv.put("username""c");
cv.put("password""d");
String[] args = {String.valueOf("a")};
update("user",cv, "username=?",args)
 
 
4、SQLiteDataBase對象的delete()接口:

publicint delete (String table, String whereClause, String[] whereArgs)

Convenience method for deletingrows in the database.

Parameters
table the table to delete from
whereClause

whereArgs
the optional WHERE clause to apply when deleting. Passing null willdelete all rows.(可選的where語句)
the optional WHERE clauseto apply when updating. Passing null will update allrows.(whereClause語句中表達式的?佔位參數列表)
Returns
  • the number of rows affected if awhereClause is passed in, 0 otherwise. To remove all rows and get acount pass "1" as the whereClause.
示例:
ContentValues cv = new ContentValues();
String[] args = {String.valueOf("c")};
delete("user""username=?",args);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章