在日常工作中,搜索特定的数据库对象,是最常见的一个工作,下面分享几个关于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 - 找到的表的名称
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 - 找到的表的名称
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 - 找到的表的名称