Android 中使用的是SQLite
基本的sql語句
(1) 資料記錄篩選:
sql="select * from 資料表 where字段名=字段值 order by字段名[desc]"(按某個字段值降序排列。預設升序ASC)
sql="select * from 資料表 where字段名like '%字段值%' order by 字段名 [desc]"
sql="select top 10 * from 資料表 where字段名=字段值 order by 字段名 [desc]"
sql="select top 10 * from 資料表 order by 字段名 [desc]"
sql="select * from 資料表 where字段名in ('值1','值2','值3')"
sql="select * from 資料表 where字段名between 值1 and 值2"
(2) 更新資料記錄:
sql="update 資料表 set字段名=字段值 where 條件表達式"
sql="update 資料表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"
(3) 删除資料記錄:
sql="delete from 資料表 where 條件表達式"
sql="delete from 資料表" (将資料表所有記錄删除)
(4) 添加資料記錄:
sql="insert into 資料表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
sql="insert into 目标資料表 select * from 源資料表" (把源資料表的記錄添加到目标資料表)
(5) 資料記錄統計函數:
AVG(字段名) 得出一個表格欄平均值
COUNT(*;字段名) 對資料行數的統計或對某一欄有值的資料行數統計
MAX(字段名) 取得一個表格欄最大的值
MIN(字段名) 取得一個表格欄最小的值
SUM(字段名) 把資料欄的值相加
引用以上函數的方法:
sql="select sum(字段名) as 别名 from 資料表 where 條件表達式"
set rs=conn.excute(sql)
用 rs("别名") 擷取統計的值,其它函數運用同上。
查詢去除重複值:select distinct * from table1
(6) 資料表的建立和删除:
CREATE TABLE 資料表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )
(7) 單列求和:
SELECT SUM(字段名) FROM 資料表
資料類型
SQLite支援NULL、INTEGER、REAL、TEXT和BLOB資料類型,
分别代表空值、整型值、浮點值、字元串文本、二進制對象。
db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()
+ "/my.db3", null);
System.out.println(this.getFilesDir().toString());
// db.execSQL("DROP TABLE IF EXISTS person");
if (!IsTabExists(db, "person")) {
Log.i(TAG, "=== TAB NOT EXISTS,CREATE ===");
db.execSQL("CREATE TABLE if not exists person(_id INTEGER PRIMARY KEY AUTOINCREMENT,name text) ;");
db.execSQL("insert into person values('1','aizizai')");
}
判斷表是否存在
public boolean IsTabExists(SQLiteDatabase db, String tabName) {
boolean result = false;
if (tabName == null) {
return false;
}
Cursor cursor = null;
try {
String sql = "select count(*) as c from sqlite_master where type ='table' and name ='"
+ tabName.trim() + "' ";
cursor = db.rawQuery(sql, null);
if (cursor.moveToNext()) {
int count = cursor.getInt(0);
if (count > 0) {
result = true;
}
}
} catch (Exception e) {
// TODO: handle exception
}
return result;
}
插入資料
db.execSQL("update person set name='" + str + "'where _id = '1'");
擷取資料
Cursor cursor = db.rawQuery("select name from person where _id='1'", null);
cursor.moveToFirst();// 遊标一定要先執行一下。不然實在-1
textView.setText(cursor.getString(0));