from:https://blog.csdn.net/daxueba/article/details/70142870
1、sqlite_master表
sqlite_master表是SQLite的系统表。 该表记录该数据库中保存的表、索引、视图、和触发器信息。每一行记录一个项目。在创建一个SQLIte数据库的时候,该表会自动创建。sqlite_master表包含5列。
type列
记录了项目的类型,如table、index、view、trigger。
name列
记录了项目的名称,如表名、索引名等。
tbl_name列
记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身。
rootpage列
记录项目在数据库页中存储的编号。对于视图和触发器,该列值为0或者NULL。
sql列
记录创建该项目的SQL语句。
2、应用
由于sqlite_master表存储所有的数据库项目,所以可以通过该表判断特定的表、视图或者索引是否存在。例如,以下语句可以判断user表是否存在。
select count(*) from sqlite_master where name='user' and type='table'`
1.查询表信息
如果要查询表的信息,则type字段为“table”,name字段为表的名称,返回结果中返回的sql字段,为创建此表的sql语句。
select * from sqlite_master where type=’table’ and name=‘表名’;
2.查询索引信息
如果要查询索引信息,则type字段为“index”,name字段为索引名称,返回结果中的tbl_name字段为该索引所属的表,sql字段为创建此索引的sql语句。
select * from sqlite_master where type=’index’ and name=‘索引名’;