【MySQL】查看库表信息

  • Post author:
  • Post category:mysql



目录





1. 数据库



1.1. MySQL自带数据库

  1. 概述

    1. information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。
    2. 其中 performance_schema 用于性能分析,
    3. 而 information_schema 用于存储数据库元数据(关于数据的数据),例如数据库名、表名、列的数据类型、访问权限等。



1.1.1. information_schema

  1. 概述

    1. 在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。
    2. 其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。
    3. 在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
  2. 查看指定数据库中表的个数

    use information_schema;
    
    -- 指定 databaseName
    select table_name,table_rows from information_schema.TABLES 
      where TABLE_SCHEMA = 'databaseName' order by table_rows desc;
    
    SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='databaseName'; 
    --查看数据库中表的信息
    SELECT TABLE_NAME,DATA_LENGTH,INDEX_LENGTH,(DATA_LENGTH+INDEX_LENGTH) as length,TABLE_ROWS,
      concat(round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,3), 'MB') as total_size 
      FROM information_schema.TABLES WHERE TABLE_SCHEMA='database_name' order by length desc;
    
  3. 表信息

    STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。
    
    USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。
    SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表;
    TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。
    COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。
    TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。
    KEY_COLUMN_USAGE表:描述了具有约束的键列。
    


参考:


  1. MySQL中information_schema是什么

    –所包含的各种表信息;

  2. MySQL 中的 information_schema 数据库



1.2. 自建数据库


# 通配符查看数据库
show databases like 'foo%';



参考:


  1. Hive笔记之数据库操作

    –参考Hive



2. 表的数据统计



2.1. 查看 列

  1. 语句信息

    --查看列
    show columns from schemaname.tablename;
    --查看索引
    show index from schemaname.tablename
    
    
    
    


参考:




2.2. 列统计

  1. distinct 功能
--单字段 去重
select distinct name from A
--多个字段
select distinct name, id from A
--统计去重
select count(distinct name) from A;	  --表中name去重后的数目, SQL Server支持,而Access不支持
--统计符合查询条件的数目
select count(*) from (select distinct xing, name from B) AS M;


参考:


  1. SQL中distinct的用法



版权声明:本文为baidu_34170531原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。