Azure
Azure
发布于 2024-04-16 / 6 阅读
0
0

mysql 常用内置表

表名

释义

CHARACTER_SETS

提供了 mysql 可用字符集的信息。SHOW CHARACTER SET; 命令从这个表获取结果

SCHEMATA

当前 mysql 实例中所有数据库的信息。SHOW DATABASES 命令从这个表获取数据

TABLES

存储数据库中的表信息(包括视图),包括表属于哪个数据库,表的类型、存储引擎、创建时间等信息,SHOW TABLES FROM XX; 命令从这个表获取结果

COLUMNS

存储表中的列信息,包括表有多少列、每个列的类型等。SHOW COLUMNS FROM schemaname.tablename/desc命令从这个表获取结果

STATISTICS

表索引的信息。SHOW INDEX FROM schemaname.tablename; 命令从这个表获取结果

USER_PRIVILEGES

用户权限表。内容源自 mysql.user 授权表。是非标准表

SCHEMA_PRIVILEGES

方案权限表。给出了关于方案(数据库)权限的信息。内容来自 mysql.db 授权表。是非标准表

TABLE_PRIVILEGES

表权限表。给出了关于表权限的信息。内容源自 mysql.tables_priv 授权表。是非标准表

COLUMN_PRIVILEGES

列权限表。给出了关于列权限的信息。内容源自 mysql.columns_priv 授权表。是非标准表

COLLATIONS

提供了关于各字符集的对照信息。SHOW COLLATION;命令从这个表获取结果

COLLATION_CHARACTER_SET_APPLICABILITY

指明了可用于校对的字符集。相当于 SHOW COLLATION 命令结果的前两个字段

TABLE_CONSTRAINTS

描述了存在约束的表。以及表的约束类型

KEY_COLUMN_USAGE

描述了具有约束的键列

ROUTINES

提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES 表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于 INFORMATION_SCHEMA.ROUTINES 表的 mysql.proc 列

VIEWS

给出了关于数据库中的视图的信息。需要有 show views 权限,否则无法查看视图信息

TRIGGERS

提供了关于触发程序的信息。必须有 super 权限才能查看该表

  • 查询数据库中所有表名

SELECT 
  table_name 
FROM
  information_schema.tables 
WHERE table_schema = 'csdb' 
  AND table_type = 'base table' ;
  • 获取表字段信息

select
  COLUMN_NAME `FIELD`,
  data_type `TYPE`,
  ifnull(
    CHARACTER_MAXIMUM_LENGTH,
    concat(
      NUMERIC_PRECISION,
      if(
        NUMERIC_SCALE = 0,
        '',
        concat(',', NUMERIC_SCALE)
      )
    )
  ) `LENGTH`,
  if (IS_NULLABLE = 'YES', '是', '否') NULLABLE,
  COLUMN_COMMENT `COMMENTS`,
  if (COLUMN_KEY = 'PRI', '是', '否') PRIMARYKEY,
  column_default `DEFAULT`from
  INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'table_name' ;

-- 备用SELECT
    t.table_name     AS                                                               表名
  , t2.table_comment AS                                                               表注释
  , t.column_name                                                                     字段名
  , IF(t.data_type IN ('date', 'datetime', 'mediumtext', 'longtext'), t.data_type, CONCAT(
        t.data_type,
        '(',
        IFNULL(
                t.character_maximum_length,
                CONCAT(t.numeric_precision, IF(t.numeric_scale = 0, '', CONCAT(',', t.numeric_scale)))
        ),
        ')'
                                                                                   )) 字段类型
  , t.column_comment                                                                  字段注释
--   , t.data_type--   , t.character_maximum_length--   , t.numeric_precision--   , t.numeric_scaleFROM information_schema.columns t
     LEFT JOIN information_schema.tables t2
     ON t.table_name = t2.table_name
         AND t2.table_schema = 'drgdb'
         AND t2.table_type = 'base table'WHERE t.table_name IN ('control_kc24');


  • 获取索引信息

select
  TABLE_NAME as '表名',
  INDEX_NAME as '索引名',
  (
    case
      NON_UNIQUE
      when 0
      then '否'
      when 1
      then '是'
      else ''
    end
  ) as '是否唯一索引',
  (
    case
      when count(COLUMN_NAME) > 1
      then '是'
      else '否'
    end
  ) as '是否组合索引',
  group_concat(COLUMN_NAME) as '索引字段'from
  information_schema.statistics
where table_schema = 'db_name'group by TABLE_NAME,
  INDEX_NAME ;


评论