Mysql获取有关数据库和表的信息

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年6月25日 (日) 02:58的版本 (创建页面,内容为“如果您忘记了数据库或表的名称,或者不知道给定表的结构(例如,它的列叫什么),MySQL通过几个语句提供有关它支持的数据库和表的信息来解决这个问题。 您之前已经看到了SHOW DATABASES,它列出了服务器管理的数据库。要找出当前选择的数据库是哪个,请使用DATABASE()函数: mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | menagerie | +----…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

如果您忘记了数据库或表的名称,或者不知道给定表的结构(例如,它的列叫什么),MySQL通过几个语句提供有关它支持的数据库和表的信息来解决这个问题。

您之前已经看到了SHOW DATABASES,它列出了服务器管理的数据库。要找出当前选择的数据库是哪个,请使用DATABASE()函数:

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+

如果您还没有选择任何数据库,则结果为NULL。

要查找默认数据库包含哪些表(例如,当您不确定表名时),请使用以下语句:

mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+

此语句生成的输出中列的名称始终为Tables_in_db_name,其中db_name是数据库的名称。

如果要了解表的结构,则DESCRIBE语句很有用;它显示表中每个列的信息:

mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

Field表示列名,Type是列的数据类型,NULL表示列是否可以包含NULL值,Key表示列是否已索引,Default指定列的默认值。Extra显示有关列的特殊信息:如果使用AUTO_INCREMENT选项创建了列,则值为auto_increment而不是空。

DESC是DESCRIBE的简写形式。

您可以使用SHOW CREATE TABLE语句获取创建现有表所需的CREATE TABLE语句。

如果表上有索引,则SHOW INDEX FROM tbl_name会生成有关它们的信息。