ITPub博客

首页 > 数据库 > > 13.8 工具语句

13.8 工具语句

作者:飘絮絮絮丶 时间:2020-05-12 10:15:00 0 删除 编辑

参考官方文档:
dev.mysql.com/doc/refma




13.8.1 DESCRIBE 语法


DESCRIBE和EXPLAIN语句是同义词,用于获取有关表结构或查询执行计划的信息



13.8.2 EXPLAIN 语法


{EXPLAIN | DESCRIBE | DESC}
tbl_name [col_name | wild]


{EXPLAIN | DESCRIBE | DESC}
[explain_type]
{explainable_stmt | FOR CONNECTION connection_id}


explain_type: {
EXTENDED
| PARTITIONS
| FORMAT = format_name
}


format_name: {
TRADITIONAL
| JSON
}




DESCRIBE和EXPLAIN语句是同义词。 实际上,DESCRIBE关键字通常用于获取关于表结构的信息,而EXPLAIN用于获取查询执行计划(也就是说MySQL将如何执行查询)。


以下讨论根据这些用途使用DESCRIBE和EXPLAIN关键字,但MySQL解析器将它们视为完全同义。




获得表结构信息


DESCRIBE提供有关表中列的信息:
mysql> DESCRIBE City;


DESCRIBE是SHOW COLUMNS的快捷方式。 这些声明还显示视图的信息。 SHOW COLUMNS的说明提供了有关输出列的更多信息。




默认情况下,DESCRIBE显示有关表中所有列的信息。 如果给定,col_name是表中列的名称。 在这种情况下,该语句仅显示指定列的信息。 如果给出,则是一个模式字符串。 它可以包含SQL%和_通配符。 在这种情况下,该语句仅显示名称与字符串匹配的列的输出。 除非包含空格或其他特殊字符,否则不需要将该字符串括在引号内。


DESCRIBE语句是为了与Oracle兼容而提供的。


SHOW CREATE TABLE,SHOW TABLE STATUS和SHOW INDEX语句还提供有关表的信息。




13.8.3 HELP 语法


HELP 'search_string'


HELP语句从MySQL参考手册返回联机信息。


HELP语句在帮助表中搜索给定的搜索字符串并显示搜索结果。 搜索字符串不区分大小写。


搜索字符串可以包含通配符%和_。 这些与LIKE运算符执行的模式匹配操作具有相同的含义。 例如,HELP 'rep%' 返回以rep开头的主题列表。


HELP语句理解几种类型的搜索字符串:

  • 在最普通的级别,使用 contents 检索顶级帮助类别的列表:

HELP 'contents'


  • 有关给定帮助类别中的主题列表(例如数据类型),请使用类别名称:

HELP 'data types'

  • 有关特定帮助主题(例如ASCII()函数或CREATE TABLE语句)的帮助,请使用关联的一个或多个关键字:

HELP 'ascii'
HELP 'create table'


换句话说,搜索字符串与类别,许多主题或单个主题相匹配。 您无法预先告知给定的搜索字符串是否会返回单个帮助主题的项目列表或帮助信息。 但是,您可以通过检查结果集中的行数和列数来判断返回的HELP类型。


以下说明指出结果集可以采用的表单。 示例语句的输出使用您在使用mysql客户端时看到的熟悉的“ tabular”或“ vertical”格式显示,但请注意,mysql本身以不同方式重新格式化HELP结果集。

  • 空结果集

搜索字符串中找不到匹配项。

  • 结果集包含具有三列的单行

这意味着搜索字符串对帮助主题产生了冲击。 结果有三列:

  • name:标题名称
  • description:该主题的描述性帮助文本。
  • example: 用法示例或示例。 此栏可能为空。



例子: HELP 'replace'


name: REPLACE
description: Syntax:
REPLACE(str,from_str,to_str)
Returns the string str with all occurrences of the string from_str
replaced by the string to_str. REPLACE() performs a case-sensitive
match when searching for from_str.
example: mysql> SELECT REPLACE('', 'w', 'Ww'); -> 'WwW'

  • 结果集包含具有两列的多行



这意味着搜索字符串与许多帮助主题相匹配。 结果集指示帮助主题名称:

  • name:帮助主题名称。
  • is_it_category: Y 如果名称代表帮助类别,否则为N。 如果不包含,那么当指定为HELP语句的参数时,名称值应产生包含指定项的说明的单行结果集。



例子: HELP 'status'


+-----------------------+----------------+
| name | is_it_category |
+-----------------------+----------------+
| SHOW | N |
| SHOW ENGINE | N |
| SHOW MASTER STATUS | N |
| SHOW PROCEDURE STATUS | N |
| SHOW SLAVE STATUS | N |
| SHOW STATUS | N |
| SHOW TABLE STATUS | N |
+-----------------------+----------------+

  • 包含具有三列的多行的结果集

    这意味着搜索字符串与一个类别匹配。 结果集包含类别条目:
  • source_category_name:帮助策略名称。
  • name:策略或标题名
  • is_it_category:如果名称代表帮助策略则为Y,否则为N。如果不包含,那么当指定为HELP语句的参数时,名称值应产生包含指定项的说明的单行结果集。



例子: HELP 'functions'


13.8.4 USE 语法


USE db_name


USE db_name语句告诉MySQL使用db_name数据库作为后续语句的默认(当前)数据库。 在会话结束或另一个USE语句发布之前,数据库保持默认状态:


USE db1;
SELECT COUNT(*) FROMmytable;# selects from db1.mytable
USE db2;
SELECT COUNT(*) FROM mytable;# selects from db2.mytable


通过USE语句将特定数据库设置为默认值并不妨碍您访问其他数据库中的表。 以下示例访问db1数据库中的author表和db2数据库中的editor表:


USE db1;
SELECT author_name,editor_name FROMauthor,db2.editor WHERE author.editor_id= db2.editor.editor_id;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3142641/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: K8s 超详细总结!
请登录后发表评论 登录
全部评论

注册时间:2019-09-09

  • 博文量
    2646
  • 访问量
    42213