SET 和 SHOW语法(二)
14.5.3.7 SHOW CREATE VIEW
语法
SHOW CREATE VIEW view_name
根据给定的试图名显示一个完整的 CREATE VIEW
语句。它是在 MySQL 5.0.1 中新增的。
mysql> SHOW CREATE VIEW v; +-------+----------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------+ | v | CREATE VIEW `test`.`v` AS select 1 AS `a`,2 AS `b` | +-------+----------------------------------------------------+
这个语法是在 MySQL 5.0.1 加上的。
14.5.3.8 SHOW DATABASES
语法
SHOW DATABASES [LIKE 'pattern']
SHOW DATABASES
列出了 MySQL 服务器上所有的数据库,通过 mysqlshow
命令也可以得到同样的结果。从 MySQL 4.0.2 开始,如果没有全局的 mysqlshow
权限的话,就只能列出那些有相关权限的数据库了。
如果服务器启动时增加参数 --skip-show-database
,并且你没有 SHOW DATABASES
权限的话,就无法通过这个语句来列出数据库了。
14.5.3.9 SHOW ENGINES
语法
SHOW [STORAGE] ENGINES
SHOW ENGINES
显示了存储引擎相关的状态信息。这对检查是否支持某种存储引擎或者什么存储引擎是默认的非常有用。这个语句是在 MySQL 4.1.2 实现的。SHOW TABLE TYPES
跟它一样,但是不推荐使用。
mysql> SHOW ENGINES\G *************************** 1. row *************************** Engine: MyISAM Support: DEFAULT Comment: Default engine as of MySQL 3.23 with great performance *************************** 2. row *************************** Engine: HEAP Support: YES Comment: Alias for MEMORY *************************** 3. row *************************** Engine: MEMORY Support: YES Comment: Hash based, stored in memory, useful for temporary tables *************************** 4. row *************************** Engine: MERGE Support: YES Comment: Collection of identical MyISAM tables *************************** 5. row *************************** Engine: MRG_MYISAM Support: YES Comment: Alias for MERGE *************************** 6. row *************************** Engine: ISAM Support: NO Comment: Obsolete storage engine, now replaced by MyISAM *************************** 7. row *************************** Engine: MRG_ISAM Support: NO Comment: Obsolete storage engine, now replaced by MERGE *************************** 8. row *************************** Engine: InnoDB Support: YES Comment: Supports transactions, row-level locking, and foreign keys *************************** 9. row *************************** Engine: INNOBASE Support: YES Comment: Alias for INNODB *************************** 10. row *************************** Engine: BDB Support: YES Comment: Supports transactions and page-level locking *************************** 11. row *************************** Engine: BERKELEYDB Support: YES Comment: Alias for BDB *************************** 12. row *************************** Engine: NDBCLUSTER Support: YES Comment: Clustered, fault-tolerant, memory-based tables *************************** 13. row *************************** Engine: NDB Support: YES Comment: Alias for NDBCLUSTER *************************** 14. row *************************** Engine: EXAMPLE Support: YES Comment: Example storage engine *************************** 15. row *************************** Engine: ARCHIVE Support: YES Comment: Archive storage engine
Support
字段的值表明是否支持什么存储引擎和哪种存储引擎是默认的。例如,如果服务器启动时增加参数 --default-table-type=InnoDB
,那么 InnoDB 这行的 Support
字段的值就是 DEFAULT
。
14.5.3.10 SHOW ERRORS
语法
SHOW ERRORS [LIMIT [offset,] row_count] SHOW COUNT(*) ERRORS
这个语句跟 SHOW WARNINGS
类似,不同之处是 SHOW WARNINGS
同时显示了错误,警告以及注意,而它却只显示错误信息。SHOW ERRORS
是从 MySQL 4.1.0 开始有的。LIMIT
分句和的 SELECT
语法一样,详情请看“14.1.7 SELECT
Syntax”。SHOW COUNT(*) ERRORS
语句显示了错误信息的总记录数。也可以通过取得变量 error_count
的值来获得总错误记录数:
SHOW COUNT(*) ERRORS; SELECT @@error_count;
详情请看“14.5.3.21 SHOW WARNINGS
Syntax”。
14.5.3.11 SHOW GRANTS
语法
SHOW GRANTS FOR user
该语句列出了某个 MySQL 帐户用 GRANT
语句授权的全部权限。
mysql> SHOW GRANTS FOR 'root'@'localhost'; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+
从 MySQL 4.1.2 开始,也可以使用以下几个语句之一来列出当前会话具备的权限:
SHOW GRANTS; SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER();
在 MySQL 4.1.2 以前,可以通过函数 CURRENT_USER()
(MySQL 4.0.6 新增的 ) 的值来知道当前会话授权给哪个用户,并且把它的值用于 SHOW GRANTS
语句中。详情请看“13.8.3 Information Functions”。SHOW GRANTS
是在 MySQL 3.23.4 中新增的。
14.5.3.12 SHOW INDEX
语法
SHOW INDEX FROM tbl_name [FROM db_name]
SHOW INDEX
很像 ODBC 的 SQLStatistics
调用,它按照一定的格式返回数据表的索引信息。SHOW INDEX
返回以下字段:
Table
- 表名。
Non_unique
0
表示该索引不能有重复的记录,反之则反。Key_name
- 索引名。
Seq_in_index
- 该字段在索引中的次序,从 1 开始。
Column_name
- 字段名。
Collation
- 字段在索引中是怎么排序的。在 MySQL 中,它的值可以是 `A' ( 升序 ) 或
NULL
( 无序 ) 。 Cardinality
- 该索引中唯一值的数量,当执行
ANALYZE TABLE
或myisamchk -a
.Cardinality
时会更新它的值。Cardinality
(基数) 是用整数存储的基于统计的结果,因此如果是小表,那么它的结果可能未必精确。基数越大,则 MySQL 在做表连接时使用索引的几率越大。 Sub_part
- 它表示某个字段对多长的字符做索引。当整个字段都做索引了,那么它的值是
NULL
。 Packed
- 表示键值是如何压缩的,
NULL
表示没有压缩。 Null
- 当字段包括
NULL
的记录是YES
,它的值为,反之则是''
。 Index_type
- 使用了哪种索引算法(有
BTREE
,FULLTEXT
,HASH
,RTREE
)。 Comment
- 各种不同的备注。在MySQL 4.0.2以前,如果增加了
Index_type
字段,则Comment
字段用户表示该索引是为FULLTEXT
索引。
字段Packed
和Comment
是在MySQL 3.23.0中新增的。而Null
和Index_type
是在MySQL 4.0.2中新增的。
在tbl_name FROM db_name
语法中,还可以选择是否使用 db_name.tbl_name 的格式。以下的这2个语句是一样的:mysql> SHOW INDEX FROM mytable FROM mydb; mysql> SHOW INDEX FROM mydb.mytable;
SHOW KEYS
和SHOW INDEX
是一样的,也可以通过执行mysqlshow -k db_name tbl_name
命令来列出数据表的索引信息。
14.5.3.13 SHOW INNODB STATUS
语法
SHOW INNODB STATUS
它显示了 InnoDB
存储引擎状态的其他的扩展信息。
14.5.3.14 SHOW LOGS
语法
SHOW [BDB] LOGS
SHOW LOGS
显示了现存的日志文件的状态。它是在MySQL 3.23.29中实现的。现在它只显示了Berkeley DB类型的日志文件,因此它的另一个用法是SHOW LOGS
(从MySQL 4.1.1开始)。SHOW LOGS
返回了以下几个字段:
File
- 日志文件的完整路径。
Type
- 日志文件的类型(例如:
BDB
表示Berkeley DB类型的日志文件)。 Status
- 文件状态(
FREE
表示文件可以删除,IN USE
表示在事务子系统中需要用到该日志文件)。
14.5.3.15 SHOW PRIVILEGES
语法
SHOW PRIVILEGES
SHOW PRIVILEGES
列出了所有MySQL基本服务器所支持的权限。它是在MySQL 4.1.0中实现的。
mysql> SHOW PRIVILEGES\G *************************** 1. row *************************** Privilege: Select Context: Tables Comment: To retrieve rows from table *************************** 2. row *************************** Privilege: Insert Context: Tables Comment: To insert data into tables *************************** 3. row *************************** Privilege: Update Context: Tables Comment: To update existing rows *************************** 4. row *************************** Privilege: Delete Context: Tables Comment: To delete existing rows *************************** 5. row *************************** Privilege: Index Context: Tables Comment: To create or drop indexes *************************** 6. row *************************** Privilege: Alter Context: Tables Comment: To alter the table *************************** 7. row *************************** Privilege: Create Context: Databases,Tables,Indexes Comment: To create new databases and tables *************************** 8. row *************************** Privilege: Drop Context: Databases,Tables Comment: To drop databases and tables *************************** 9. row *************************** Privilege: Grant Context: Databases,Tables Comment: To give to other users those privileges you possess *************************** 10. row *************************** Privilege: References Context: Databases,Tables Comment: To have references on tables *************************** 11. row *************************** Privilege: Reload Context: Server Admin Comment: To reload or refresh tables, logs and privileges *************************** 12. row *************************** Privilege: Shutdown Context: Server Admin Comment: To shutdown the server *************************** 13. row *************************** Privilege: Process Context: Server Admin Comment: To view the plain text of currently executing queries *************************** 14. row *************************** Privilege: File Context: File access on server Comment: To read and write files on the server
最近评论