android操作Sqlite数据库

2023-10-10 16:11:49 浏览数 (1)

打开数据库

代码语言:javascript复制
 File file=new File(getContext().getExternalFilesDir(null),"learn.db");
 SQLiteDatabase database=SQLiteDatabase.openOrCreateDatabase(file,null);

遍历数据库中的所有表名

代码语言:javascript复制
Cursor tables=database.rawQuery("select name from sqlite_master where type='table' order by name",null);
names=new String[tables.getCount()-1];
int i=0;
while(tables.moveToNext()){
 //第一个不需要,去掉,将查询的信息保存在数组里
    if (i!=0){
         names[i-1]=tables.getString(0);
     }
        i  ;
      }
     tables.close();

选取特定记录

代码语言:javascript复制
sql = "select * from TableName where " 条件 " order by " 排序 " limit " 要显示多少条记录 " offset " 跳过多少条记录;

更新记录

代码语言:javascript复制
database.execSQL("UPDATE 表名 SET 字段名 = 值 WHERE ID = 6");

删除数据

代码语言:javascript复制
 database.execSQL("DELETE FROM 表名 WHERE ID = 1");

创建表

代码语言:javascript复制
database.execSQL("CREATE TABLE table_name (column1 CHAR(100),column2 CHAR(100))");

判断表是否存在,不存在就创建表

代码语言:javascript复制
database.execSQL("CREATE TABLE IF NOT EXISTS user (number CHAR(100),password CHAR(100))");

插入数据

代码语言:javascript复制
database.execSQL(String.format("INSERT INTO english (name) VALUES ("%s")",data.getString(data.getColumnIndex("firstColumnName"))));

此例子是插入文本数据

向一个表中插入另一个表的数据

代码语言:javascript复制
insert into 被插入表名 select from * where ......

查询数据、去重数据

代码语言:javascript复制
Cursor cursor=database.rawQuery(String.format("select DISTINCT name from english"),null);

技巧

随机获取一个数据

代码语言:javascript复制
SELECT * FROM table ORDER BY  RANDOM() limit 1

0 人点赞