mysql查看表结构的三种方法总结


Posted in MySQL onJuly 07, 2022

mysql查看表结构

1. show create table

show create table 表名称

这个语句每次本能想出的,语义好记,可以直接查看建表语句,但不便于代码处理。

2. desc

desc 表名称

这个语句简单易用,可以获取到 COLUMNS 中的比较重要的字段:名称、类型、是否为空、键、默认值、额外信息。但无法获取字段的注释。

3. information_schema.COLUMNS

select * from information_schema.COLUMNS where TABLE_SCHEMA = '库名称' and TABLE_NAME = '表名称'

相对show create table而言,相对简单,信息全面,可以查询出来字段的名称、类型、键、权限、注释和其他信息。为了获取字段名称,故我脚本中使用这个作为获取表结构的方法。

附:information_schema.COLUMNS字段和含义

字段名称及含义

  • TABLE_CATALOG表类型(没搞懂干啥用?)
  • TABLE_SCHEMA所属库名称
  • TABLE_NAME表名称
  • COLUMN_NAME字段名称
  • ORDINAL_POSITION位置序号
  • COLUMN_DEFAULT默认值
  • IS_NULLABLE是否可为空
  • DATA_TYPE数据类型
  • CHARACTER_MAXIMUM_LENGTH字符串最大长度(数值类型为空)
  • CHARACTER_OCTET_LENGTH字符串最大存储长度(一般与上一字段相同)
  • NUMERIC_PRECISION数值精度(非数值类型为空)
  • NUMERIC_SCALE数值小数位数(非数值类型为空)
  • DATETIME_PRECISION日期精度
  • CHARACTER_SET_NAME编码方式
  • COLLATION_NAME排序方式
  • COLUMN_TYPE字段类型
  • COLUMN_KEY字段涉及的key(主键、唯一键等)
  • EXTRA其他(如 auto_increment)
  • PRIVILEGES权限
  • COLUMN_COMMENT字段注释
  • GENERATION_EXPRESSION代表达式(没搞懂,mysql可以表继承?)

获取所有的表结构及备注

根据库名导出所有表信息

SELECT
    *
FROM
    information_schema.`TABLES`
WHERE
    TABLE_SCHEMA = 'db_name'

根据库名导出所有表名及表备注

SELECT
    TABLE_NAME,
    TABLE_COMMENT
FROM
    information_schema.`TABLES`
WHERE
    TABLE_SCHEMA = 'db_name';

mysql获取整个库的所有表,及表结构

SELECT
    TABLE_SCHEMA AS '库名',
    TABLE_NAME AS '表名',
    COLUMN_NAME AS '列名',
    ORDINAL_POSITION AS '列的排列顺序',
    COLUMN_DEFAULT AS '默认值',
    IS_NULLABLE AS '是否为空',
    DATA_TYPE AS '数据类型',
    CHARACTER_MAXIMUM_LENGTH AS '字符最大长度',
    NUMERIC_PRECISION AS '数值精度(最大位数)',
    NUMERIC_SCALE AS '小数精度',
    COLUMN_TYPE AS '列类型',
    COLUMN_KEY 'KEY',
    EXTRA AS '额外说明',
    COLUMN_COMMENT AS '注释'
FROM
    information_schema.`COLUMNS`
WHERE
    TABLE_SCHEMA = 'db_name'
ORDER BY
    TABLE_NAME,
    ORDINAL_POSITION;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。


Tags in this post...

MySQL 相关文章推荐
MySQL慢查询的坑
Apr 28 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
52条SQL语句教你性能优化
May 25 MySQL
MySQL查看表和清空表的常用命令总结
May 26 MySQL
mysql5.7使用binlog 恢复数据的方法
Jun 03 MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 MySQL
mysql备份策略的实现(全量备份+增量备份)
Jul 07 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
优化Mysql查询的示例
Apr 26 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
MySQL串行化隔离级别(间隙锁实现)
Jun 16 MySQL
MySQL中正则表达式(REGEXP)使用详解
MySQL实现字段分割一行转多行的示例代码
MySQL控制流函数(-if ,elseif,else,case...when)
Jul 07 #MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 #MySQL
mysql全面解析json/数组
Jul 07 #MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
MySQL外键约束(Foreign Key)案例详解
Jun 28 #MySQL
You might like
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
php 数组元素快速去重
2017/05/05 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
js opener的使用详解
2014/01/11 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python中日期和时间格式化输出的方法小结
2015/03/19 Python
python数据结构之链表的实例讲解
2017/07/25 Python
python机器学习之贝叶斯分类
2018/03/26 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
2014年工程师工作总结
2014/11/25 职场文书
单位租房协议书范本
2014/12/04 职场文书
个人党性分析材料
2014/12/19 职场文书
校长个人总结
2015/03/03 职场文书
会议主持人开场白台词
2015/05/28 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
Python集合set()使用的方法详解
2022/03/18 Python