十一、MySQL 系统表


一、INFORMATION_SCHEMA 系统表

1. 数据库

-- 当前库
SELECT DATABASE();

-- 使用 test 库
USE test;

-- 数据库
SELECT CATALOG_NAME               AS "目录名称"
     , SCHEMA_NAME                AS "数据库名"
     , DEFAULT_CHARACTER_SET_NAME AS "默认字符集名"
     , DEFAULT_COLLATION_NAME     AS "默认排序规则名"
     , SQL_PATH                   AS "SQL路径"
     , t.*
FROM INFORMATION_SCHEMA.SCHEMATA t
WHERE SCHEMA_NAME = 'test';

2. 数据表

-- 查询所有表名
SELECT t.TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES t
WHERE t.TABLE_SCHEMA = DATABASE();

-- 当前用户,所有表(`Table_in_CHNMEDICINE`)
SHOW TABLES;
SHOW CREATE TABLE `表名`

-- 数据表
SELECT TABLE_CATALOG   AS "表目录"
	 , TABLE_SCHEMA    AS "库名"
     , TABLE_NAME      AS "表名"
     , TABLE_TYPE      AS "表类型"
     , ENGINE          AS "引擎"
     , VERSION         AS "版本"
     , ROW_FORMAT      AS "行格式"
     , TABLE_ROWS      AS "行数"
     , AUTO_INCREMENT  AS "自增"
     , CREATE_TIME     AS "创建时间"
     , UPDATE_TIME     AS "修改时间"
     , TABLE_COLLATION AS "表排序"
     , TABLE_COMMENT   AS "表注释"
     , t.*
FROM INFORMATION_SCHEMA.TABLES t
WHERE TABLE_SCHEMA = 'test';

3. 数据列

-- 根据表名,查询列名和类型
SELECT t.COLUMN_NAME, t.DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS t
WHERE TABLE_SCHEMA = DATABASE() 
  AND TABLE_NAME = #{tableName}

SHOW FULL COLUMNS FROM `tableName`

-- 数据列
SELECT TABLE_CATALOG            AS "表目录"
     , TABLE_SCHEMA             AS "库名"
     , TABLE_NAME               AS "表名"
     , COLUMN_NAME              AS "列名"
     , ORDINAL_POSITION         AS "序号位置"
     , COLUMN_DEFAULT           AS "默认值"
     , IS_NULLABLE              AS "可以为空[NO|YES]"
     , DATA_TYPE                AS "数据类型"
     , CHARACTER_MAXIMUM_LENGTH AS "中文的最大长度"
     , CHARACTER_OCTET_LENGTH   AS "字符的最大长度[中文的最大长度*3]"
     , NUMERIC_PRECISION        AS "整数精度"
     , NUMERIC_SCALE            AS "小数精度"
     , DATETIME_PRECISION       AS "日期精度"
     , CHARACTER_SET_NAME       AS "字符集名称[utf8]"
     , COLLATION_NAME           AS "排序规则名[utf8_general_ci]"
     , COLUMN_TYPE              AS "列类型"
     , COLUMN_KEY               AS "列键[PRI主键]"
     , EXTRA                    AS "[auto_increment自增]"
     , PRIVILEGES               AS "权限"
     , COLUMN_COMMENT           AS "注释"
     , t.*
FROM INFORMATION_SCHEMA.COLUMNS t
WHERE TABLE_SCHEMA = 'test';

4. 约束主键

-- 根据表名,查询主键
SELECT t2.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS t
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE t2
    USING (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, TABLE_SCHEMA, TABLE_NAME)
WHERE t.CONSTRAINT_TYPE = 'PRIMARY KEY'
  AND t.TABLE_SCHEMA = DATABASE()
  AND t.TABLE_NAME = #{tableName};

4.1 约束
-- 表的约束
SELECT CONSTRAINT_CATALOG AS "约束目录"
     , CONSTRAINT_SCHEMA  AS "约束数据库"
     , CONSTRAINT_NAME    AS "约束名"
     , TABLE_SCHEMA       AS "库名"
     , TABLE_NAME         AS "表名"
     , CONSTRAINT_TYPE    AS "约束类型[PRIMARY KEY主键|UNIQUE唯一]"
     , t.*
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS t;

4.2 键列
-- 使用的键
SELECT CONSTRAINT_CATALOG            AS "约束目录"
     , CONSTRAINT_SCHEMA             AS "约束数据库"
     , CONSTRAINT_NAME               AS "约束名"
     , TABLE_CATALOG                 AS "表目录"
     , TABLE_SCHEMA                  AS "库名"
     , TABLE_NAME                    AS "表名"
     , COLUMN_NAME                   AS "列名"
     , ORDINAL_POSITION              AS "序号位置"
     , POSITION_IN_UNIQUE_CONSTRAINT AS "唯一约束中的位置"
     , REFERENCED_TABLE_SCHEMA       AS "外键库"
     , REFERENCED_TABLE_NAME         AS "外键表"
     , REFERENCED_COLUMN_NAME        AS "外键列"
     , t.*
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE t;

