MySQL 查看表结构简单命令

一、简单描述表结构,字段类型

desc tabl_name;

显示表结构,字段类型,主键,是否为空等属性,但不显示外键。

例如:desc table_name

二、查询表中列的注释信息

select * from information_schema.columns
where table_schema = 'db' #表所在数据库
and table_name = 'tablename' ; #你要查的表

例如:

可以自动选择你需要信息

三、只查询列名和注释

select column_name, column_comment from information_schema.columns where table_schema ='db' and table_name = 'tablename' ;

例如:

四、#查看表的注释

select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename'

例如:


五、查看表生成的DDL

show create table table_name;

例如:

这个命令虽然显示起来不是太容易看, 这个不是问题可以用\G来结尾,使得结果容易阅读;该命令把创建表的DDL显示出来,于是表结构、类型,外键,备注全部显示出来了。

我比较喜欢这个命令:输入简单,显示结果全面。

补充一些可能用到的命令:

建表命令:

CREATE TABLE `t_sold_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`dt` date DEFAULT NULL COMMENT '日期',
`hour` tinyint(2) DEFAULT '0' COMMENT '小时',
`hour_order` int(11) DEFAULT '0' COMMENT '小时订单数',
`total_order` int(11) DEFAULT '0' COMMENT '总的订单数',
`prediction` int(11) DEFAULT '0' COMMENT '预测订单数',
PRIMARY KEY (`id`),
UNIQUE KEY `dt_hour` (`dt`,`hour`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='实时订单数'

表操作命令:

复制表结构:

create table table1 like table;

复制数据:

insert into table1 select * from table

机器授权:

grant select on *.* to 'reader'@'%' identified by '123456' WITH GRANT OPTION
flush privileges

查询数据直接插入

insert into t_visual_user_domain(`user_id`,`domain`,`group`) select id,'www.baidu.com' as domain,`group` from t_visual_user;

修改表结构

alter table competitor_goods add sku_id bigint(20) unsigned DEFAULT NULL COMMENT '商品销售码';

 

<think>好的,用户现在的问题是询问如何在MySQL查看表结构和索引的命令。我需要根据已有的知识和提供的引用内容来回答这个问题。首先,用户提到他们之前的问题是关于查看索引的命令,比如show命令,这可能涉及到SHOW INDEX或者SHOW CREATE TABLE这样的语句。现在他们想同时查看表结构和索引,所以需要综合这两部分的信息。 首先,我应该回顾一下MySQL中常用的查看表结构命令。记得DESCRIBE和EXPLAIN可以用来查看表结构,但可能不够详细。而SHOW CREATE TABLE则会显示更全面的信息,包括的创建语句,里面会包含索引信息。比如,用户提供的引用[1]中提到,删除PRIMARY KEY索引时不需要指定名字,因为一个只能有一个主键,这可能和查看索引的方式相关。 接下来,关于查看索引的具体命令,SHOW INDEX FROM table_name应该是直接显示索引的详细信息,比如索引名称、类型、包含的列等。引用[1]中提到的show命令可能就是SHOW INDEX,这里需要确认正确的语法。此外,引用[2]中提到了自然连接的例子,虽然和索引无关,但用户之前的问题可能涉及SELECT查询,不过现在的问题更关注于查看结构。 用户可能需要的是几个不同的方法,以便选择最适合他们的。比如,DESCRIBE命令简单快速,但信息有限;SHOW CREATE TABLE则更详细,包括索引;而SHOW INDEX专门用于索引的详细信息。因此,回答应该涵盖这三种方法,并解释各自的优缺点。 另外,需要注意用户是否使用特定的MySQL版本,不同版本可能在输出格式上有细微差别,但基本命令应该是相同的。还要考虑用户是否有权限访问这些命令,但权限问题可能不在当前问题范围内。 最后,根据用户的要求,生成相关问题,可能涉及如何分析索引性能、优化索引或者如何创建索引等。这些问题应该和当前主题相关,帮助用户进一步学习。</think>在MySQL查看表结构和索引的常用命令及方法如下: ### 一、查看表结构 1. **DESCRIBE命令** 使用简写形式查看字段基本信息: ```sql DESC 名; ``` 示例输出: ``` +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ ``` 2. **SHOW CREATE TABLE命令** 查看完整的定义(包含索引): ```sql SHOW CREATE TABLE 名\G ``` 输出包含建语句、存储引擎、字符集及所有索引定义[^1]。 --- ### 二、查看索引信息 1. **SHOW INDEX命令** 查看索引详细信息: ```sql SHOW INDEX FROM 名; ``` 输出字段说明: - `Key_name`:索引名称 - `Column_name`:索引列 - `Index_type`:索引类型(BTREE/FULLTEXT等) - `Non_unique`:是否唯一索引(0=唯一) 2. **通过INFORMATION_SCHEMA系统查询** 高级查询方式: ```sql SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='名'; ``` --- ### 三、对比说明 | 命令 | 优势 | 局限性 | |-------------------------|-----------------------------|--------------------------| | `DESC 名` | 快速查看字段基本信息 | 不显示索引详情 | | `SHOW CREATE TABLE` | 完整表结构包含所有索引定义[^1] | 输出格式较复杂 | | `SHOW INDEX` | 显示索引类型、列顺序等详细信息 | 需要单独执行 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值