1. 程式人生 > >sqlite查詢庫裡所有表名

sqlite查詢庫裡所有表名

每一個 SQLite 資料庫都有一個叫 SQLITE_MASTER 的表, 裡面儲存著資料庫的資料結構(表結構、檢視結構、索引結構等),只可以對他使用查詢語句

SQLITE_MASTER 表DDL資訊如下:

CREATE TABLE sqlite_master (type TEXT,name TEXT,tbl_name TEXT,rootpage INTEGER,sql TEXT);  

type 型別 (如表、檢視、索引等) name 名稱 tbl_name 所屬表名稱 SQL (表、檢視、索引)的DDL語句

對於表來說,type 欄位永遠是 ‘table’,name 欄位永遠是表的名字。所以,要獲得資料庫中所有表的列表, 使用下列SELECT語句:

SELECT name FROM sqlite_master WHERE type=’tableORDER BY name;  

對於索引來說,type 等於 ‘index’, name 則是索引的名字,tbl_name 是該索引所屬的表的名字, 使用下列SELECT語句:

SELECT name FROM sqlite_master WHERE type=’indexORDER BY name;  

對於檢視來說,type 等於 ‘view’, name 則是檢視的名字,tbl_name 是該檢視所屬的表的名字, 使用下列SELECT語句:

SELECT name FROM
sqlite_master WHERE type=’viewORDER BY name;

不管是表或檢視還是索引,sql 欄位是原先用 CREATE TABLE 、CREATE VIEW 或 CREATE INDEX 語句建立它們時的命令文字。對於自動建立的索引(用來實現 PRIMARY KEY 或 UNIQUE 約束),sql欄位為NULL。

SQLITE_MASTER 表是隻讀的。不能對它使用 UPDATE、INSERT 或 DELETE。 它會被 CREATE TABLE、CREATE INDEX、DROP TABLE 和 DROP INDEX 命令自動更新。

通過以下語句可查詢出某個表的所有欄位資訊
PRAGMA table_info([tablename])

例如 PRAGMA table_info(student)

注意 PRAGMA 必須大寫

當然欄位資訊也可以從sql欄位中獲取