首页 » PHP和MySQL Web开发(原书第4版) » PHP和MySQL Web开发(原书第4版)全文在线阅读

《PHP和MySQL Web开发(原书第4版)》12.3 获取更多关于数据库的信息

关灯直达底部

迄今为止,我们已经使用了SHOW和DESCRIBE来查询数据库的表和表中的数据行。下面,我们将简要了解它们是如何在其他方面应用的,以及使用EXPLAIN语句获取SELECT执行过程的详细信息。

12.3.1 使用SHOW获取信息

前面,我们已经使用了:

show tables;

语句来获取数据库中所有表。

如下语句:

show databases;

可以显示所有数据库。还可使用SHOW TABLES语句查看其中一个数据库的表:

show tables from books;

当使用SHOW TABLES的时候,如果没有指定特定的数据库,默认数据库为当前使用的数据库。

当知道数据库中都有哪些表的时候,可以获取该表的所有列:

show columns from orders from books;

如果没有给出数据库参数,在默认情况下,SHOW COLUMNS语句所操作的数据库是当前使用的数据库。此外,也可以使用table.column符号:

show columns from books.orders;

SHOW语句另一个非常有用的变化是查看用户所拥有的权限。例如,如果运行下列语句:

show grants for bookorama;

将得到如下所示的结果:

+-----------------------------------------------------------------------+

|Grants for [email protected]%|

+-----------------------------------------------------------------------+

|GRANT USAGE ON*.*TO'bookorama'@'%'|

|IDENTIFIED BY PASSWORD'*1ECE648641438A28E1910D0D7403C5EE9E8B0A85'|

|GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER|

|ONbooks.*TO'bookorama'@'%'|

+-----------------------------------------------------------------------+

所示的GRANT语句未必是被执行并授予特定用户权限的所必需的语句,而更像是产生用户当前级别权限的等价语句。

此外,还可以使用SHOW语句的其他变体。事实上,SHOW语句总共有30多种变体。最常见的变体语句如表12-7所示。请参阅MySQL手册获得完整列表:

http://dev.mysql.com/doc/refnan/5.1/show.html。在如下示例的[kike_or_where]例子中,你可以使用LIKE或WHERE表示式进行模式匹配。