MySQL技巧系列之《未经证实的葵花宝典》:一篇可以当饭吃的MySQL文章,值得收藏

MySQL技巧系列之《未经证实的葵花宝典》:一篇可以当饭吃的MySQL文章,值得收藏

如何找东西:找表,找字段,找存储过程,找触发器,找事件。如何生成数据结构表(字典表)?
在这里插入图片描述
一篇可以当饭吃的MySQL文章,值得收藏!
如何找东西:找表,找字段,找存储过程,找触发器,找事件。如何生成数据结构表(字典表)

依然以下表为测试用例。
CREATE TABLE my_test_table (
auto_id INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘流水ID’,
dh VARCHAR(50) DEFAULT NULL COMMENT ‘单号’,
amt_type VARCHAR(20) DEFAULT NULL COMMENT ‘费用类型’,
amt DECIMAL(13,2) DEFAULT NULL COMMENT ‘金额’,
PRIMARY KEY (auto_id)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT=‘我的测试用表’

– 知道表描述 ‘我的测试用表’ 找是什么表名?
SELECT TABLE_SCHEMA 库名, TABLE_NAME 表名, TABLE_COMMENT 表描述 FROM information_schema.TABLES WHERE TABLE_COMMENT = ‘我的测试用表’;

– 知道表名 my_test_table 找字段?
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_NAME = ‘my_test_table’;
– 知道字段“dh”,找字段在什么表里?
SELECT TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ‘你的数据库名’ AND COLUMN_NAME = ‘dh’ ORDER BY TABLE_NAME;
SELECT TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ‘你的数据库名’ AND COLUMN_NAME LIKE ‘%dh%’ ORDER BY TABLE_NAME;
– 知道备注“单号”,找字段?找表?
SELECT TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ‘你的数据库名’ AND COLUMN_COMMENT = ‘单号’ ORDER BY TABLE_NAME;
SELECT TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ‘你的数据库名’ AND COLUMN_COMMENT LIKE ‘%单号%’ ORDER BY TABLE_NAME;

– 知道表名 my_test_table 找用在什么存储过程中?
SELECT SPECIFIC_NAME FROM information_schema.ROUTINES WHERE ROUTINE_DEFINITION LIKE ‘%my_test_table%’;
SELECT SPECIFIC_NAME FROM information_schema.ROUTINES WHERE ROUTINE_DEFINITION LIKE ‘%什么内容都可以%’;
– 知道表名 my_test_table 找用在什么函数中(与找存储过程相同)?
SELECT SPECIFIC_NAME FROM information_schema.ROUTINES WHERE ROUTINE_DEFINITION LIKE ‘%my_test_table%’;

– 知道表名 my_test_table 找它有什么触发器?
SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION FROM information_schema.TRIGGERS WHERE event_object_table = ‘my_test_table’;

– 知道表名或者存储过程名,找它用在什么"事件"中?
SELECT EVENT_SCHEMA, EVENT_NAME FROM information_schema.EVENTS WHERE EVENT_DEFINITION LIKE ‘%pr_test%’;
SELECT EVENT_SCHEMA, EVENT_NAME FROM information_schema.EVENTS WHERE EVENT_DEFINITION LIKE ‘%什么内容都可以%’;

– 生成数据结构表(字典表)
SELECT TABLE_NAME 表名, COLUMN_NAME 字段名, COLUMN_TYPE 类型, IS_NULLABLE 是否允许空, COLUMN_KEY 主键, IF(EXTRA=‘AUTO_INCREMENT’, ‘自增’, ‘’) 自增, COLUMN_COMMENT 字段说明
FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ‘你的数据库名’ AND TABLE_NAME = ‘my_test_table’
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
妙!高!实在是高!
一篇可以当饭吃的MySQL文章,值得收藏!

总结:灵活应用MySQL内置的系统库information_schema,可以找到好多东西:找表,找字段,找存储过程,找触发器,找事件。还可以生成数据结构表(字典表)。一篇好文章可以当饭吃,值得收藏!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值