若是你忘記了數據庫或表的名稱,或者給定表的結構是什麼(例如,它的列被稱爲何),該怎麼辦?MySQL經過幾個語句來解決這個問題,這些語句提供有關它支持的數據庫和表的信息。mysql
你以前已經看過SHOW DATABASES
,它列出了服務器管理的數據庫,要找出當前選擇的數據庫,請使用DATABASE()
函數:sql
mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | menagerie | +------------+
若是還沒有選擇任何數據庫,則結果爲NULL
。數據庫
要找出默認數據庫包含的表(例如,當你不肯定表的名稱時),請使用如下語句:segmentfault
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
而不是空。code
DESC
是DESCRIBE
的簡短形式。索引
你能夠使用SHOW CREATE TABLE
語句獲取建立現有表所需的CREATE TABLE
語句。ci
若是表上有索引,則SHOW INDEX FROM tbl_name
會生成有關它們的信息。rem