最近要查询一些数据库的基本情况,由于以前用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;
需要查询什么信息,自己修改语句就可以了。