3.4 获得数据库和表的信息

如果你忘记数据库或表的名字,或给定的表的结构是什么(例如,它的列叫什么),怎么办?MySQL通过提供数据库及其支持的表的信息的几个语句解决这个问题。

你已经见到了SHOW DATABASES,它列出由服务器管理的数据库。为了找出当前选择了哪个数据库,使用DATABASE( )函数:

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

如果你还没选择任何数据库,结果是NULL。

为了找出当前的数据库包含什么表(例如,当你不能确定一个表的名字),使用这个命令:

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

这个语句产生的结果中的列名通常是Tables_in_db_name,db_name是数据库的名字。 更多信息请查看 Section 13.7.5.38, “SHOW TABLES Syntax”。

如果你想要知道一个表的结构,可以使用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的简写形式。更多内容请查看 Section 13.8.1, “DESCRIBE Syntax”.

为了创建一个已经存在的表,使用SHOW CREATE TABLE 语句可以得到 它的CREATE TABLE语句。 请查看 Section 13.7.5.12, “SHOW CREATE TABLE Syntax”.

如果表有索引,SHOW INDEX FROM tbl_name生成有关索引的信息. 更多内容查看 Section 13.7.5.23, “SHOW INDEX Syntax”.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值