MySQL数据库中查询数据库表、字段总数量,查询数据总量

时间:2023-12-14 21:27:44

  最近要查询一些数据库的基本情况,由于以前用oracle数据库比较多,现在换了MySQL数据库,就整理了一部分语句记录下来。

  1、查询数据库表数量

 #查询MySQL服务中数据库表数据量
SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES GROUP BY table_schema;
#查询指定数据库表数量
SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'szdb'

  2、查询数据库字段

 #查询一个表中有多少字段
SELECT COUNT(*) FROM information_schema. COLUMNS WHERE table_schema = 'szdb' AND table_name = 'SystemLog'; #查询一个数据库中有多少字段
SELECT COUNT(column_name) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'szdb'; #查询数据库中所以表、字段、字段类型、注释等信息
SELECT TABLE_NAME, column_name, DATA_TYPE, column_comment FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'szdb' ;

  3、查询数据库中持久化的数据量

  MySQL中有一个名为 information_schema 的数据库,在该库中有一个 TABLES 表,这个表主要字段分别:TABLE_SCHEMA : 数据库名,TABLE_NAME:表名,ENGINE:所使用的存储引擎,TABLES_ROWS:记录数,DATA_LENGTH:数据大小,INDEX_LENGTH:索引大小use information_schema;统计数据主要使用的就是这张表了。

#统计数据库中每个表保存的数据量
use information_schema;
SELECT TABLE_NAME, (DATA_LENGTH/1024/1024) as DataM ,(INDEX_LENGTH/1024/1024) as IndexM,((DATA_LENGTH+INDEX_LENGTH)/1024/1024) as AllM,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA = 'szdb' #查询每张表数量
select table_name,table_rows from tables where TABLE_SCHEMA = 'szdb' order by table_rows desc; #数据库总数量
SELECT sum(table_rows) from tables where TABLE_SCHEMA = 'szdb' order by table_rows desc;

  需要查询什么信息,自己修改语句就可以了。