目录
1. 数据库
1.1. MySQL自带数据库
- 概述
- information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。
- 其中 performance_schema 用于性能分析,
- 而 information_schema 用于存储数据库元数据(关于数据的数据),例如数据库名、表名、列的数据类型、访问权限等。
1.1.1. information_schema
-
概述
- 在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。
- 其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。
- 在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
-
查看指定数据库中表的个数
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;
-
表信息
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.2. 自建数据库
# 通配符查看数据库
show databases like 'foo%';
参考:
- Hive笔记之数据库操作 --参考Hive
2. 表的数据统计
2.1. 查看 列
- 语句信息
--查看列 show columns from schemaname.tablename; --查看索引 show index from schemaname.tablename
参考:
2.2. 列统计
- 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;
参考: