sqlite 查询数据库中所有的表名,判断某表是否存在,将某列所有数值去重后获得数量

 1、列出当前db文件中所有的表的表名

SQL语句:SELECT * FROM sqlite_master WHERE type='table';

结构如下:


注:网上有人说可以带上db文件的名称,如:SELECT * FROM dbname.sqlite_master WHERE type='table'; 但我试了不行。。。难道我姿势不对~

2、判断某表是否存在
SQL语句:select count(*) from sqlite_master where type='table' and name='表名'
如果返回的数量大于0,表名该表存在

3、将某列所有数值去重后获得数量
SQL语句:SELECT COUNT (DISTINCT 列名) FROM 表名
前提是该表必须存在。

 ------------------------------------------------------------------------- -------------------------------------------------------------------------


每条CREATE TABLE语句的文本都储存在 sqlite_master 表中。

每当数据库被打开,所有的CREATE TABLE语句从 sqlite_master 表中读出,构成表结构的SQLite内部实现。

若原始命令为CREATE TABLE AS则合成出等效的 CREATE TABLE语句并储存于sqlite_master 表中代替原命令。

CREATE TEMPORARY TABLE语句文本储存于 sqlite_temp_master 表中。





原文地址:https://www.cnblogs.com/pjl1119/p/7246221.html