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 24 MySQL
mysql 8.0.24 安装配置方法图文教程
May 12 MySQL
MySQL数据库压缩版本安装与配置详细教程
May 21 MySQL
mysql 带多个条件的查询方式
Jun 05 MySQL
详解MySQL中的pid与socket
Jun 15 MySQL
QT连接MYSQL数据库的详细步骤
Jul 07 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
MySQL读取JSON转换的方式
Mar 18 MySQL
进阶篇之linux环境下安装MySQL数据库
Apr 09 MySQL
MySQL的prepare使用以及遇到的bug
May 11 MySQL
MySQL sql模式设置引起的问题
May 15 MySQL
MySQL GTID复制的具体使用
May 20 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
给ECShop添加最新评论
2015/01/07 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
Vue通过input筛选数据
2020/10/26 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
python实现爬虫下载漫画示例
2014/02/16 Python
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
python 重定向获取真实url的方法
2018/05/11 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
培训主管的岗位职责
2013/11/23 职场文书
化学教师教学反思
2014/01/17 职场文书
个人求职自荐信范文
2015/03/06 职场文书
2015年材料员工作总结
2015/04/30 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP