在日常数据库使用中经常统计数据库的字段、索引等信息,相比逐个查询,使用数据库基本信息表会简单起来。
知识学习
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();