本文介绍: MySQL:想实现sql语句进行批量删除数据库或表,而引发的熬夜探究

因为在自测过程中,创建了很多数据库一个个手动删除属实有点对不起程序员这个身份,那么有没有简单sql语句操作来进行批量删除数据库呢?于是便有了本篇文章

在这里插入图片描述
上面图片是AI创作未经允许,不可商用哦!

前情提示

删库跑路需谨慎,
放弃一切亦不易。
在这里插入图片描述


思路

了解到数据库或表的信息保存在MySQL内置information_schema数据库的SCHEMATA表中,因此是否可以通过like查询information_schema中的相关表名拼接SQL,进行批量删除

实操

批量删除数据库(以前缀为 ‘test_示例

SELECT CONCAT( 'DROP DATABASE ', SCHEMA_NAME, ';')
    FROM information_schema.SCHEMATA 
        WHERE information_schema.SCHEMATA.SCHEMA_NAME LIKE 'test_%';

下图查询结果拼接好的sql,CV一下,执行即可
在这里插入图片描述

批量删除表(以前缀为 ‘df_示例

SELECT CONCAT( 'DROP TABLE ', TABLE_NAME, ';')
    FROM information_schema.TABLES
        WHERE information_schema.TABLES.TABLE_NAME LIKE 'df_%';

下图,同样查询结果拼接好的sql,CV一下,执行即可
在这里插入图片描述

这里已经实现批量删除操作,下面是引发的探究,如时间紧张可先赞后看,保持良好习惯!


MySQL 5.7 自带的四个数据库

在Mysql5.7版本自带4个数据库information_schemamysqlperformance_schemasys
在这里插入图片描述

mysql

mysql核心数据库,类似于sql server中的master表,主要负责存储数据库的用户权限设置关键字mysql自己需要使用控制管理信息。(常用的如在mysql.user表中修改root用户密码)
在这里插入图片描述

performance_schema

主要用于收集数据服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。MySQL5.7默认开启的。
在这里插入图片描述

sys

sys库所有的数据源来自:performance_schema目标是把performance_schema复杂度降低,让DBA能更好阅读这个库里的内容。让DBA更快的了解DB的运行情况。

在这里插入图片描述

information_schema

提供了访问数据库元数据方式。(元数据是关于数据数据,如数据库名、表名、列的数据类型访问权限等。有时用于表述该信息的其他术语包括“数据词典”和“系统目录”) 该位置存储有关MySQL服务器维护的所有其他数据库的信息。
在这里插入图片描述

information_schema数据库表简介

该INFORMATION_SCHEMA数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们关联文件,并且不能在它们上设置触发器。另外,没有使用该名称的数据库目录。虽然你可以选择INFORMATION_SCHEMA与一个默认的数据库USE 语句,你只能读取表的内容,不能执行 INSERT、UPDATE或 DELETE。

对于大多数INFORMATION_SCHEMA表,每个MySQL用户都有权访问它们,但只能看到表中用户具有适当访问权限对象相对应的行。在某些情况下(例如表中的ROUTINE_DEFINITION列 INFORMATION_SCHEMA ROUTINES),特权不足的用户会看到NULL。某些表具有不同的特权要求;为此,在适用的表格说明中提到了这些要求。例如,InnoDB表(名称开头的表INNODB_)需要PROCESS特权。

分表

information_schema库共计有61张表。下面仅以批量删除数据库和表涉及到分表展开简单介绍

SCHEMATA表

模式是数据库,因此 SCHEMATA表提供了有关数据库的信息。该SCHEMATA表包含以下列:

模式名称可以从该SHOW DATABASES语句中获得:

mysql> show databases likemysql;
±-----------------+
| Database (mysql) |
±-----------------+
| mysql |
±-----------------+
1 row in set (0.00 sec)
————————————————
TABLES表

该TABLES表提供有关数据库中表的信息。该TABLES表包含以下列:

参考

MySQL之自带四库之information_schema库

原文地址:https://blog.csdn.net/m0_37482190/article/details/129133090

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27360.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注