迄今为止,我们已经使用了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表示式进行模式匹配。