MySQL中,把information_schema看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。TABLES表:提供了关于数据库中的表的信息(包括视图)。

#MySQL查看当前数据库中所有表
SELECT
    concat('SELECT COUNT(*) FROM ',table_name,' ;' ) AS cnts
FROM
    information_schema.TABLES 
WHERE
    table_schema = (SELECT DATABASE())

SQLite中,sqlite_master表是SQLite的系统表。==该表记录该数据库==中保存的表、索引、视图、和触发器信息。每一行记录一个项目。在创建一个SQLIte数据库的时候,该表会自动创建。sqlite_master表包含5列。

  • type列记录了项目的类型,如table、index、view、trigger。
  • name列记录了项目的名称,如表名、索引名等。
  • tbl_name列记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身。
  • rootpage列记录项目在数据库页中存储的编号。对于视图和触发器,该列值为0或者NULL。
  • sql列记录创建该项目的SQL语句
--SQLite查看当前数据库中所有表
select "select count(*) from "||name||";" as cnts 
from sqlite_master
where type='table'