SQLite sqlite_master

一 简述

  1. 每一个 SQLite 数据库都有一个叫 sqlite_master 的表,该表会自动创建。
  2. sqlite_master是一个特殊表, 存储数据库的元信息, 如表(table), 索引(index), 视图(view), 触发器(trigger), 可通过select查询相关信息。

二 表结构

  1. 基本信息
PRAGMA  table_info(sqlite_master) 
  • 结果如下:
cid name type notnull dflt_value pk
0 type text 0 (null) 0
1 name text 0 (null) 0
2 tbl_name text 0 (null) 0
3 rootpage int 0 (null) 0
4 sql text 0 (null) 0
  1. 字段说明
字段 意义
type 记录项目的类型,如table、index、view、trigger
name 记录项目的名称,如表名、索引名等
tbl_name 记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身
rootpage 记录项目在数据库页中存储的编号。对于视图和触发器,该列值为0或者NULL
sql 记录创建该项目的SQL语句

三 举例

  1. 查表
select name from sqlite_master where type = 'table' order by name; 

SQLite sqlite_master_第1张图片

  1. 查所有
select * from sqlite_master;

SQLite sqlite_master_第2张图片

四 说明

  1. 可通过sqlite_master表判断特定的表、视图或者索引是否存在。
select count(*) from sqlite_master where type = 'table' and name = 'reply';// 1
  1. sqlite_temp_master专门用来存储临时表的信息,此表和sqlite_master表的结构一致。

你可能感兴趣的:(DB,sqlite_master)