生成数据库结构字段SQL语句

获取表名数据

SELECT
	TABLE_NAME 表名 ,
	TABLE_COMMENT 表注释
FROM
	INFORMATION_SCHEMA.`TABLES` 
WHERE
	table_schema = '数据库名' 
ORDER BY
	table_name ;

获取表字段数据

SELECT
	table_name 表名,
	COLUMN_NAME 列名,
	COLUMN_COMMENT 备注,
	COLUMN_TYPE 数据类型,
	DATA_TYPE 字段类型,
	CHARACTER_MAXIMUM_LENGTH 长度,
	IS_NULLABLE 是否必填
FROM
	INFORMATION_SCHEMA.`COLUMNS` 
WHERE
	table_schema = '数据库名' 
ORDER BY
	table_name

表字段改大写为小写(LOWER),小写改为大写(UPPER)

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 = '表名';

关联查询表名和列数据

SELECT DISTINCT
	sc.table_name 表名,
	st.TABLE_COMMENT 表备注
-- 	,
-- 	sc.COLUMN_NAME 列名,
-- 	sc.COLUMN_COMMENT 备注,
-- 	sc.COLUMN_TYPE 数据类型,
-- 	sc.DATA_TYPE 字段类型,
-- 	sc.CHARACTER_MAXIMUM_LENGTH 长度,
-- 	sc.IS_NULLABLE 是否必填 
FROM
	INFORMATION_SCHEMA.`COLUMNS` sc
	INNER JOIN INFORMATION_SCHEMA.TABLES st ON sc.table_name = st.TABLE_NAME 
WHERE
	sc.table_schema = '数据库名' 
	AND sc.COLUMN_NAME IN ( 'xxx', 'xxx' ) 
	AND sc.table_name NOT IN ( 'xxx', 'xxx' ) 
ORDER BY
	sc.table_name;
	
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_COMMENT 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = '数据库名';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值