5. 引擎

-- 引擎
SELECT ENGINE       AS "引擎"
     , SUPPORT      AS "支持"
     , COMMENT      AS "注释"
     , TRANSACTIONS AS "事务[YES|NO]"
     , t.*
FROM INFORMATION_SCHEMA.ENGINES t;

6. 存储过程、存储函数

SELECT SPECIFIC_NAME   AS "具体名"
     , ROUTINE_CATALOG AS "目录"
     , ROUTINE_SCHEMA  AS "库名"
     , ROUTINE_NAME    AS "名称"
     , ROUTINE_TYPE    AS "类型[PROCEDURE存储过程|FUNCTION存储方法]"
     , DATA_TYPE       AS "数据类型"
     , t.*
FROM INFORMATION_SCHEMA.ROUTINES t
WHERE ROUTINE_SCHEMA = 'test';

7. 触发器

SELECT ACTION_ORDER,
       EVENT_OBJECT_TABLE,
       TRIGGER_NAME,
       EVENT_MANIPULATION,
       EVENT_OBJECT_TABLE,
       DEFINER,
       ACTION_STATEMENT,
       ACTION_TIMING
FROM information_schema.triggers
WHERE BINARY event_object_schema = 'test-db'
  AND BINARY event_object_table = 'sys_users'
ORDER BY event_object_table;

二、变量

-- 小写文件系统、小写字母表名称
SHOW VARIABLES LIKE 'lower_case_%';

-- `SQL`模式
SHOW VARIABLES LIKE 'sql_mode';

三、MySQL 查询表结构

-- `MySQL`查询表结构
SELECT IF(t2.ORDINAL_POSITION = 1, t.TABLE_NAME, '')    AS "表名"
     , IF(t2.ORDINAL_POSITION = 1, t.TABLE_COMMENT, '') AS "表注释"
     , t2.COLUMN_NAME                                   AS "列名"
     , t2.COLUMN_TYPE                                   AS "类型"
     , IF(t2.IS_NULLABLE = 'NO', t2.IS_NULLABLE, '')    AS "NULL"
     , t2.COLUMN_DEFAULT                                AS "默认值"
     , t2.COLUMN_KEY                                    AS "键"
     , t2.EXTRA                                         AS "自增"
     , t2.COLUMN_COMMENT                                AS "列注释"
FROM INFORMATION_SCHEMA.TABLES t
INNER JOIN INFORMATION_SCHEMA.COLUMNS t2 ON t2.TABLE_SCHEMA = t.TABLE_SCHEMA AND t2.TABLE_NAME = t.TABLE_NAME
WHERE t.TABLE_SCHEMA = DATABASE()
ORDER BY t.TABLE_NAME, t2.ORDINAL_POSITION;

四、字段转小写

SELECT concat('ALTER TABLE '
           , '表名'
           , ' CHANGE COLUMN '
           , COLUMN_NAME, ' '
           , LOWER(COLUMN_NAME)
           , ' '
           , COLUMN_TYPE
           , ' COMMENT '''
           , COLUMN_COMMENT
           , ''';') AS '修改脚本'
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = '数据库名'
  AND TABLE_NAME = '表名';

五、慢 SQL

-- 慢 SQL
SELECT *
FROM information_schema.processlist
WHERE user = 'root'
  AND command <> 'sleep'
ORDER BY time DESC
LIMIT 10;

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
助创cms众筹系统可以10分钟帮你打造一个和京东众筹一样的平台,包含产品众筹和公益众筹两个部分,可以直接拿去运营推广!帮助他人实现自己的梦想的同时,自己还可以从中获取高额的佣金报酬。 助创cms众筹运行环境:PHP+MYSQL+APACHE 助创cms众筹系统特色功能 一、众筹项目大厅 分为产品众筹和梦想众筹,最新,最热,不同状态筛选查看; 二、项目推荐展示 首页热门项目置顶显示,后台指定显示内容,不错盈利方式; 三、项目数据统计 后台可视化图分析,多维度筛选,来源和转化一目了然! 四、项目成功抽奖 可以设置项目类型为抽奖模式,项目成功后系统自动抽奖; 五、自定义行业分类 项目行业分类自定义,管理员可以根据需求制定平台覆盖行业; 六、详细资金日志 支付退款提现、发放筹款,随时记录,每笔业务可查询 七、短信邮件提醒 短信邮件接口整合,支付到账、项目成功等各种灵活短信通知 八、第三方快捷登录 微博、QQ、微信一键登陆、省去了繁杂的注册流程体验好 九、多渠道支付接口 支持微信、支付宝,余额支付,满足不同用户需求,更快捷 十、订单管理系统 众筹成功后自动生成订单,发货确认到货管理一应俱全! 十一、认证会员系统 会员发布项目必须要认证通过,管理员后台统一认证管理; 十二、系统消息推送 后台可以推送消息给全部会员,支持会员分类别推送; 演示站:http://zc.izhuchuang.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑士梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值