MySQL使用小技巧(information_schema表空间)

来源:这里教程网 时间:2026-03-01 15:35:29 作者:

1、查询数据库行数。

SELECT * FROM information_schema.`TABLES` a 
WHERE a.`TABLE_SCHEMA` = '数据库名' 
AND a.`TABLE_NAME` LIKE '表名______';

2、多张表的删除,修改快捷sql写法。基础语法: drop table if EXISTS 表名;

SELECT CONCAT('drop TABLE if exists ',TABLE_NAME,';') 
FROM information_schema.`TABLES` a 
WHERE a.`TABLE_SCHEMA` = '数据库名' 
AND a.`TABLE_NAME` IN ('表名1','表名2');

3、表的重命名,快速生成sql的方式。基础语法:rename table 原表名 to 新表名。

SELECT CONCAT('RENAME TABLE ',TABLE_NAME,' to ',CONCAT(TABLE_NAME,'_;')) 
FROM information_schema.`TABLES` a 
WHERE a.`TABLE_SCHEMA` = '数据库名' 
AND a.`TABLE_NAME` IN ('表名1','表名2');

4、查看碎片化的表数据,并生成收集信息的sql。基础语法:alter table xxx engine = innodb;

SELECT CONCAT('alter table ',table_name,' engine = innodb;') 
FROM information_schema.tables 
WHERE TABLE_SCHEMA = 'frontend22db'
AND data_free > 0;

5、修改字段名为可空基础语法:

ALTER TABLE 表名 MODIFY 字段名 VARCHAR(20) DEFAULT NULL;
-- 查询语句,批量生成
SELECT CONCAT('alter table ',table_name,' modify ',column_name,' ',
column_type,' DEFAULT NULL;') 
FROM information_schema.`COLUMNS`
WHERE TABLE_SCHEMA = 'frontend22db'
AND is_nullable = 'YES';

相关推荐