sqlite的系统表sqlite_master

转载 2012年07月31日 09:27:12
SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式。 SQLITE_MASTER 表看起来如下:

CREATE TABLE sqlite_master ( 
type TEXT, 
name TEXT, 
tbl_name TEXT, 
rootpage INTEGER, 
sql TEXT 
); 
对于表来说,type 字段永远是 ‘table’,name 字段永远是表的名字。所以,要获得数据库中所有表的列表, 使用下列SELECT语句:

SELECT name FROM sqlite_master 
WHERE type=’table’ 
ORDER BY name; 
对于索引,type 等于 ‘index’, name 则是索引的名字,tbl_name 是该索引所属的表的名字。 不管是表还是索引,sql 字段是原先用 CREATE TABLE 或 CREATE INDEX 语句创建它们时的命令文本。对于自动创建的索引(用来实现 PRIMARY KEY 或 UNIQUE 约束),sql字段为NULL。

SQLITE_MASTER 表是只读的。不能对它使用 UPDATE、INSERT 或 DELETE。 它会被 CREATE TABLE、CREATE INDEX、DROP TABLE 和 DROP INDEX 命令自动更新。

临时表不会出现在 SQLITE_MASTER 表中。临时表及其索引和触发器存放在另外一个叫 SQLITE_TEMP_MASTER 的表中。SQLITE_TEMP_MASTER 跟 SQLITE_MASTER 差不多, 但它只是对于创建那些临时表的应用可见。如果要获得所有表的列表, 不管是永久的还是临时的,可以使用类似下面的命令:

SELECT name FROM 
(SELECT * FROM sqlite_master UNION ALL 
SELECT * FROM sqlite_temp_master) 
WHERE type=’table’ 
ORDER BY name

SQLite内置表SQLITE_MASTER

一、概述 1.SQLite数据库中有一个内置表,名为SQLITE_MASTER,此表中存储着当前数据库中所有表的相关信息,比如表的名称、用于创建此表的sql语句、索引、索引所属的表、创建索引的s...
  • jingcheng345413
  • jingcheng345413
  • 2017-04-13 10:45:00
  • 1814

Android开发中的sqlite_master

回家再写。。。。。。
  • wl455624651
  • wl455624651
  • 2014-12-04 12:00:49
  • 1277

sqlite的系统表sqlite_master

SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的...
  • xingfeng0501
  • xingfeng0501
  • 2012-07-31 09:27:12
  • 16392

sqlite的系统表sqlite_master介绍

SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的...
  • zhaohansk
  • zhaohansk
  • 2015-09-03 21:10:21
  • 1339

sqlite查看所有表名及字段名,及判断是否存在的方法

sqlite查看所有表名及字段名,及判断是否存在的方法
  • aflyeaglenku
  • aflyeaglenku
  • 2016-03-14 11:27:05
  • 15898

SQLITE删除表中所有数据方法

有两种方式: 执行sql语句  db.execSQL("delete from table"); 调用delete方法  db.delete(table,null,null);...
  • rongwenbin
  • rongwenbin
  • 2015-11-19 09:51:18
  • 6460

sqlite查看所有表名、判断表是否存在,字段名及字段信息

sqlite查看所有表名及字段名 查询table,type 段是'table',name段是table的名字, select name from sqlite_master where type...
  • zxwangyun
  • zxwangyun
  • 2015-11-04 17:11:31
  • 5508

SQLite数据库中系统表介绍及应用相关

作者:Val        首先使用sqlite manager工具将课堂实验中建立的数据库people.db打开,观察其结构。sqlite-manager是firefox上的一个插件,用来...
  • pku_android
  • pku_android
  • 2012-04-04 22:24:00
  • 5283

Sqlite全面学习(三)

SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中。目前在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能...
  • yanbober
  • yanbober
  • 2015-05-11 11:08:39
  • 13110

Sqlite中判断表、字段是否存在的方法

sqlite会自动维护一个系统表sqlite_master,该表存储了我们所创建的各个table, view, trigger等等信息。 sqlite_master表数据字段: type:...
  • wuyou1336
  • wuyou1336
  • 2016-12-20 22:56:30
  • 10067
收藏助手
不良信息举报
您举报文章:sqlite的系统表sqlite_master
举报原因:
原因补充:

(最多只允许输入30个字)