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主从复制及读写分离
May 07 MySQL
MySQL中VARCHAR与CHAR格式数据的区别
May 26 MySQL
MySQL中distinct与group by之间的性能进行比较
May 26 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
MySQL修改默认引擎和字符集详情
Sep 25 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
解析MySQL索引的作用
Mar 03 MySQL
MySQL学习必备条件查询数据
Mar 25 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL中EXPLAIN语句及用法
May 20 MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 14 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如何抛出异常处理错误
2011/03/02 PHP
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
vue ssr 指南详读
2018/06/29 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
详解React 元素渲染
2020/07/07 Javascript
Python3模拟curl发送post请求操作示例
2019/05/03 Python
django实现类似触发器的功能
2019/11/15 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
初中英语演讲稿
2014/04/29 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
安全生产大检查方案
2014/05/07 职场文书
机电系毕业生求职信
2014/07/11 职场文书
加强作风建设心得体会
2014/10/22 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
nginx优化的六点方法
2021/03/31 Servers
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server