DBA技术分享(一)-MYSQL常用查询Databases和tables

概述

分享一下工作中常见的mysql脚本,此次分享的内容如下:

  • Databases
  • tables

一、Databases and schemas

1.1 列出了 MySQL 实例上的用户数据库(模式)

select schema_name as database_name
from information_schema.schemata
where schema_name not in('mysql','information_schema',
                         'performance_schema','sys')
order by schema_name;

说明:

  • database_name - 数据库(模式)名称

二、Tables

2.1 列出 MySQL 数据库中的表

下面的查询列出了当前或提供的数据库中的表。要列出所有用户数据库中的表

2.1.1 当前数据库

select table_schema as database_name,
    table_name
from information_schema.tables
where table_type = 'BASE TABLE'
        and table_schema = database() 
order by database_name, table_name;

说明:

  • table_schema - 数据库(模式)名称
  • table_name - 表名

2.1.2 指定数据库

select table_schema as database_name,
    table_name
from information_schema.tables
where table_type = 'BASE TABLE'
        and table_schema = 'database_name' -- enter your database name here
order by database_name, table_name;

说明:

  • table_schema - 数据库(模式)名称
  • table_name - 表名

2.2 列出 MySQL 中所有数据库的表

下面的查询列出了所有用户数据库中的所有表

select table_schema as database_name,
    table_name
from information_schema.tables
where table_type = 'BASE TABLE'
    and table_schema not in ('information_schema','mysql',
                             'performance_schema','sys')
order by database_name, table_name;

说明:

  • table_schema - 数据库(模式)名称
  • table_name - 表名

2.3 列出 MySQL 数据库中的 MyISAM 表

select table_schema as database_name,
       table_name
from information_schema.tables tab
where engine = 'MyISAM'
      and table_type = 'BASE TABLE'
      and table_schema not in ('information_schema', 'sys',
                               'performance_schema','mysql')
      -- and table_schema = 'your database name' 
order by table_schema,
         table_name;

说明:

  • database_name - 数据库(模式)名称
  • table_name - 表名

2.4 列出 MySQL 数据库中的 InnoDB 表

select table_schema as database_name,
       table_name
from information_schema.tables tab
where engine = 'InnoDB'
      and table_type = 'BASE TABLE'
      and table_schema not in ('information_schema', 'sys',
                               'performance_schema','mysql')
      -- and table_schema = 'your database name'
order by table_schema,
         table_name;

说明:

  • database_name - 数据库(模式)名称
  • table_name - 表名

2.5 识别 MySQL 数据库中的表存储引擎(模式)

select table_schema as database_name,
       table_name,
       engine
from information_schema.tables
where table_type = 'BASE TABLE'
      and table_schema not in ('information_schema','mysql',
                               'performance_schema','sys')
    -- and table_schema = 'your database name'
order by table_schema,
    table_name;

说明:

  • table_schema - 数据库(模式)名称
  • table_name - 表名
  • engine
  • - 表存储引擎。可能的值:
    • CSV
    • InnoDB
    • 记忆
    • MyISAM
    • 档案
    • 黑洞
    • MRG_MyISAM
    • 联合的

2.6 在 MySQL 数据库中查找最近创建的表

select table_schema as database_name,
       table_name,
       create_time
from information_schema.tables
where create_time > adddate(current_date,INTERVAL -60 DAY)
      and table_schema not in('information_schema', 'mysql',
                              'performance_schema','sys')
      and table_type ='BASE TABLE'
      -- and table_schema = 'your database name' 
order by create_time desc,
         table_schema;

MySQL 数据库中最近 60 天内创建的所有表,按表的创建日期(降序)和数据库名称排序

说明:

  • database_name - 表所有者,模式名称
  • table_name - 表名
  • create_time - 表的创建日期

2.7 在 MySQL 数据库中查找最近修改的表

select table_schema as database_name,
       table_name,
       update_time
from information_schema.tables tab
where update_time > (current_timestamp() - interval 30 day)
      and table_type = 'BASE TABLE'
      and table_schema not in ('information_schema', 'sys',
                               'performance_schema','mysql')
      -- and table_schema = 'your database name' 
order by update_time desc;

所有数据库(模式)中最近 30 天内最后修改的所有表,按更新时间降序排列

说明:

  • database_name - 数据库(模式)名称
  • table_name - 表名
  • update_time - 表的最后更新时间(UPDATE、INSERT 或 DELETE 操作或 MVCC 的 COMMIT)

 

 

posted @ 2022-05-26 17:30  雪竹子  阅读(452)  评论(0编辑  收藏  举报