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 05 MySQL
教你解决往mysql数据库中存入汉字报错的方法
May 06 MySQL
MySQL 数据丢失排查案例
May 08 MySQL
MySQL 查询速度慢的原因
May 25 MySQL
MySQL 百万级数据的4种查询优化方式
Jun 07 MySQL
mysq启动失败问题及场景分析
Jul 15 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
mysql分组后合并显示一个字段的多条数据方式
Jan 22 MySQL
解决MySQL Varchar 类型尾部空格的问题
Apr 06 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 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
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
电子专业推荐信范文
2013/11/18 职场文书
高分子材料与工程专业推荐信
2013/12/01 职场文书
银行工作检查书范文
2014/01/31 职场文书
小学母亲节活动方案
2014/03/14 职场文书
公司年会主持词
2014/03/22 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
委托书的格式
2014/08/01 职场文书
个人租房协议书样本
2014/10/01 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
详解JS数组方法
2021/11/20 Javascript