mysql查看錶結構的幾種方式
阿新 • • 發佈:2018-12-31
在實際的開發中,我們肯定經常要查看錶結構的,特別是遇到自己不是最初開發的專案的時候,通過表結構,大概就能看出表裡存什麼資料,每個欄位代表什麼意思。實際上有很多查看錶結構的方式,下面就拿rails裡面的表schema_migrations介紹一下我自己常用的命令:
desc table_name;
mysql> desc schema_migrations; +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | version | varchar(255) | NO | PRI | NULL | | +---------+--------------+------+-----+---------+-------+ 1 row in set (0.00 sec)
它是我們最常用的命令,這個命令也是describe schema_migrations的縮寫。
show fields from table_name;
mysql> show fields from schema_migrations; +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | version | varchar(255) | NO | PRI | NULL | | +---------+--------------+------+-----+---------+-------+ 1 row in set (0.01 sec)
和describe命令達到的效果一樣。 在它的基礎上就有一個更強大的命令:
show full fields from table_name
mysql> show full fields from schema_migrations; +---------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +---------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ | version | varchar(255) | utf8_general_ci | NO | PRI | NULL | | select,insert,update,references | | +---------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ 1 row in set (0.01 sec)
每個欄位的詳細資訊也就出來了,但是遺憾的是索引沒有處理,說到檢視索引,很明顯就會想到下面的命令:
show index from table_name
mysql> show index from schema_migrations;
+-------------------+------------+--------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------------------+------------+--------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| schema_migrations | 0 | unique_schema_migrations | 1 | version | A | 21 | NULL | NULL | | BTREE | | |
+-------------------+------------+--------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.00 sec)
這個命令和show keys from table_name得到的效果一樣。 實際上有個終極命令,既可以看到本身的欄位又可以看到索引等其他資訊,還能得到完整的建立表結構的命令,那就是:
show create table table_name
mysql> show create table schema_migrations;
+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| schema_migrations | CREATE TABLE `schema_migrations` (
`version` varchar(255) NOT NULL,
UNIQUE KEY `unique_schema_migrations` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
通過命令執行的結果可以看到建立表的sql語句,欄位名,索引,搜尋引擎,編碼方式等資訊,是不是很強大。