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之DML语言
Apr 05 MySQL
数据库连接池
Apr 06 MySQL
mysql的MVCC多版本并发控制的实现
Apr 14 MySQL
MySQL kill不掉线程的原因
May 07 MySQL
MySQL表字段时间设置默认值
May 13 MySQL
MySQL 隔离数据列和前缀索引的使用总结
May 14 MySQL
MySQL注入基础练习
May 30 MySQL
mysql联合索引的使用规则
Jun 23 MySQL
MySQL系列之十二 备份与恢复
Jul 02 MySQL
MySQL创建管理LIST分区
Apr 13 MySQL
MySQL 计算连续登录天数
May 11 MySQL
jdbc中自带MySQL 连接池实践示例
Jul 23 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
PHP 输出简单动态WAP页面
2009/06/09 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
用Python实现最速下降法求极值的方法
2019/07/10 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
Python实现异步IO的示例
2020/11/05 Python
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
盛大二次面试题
2016/11/18 面试题
2015年安全教育月活动总结
2015/03/26 职场文书
自荐信模板大全
2015/03/27 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript