获取有关数据库和表的信息(show)
如果您忘记了数据库或表的名称,或者给定表的结构是什么(例如,它的列称为什么),该怎么办?MySQL通过一些语句来解决此问题,这些语句提供有关它支持的数据库和表的信息。
您先前已经看过SHOW DATABASES
,其中列出了服务器管理的数据库。要查找当前选择的数据库,请使用以下DATABASE()
功能:
mysql>SELECT DATABASE(); +------------ + | DATABASE() | +------------ + | menagerie | +------------ +
如果尚未选择任何数据库,则结果为NULL
。
要找出默认数据库包含哪些表(例如,当您不确定表的名称时),请使用以下语句:
mysql>SHOW TABLES ; +--------------------- + | Tables_in_menagerie | +--------------------- + | event | | pet | +--------------------- +
该语句产生的输出中的列名称始终为,其中数据库名称为。有关更多信息,请参见“ SHOW TABLES语句”。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
指定该列的默认值。Extr
显示有关列的特殊信息:如果使用该AUTO_INCREMENT
选项创建了列,则该值将为 uto_increment
空。
DESC
是的简写形式DESCRIBE
。有关更多信息,请参见“ DESCRIBE语句”。
您可以CREATE TABLE
使用该SHOW CREATE TABLE
语句获取创建现有表所需的语句。请参见“ SHOW CREATE TABLE语句”。
如果表上有索引,则产生有关它们的信息。有关此语句的更多信息,请参见“ SHOW INDEX语句”。SHOW INDEX FROM tbl_name