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

时间:2023-03-09 17:44:26
sqlite 查询数据库中所有的表名,判断某表是否存在,将某列所有数值去重后获得数量

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

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

结构如下:
sqlite 查询数据库中所有的表名,判断某表是否存在,将某列所有数值去重后获得数量
注:网上有人说可以带上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 表中。