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));