很多时候我们都能轻易知道一张表有多少个字段,用的是什么字符集等信息,但是仅此而已,其实MySQL给我们提供了多种查询信息的方法。
1.查看字段属性、字符集、
#下面是我们熟悉的和用的最多的 mysql> show create table student_info;
mysql> show create table student_info \G #\G表示将结果纵向输出
mysql> desc student_info;
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | id | int(3) | NO | | NULL | | | name | char(12) | YES | | NULL | | | dorm | char(10) | YES | | NULL | | | addr | char(12) | YES | | 未知 | | | account | int(10) | NO | | NULL | | | passwd | varchar(10) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
desc table_name;可以查看字段的具体的属性,以表格的形式打印,非常清晰。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
mysql> show create table student_info\G *************************** 1. row *************************** Table: student_info Create Table: CREATE TABLE `student_info` ( `id` int(3) NOT NULL, `name` char(12) DEFAULT NULL, `dorm` char(10) DEFAULT NULL, `addr` char(12) DEFAULT '未知', `account` int(10) NOT NULL, `passwd` varchar(10) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
show create table table_name;不仅可以查看字段的属性,还可以查看字符集和存储引擎,但是输出凌乱,查询语句后面加上“\G”会清晰一点。
2.关于表信息的统计
#这个才是我们要说的重点 mysql> show table status like 'student_info'\G *************************** 1. row *************************** Name: student_info Engine: InnoDB Version: 10 Row_format: Compact Rows: 10 Avg_row_length: 1638 Data_length: 16384 Max_data_length: 0 Index_length: 0 Data_free: 7340032 Auto_increment: NULL Create_time: 2017-12-12 15:46:10 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec)
下面解释每一行的意思:
Name:表名
Engine:表的存储引擎
Version:版本号
Row_format:行格式
Rows:表中的行数。对于非事务性表,这个值是精确的。对于事务性表,这通常是个估算值。
Avg_row_length:平均每行包括的字节数。
Data_length:整个表的数据量(以字节计算)
Max_data_length:表可以容纳的最大数据量
Index_length:索引数据占用磁盘空间的大小。
Data_free:已分配,还未被使用的空间,包含被铲除的行。
Auto_increment:下一个AUTO_INCREEMENT
Create_time:表的创建时间
Update_time:最近被更新的时间
Check_time:使用CHECK TABLE 命令或myisqmchk工具检查表时的最近检查时间。
Collation:指表中的默认字符集和字符列排序规则
Checksum:如果启用,则对整个表的内容计算实时的校验和(Checksum)
Create_options:指表创建时的其他所有选项
Comment:本字段包含了其他额外信息。对于MyISAM表,还包含了注释,如果有注释,将是在表创建时设定的。
如果使用InnoDB存储引擎,将显示InnoDB表空间的剩余空间。如果是个视图,含“VIEW”的文本字样。