首页 > 文章列表 > MySQL关于查找模式对象的语句

MySQL关于查找模式对象的语句

mysql
251 2023-04-12

在日常工作中,搜索特定的数据库对象,是最常见的一个工作,下面分享几个关于mysql模式查找的语句。

1. 在 MySQL 数据库中查找名称中包含数字的表

select table_schema as database_name,
    table_name
from information_schema.tables
where table_type = 'BASE TABLE'
    and table_name rlike ('[0-9]')
order by table_schema,
    table_name;

说明:

database_name - 找到表的数据库(模式)的名称table_name - 找到的表的名称

DBA技术分享(十二)- Mysql关于查找模式对象的语句

2. 在 MySQL 数据库中查找关于特定列名的表

select tab.table_schema as database_name,
    tab.table_name
from information_schema.tables as tab
inner join information_schema.columns as col
        on col.table_schema = tab.table_schema
            and col.table_name = tab.table_name
where tab.table_type = 'BASE TABLE'
        and column_name = 'idcity'
order by tab.table_schema,
         tab.table_name;

说明:

database_name - 找到表的数据库(模式)的名称table_name - 找到的表的名称

DBA技术分享(十二)- Mysql关于查找模式对象的语句

3. 在 MySQL 数据库中查找没有特定名称的列的表

select tab.table_schema as database_name,
       tab.table_name
from information_schema.tables tab
left join information_schema.columns col
          on tab.table_schema = col.table_schema
          and tab.table_name = col.table_name
          and col.column_name = 'id'    -- put column name here
where tab.table_schema not in ('information_schema', 'mysql',
                           'performance_schema', 'sys')
      and tab.table_type = 'BASE TABLE'
      and col.column_name is null
order by tab.table_schema,
         tab.table_name;

说明:

database_name - 找到的表的数据库(模式)名称table_name - 找到的表的名称​