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
  • 1523

sqlite的系统表sqlite_master介绍

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

SQLite: sqlite_master系统表,可以判断某个表是否存在,存在哪些表

SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的...
  • xxcios
  • xxcios
  • 2013年07月26日 14:24
  • 3842

Sqlite全面学习(三)

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

sqlite系统表介绍(查询数据库中所有的表 查询表中的所有字段)

每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 里面存储着数据库的数据结构(表结构、视图结构、索引结构等),只可以对他使用查询语句 SQLITE_MASTER 表DDL信息...
  • nailsoul
  • nailsoul
  • 2015年04月11日 01:03
  • 4929

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

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

sqlite3 查看表结构

在android下通过adb shell命令可以进入sqlite3的命令行client,见:在android命令行下使用sqlite3。 如果想列出该数据库中的所有表,可: .table ...
  • zhaoweixing1989
  • zhaoweixing1989
  • 2014年02月11日 16:16
  • 12888

Android开发中关于SQLLITE数据库中SQLITE_MASTER特殊表的说明

SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的...
  • ocean20
  • ocean20
  • 2014年04月23日 13:22
  • 2139

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

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

SQLite_master查询不到数据?

今天必须写下这篇日志,这个错出得太冤枉,浪费了太多时间。 public class DiamondDataBase extends SQLiteOpenHelper { public Diamo...
  • jinggangshi
  • jinggangshi
  • 2017年12月13日 19:56
  • 34
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sqlite的系统表sqlite_master
举报原因:
原因补充:

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