MySQL的information_schema常用技巧

在日常数据库使用中经常统计数据库的字段、索引等信息,相比逐个查询,使用数据库基本信息表会简单起来。

知识学习
information_schema 信息数据库,存放着数据库相关信息,如表、列、索引等

1、查询表字段的信息

例如在详细设计文档中填写数据库表的信息,可使用以下SQL

SELECT 
    column_comment as 数据元素,
    COlumn_type as 数据类型,
    CASE
        WHEN is_nullable = 'YES' THEN '是'
        ELSE '否'
    END as 是否必填
FROM
    information_schema.columns
WHERE
    table_name = 'tb_order';

查询结果如下图所示。
在这里插入图片描述
实现效果类似于 desc tb_order,结果如下图所示。
在这里插入图片描述

查询数据库的所有字段,可使用以下SQL。

SELECT 
    GROUP_CONCAT(COLUMN_name) as allColumn
FROM
    columns
WHERE
    table_name = 'tb_order';

查询结果如下图所示。
在这里插入图片描述

2、查询数据库表的信息

查看数据库包含哪些表,如cloud-order库包含的表,执行一下SQL。

SELECT
	table_name
FROM
	information_schema. TABLES
WHERE
	table_schema = 'cloud-order';

执行结果如下图所示。
在这里插入图片描述

写在这里

最近在做个数据库配置SQL的功能,直接执行配置的SQL语句。功能相对比较简单,设计的比较灵活,但数据库安全是要考虑好的,只能容许执行select查询操作,要对SQL语句进行一定的校验,防止出现SQL注入等问题。
对 drop、trancate、alter、user、database等敏感词要进行过滤。
这些敏感词的语句可能会影响数据库安全。

// 删除表 
drop table
// 清空表
truncate table
// 修改表
alter table add/modify column
// 查看数据库名称
select database();
.// 查看数据库版本
select version();
// 查看当前用户
select user();

猜你喜欢

转载自blog.csdn.net/u012190388/article/details/129806179