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 如何批量插入数据
Apr 06 MySQL
MySQL下使用Inplace和Online方式创建索引的教程
May 26 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
SQL优化老出错,那是你没弄明白MySQL解释计划用法
Nov 27 MySQL
MySQL多表查询机制
Mar 17 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
Mysql中@和@@符号的详细使用指南
Jun 05 MySQL
MySQL控制流函数(-if ,elseif,else,case...when)
Jul 07 MySQL
分享很少见很有用的SQL功能CORRESPONDING
Aug 05 MySQL
MySQL常用慢查询分析工具详解
Aug 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中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
javascript 写类方式之八
2009/07/05 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
Vue指令指令大全
2019/02/09 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
Python进程间通信用法实例
2015/06/04 Python
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
证婚人搞笑证婚词
2014/01/10 职场文书
酒店经理职责
2014/01/30 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
招标承诺书
2014/08/30 职场文书
高中学校对照检查材料
2014/08/31 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
导游词之北京明十三陵
2019/10/28 职场文书