SQLITE_MASTER
sqlite数据库特有的一种表,每一个数据库都会有,它定义了数据库的模式,记录了所有表的索引,可以通过相关语句查询所有表名。
表结构如下:
CREATE TABLE sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);
查询表是否存在
select count(*) from sqlite_master where type='table' and name = '表名'
如果count大于0,则存在。
Cursor c = db.rawQuery("select count(*) from sqlite_master where type='table' and name = '你的表名", null);
if (c != null && c.getCount() > 0) {
//存在
}
查询所有表名
select name from sqlite_master where type='table' order by name
Cursor cursor = db.rawQuery("select name from sqlite_master where type='table' order by name", null);
if (cursor != null) {
while (cursor.moveToNext()) {
String tableName = cursor.getString(0);
Log.i("==TAG==", "表名 :: " + tableName);
}
cursor.close();
}
查询某个表所有字段名
Cursor c = db.query(tableName, null, null, null, null, null, null);
Cursor c = db.query(tableName, null, null, null, null, null, null);
if (c != null) {
String[] names = c.getColumnNames();
for (String name : names) {
Log.i("==TAG==", "# " + name);
}
c.close();
}
网友评论