mysql 命令
1) 调用 mysql 客户机 在命令行中提供凭证: shell> mysql -u<name> -p<password> 在登录路径中提供凭证: shell> mysql --login-path=<login-path> 执行语句: shell> mysql --login-path=<login-path> -e "<statement>" 使用特定选项文件执行: shell> mysql --defaults-file=<opt_file_name> ... 使用包含 SQL 语句的文本文件执行: shell> mysql ... < <file_name.sql> -u<name> (或 --username=<name> ):选项后面可带或不带空格。 -p<password> (或 --password=<password> ):选项后面不带空格。如果对该选项使用空值,则系统会提示您输入口令。您也可以将其放在选项文件中而不是命令行中,或者在登录路径中提供凭证。 --login-path=<login-path> :使用此登录路径(通过 mysql_config_editor 创建)的凭证。 -e "<statement>" (或 --execute="<statement>" ):调用 mysql 客户机,然后执行 SQL 语句。 例如,要查看当前的服务器版本: shell> mysql --login-path=admin -e "SELECT VERSION()" +-------------------------------------------+ | VERSION() | +-------------------------------------------+ | 5.6.10-enterprise-commercial-advanced-log | +-------------------------------------------+ 通过添加 > <file_name> 将输出重定向到文件中。 通过添加 < <file_name> 来运行“脚本” 或“批处理” 文件。文件必须为纯文本格式,其中每个语句都有语句终结符。文件必须位于运行 mysql 客户机的主机上。 < 和 -e 是互斥的。不能同时使用。
2) 避免过度使用DML语句
在调用客户机时添加 --safe-updates 选项可以避免过度使用 update 和 delete 的风险; shell> mysql ... --safe-updates 防止用户发出具有潜在危险的语句: – UPDATE 和 DELETE 只能与 WHERE 或 LIMIT 一起使用。 — WHERE 必须使用键值指定要修改的记录。 – SELECT 输出受限。 您可能会不小心发出一些会修改表中多个行的语句或者会返回特别大的结果集的语句。 --safe-updates 选项可帮助防止这些问题。设置安全更新模式可施加以下 SQL 语句限制: UPDATE 和 DELETE 仅在包含 WHERE 子句(该子句通过键值明确标识了要更新或删除的记录)或 LIMIT 子句时才允许使用。 将单表 SELECT 语句中的输出限制为不超过 1,000 行,但语句包含 LIMIT 子句时除外。 仅当 MySQL 为处理查询所检查的行不超过 1,000,000 时,才允许使用多表 SELECT 语句。
3) 输出格式
默认情况下,无论是以交互模式还是以批处理模式使用 mysql ,都会生成输出:
Ø 交互式: 当以交互模式调用 mysql 时,会以表格格式显示查询输出,其中使用长条和短划线显示在方框列中列出的值。 - --table (或 -t ):生成表格输出格式,即使在以批处理模式运行时也是如此。这是交互模式的默认格式。
Ø 批处理: 在通过使用文件作为命令行中的输入源来调用 mysql 时, mysql 会以批处理模式运行,并且在显示的查询输出中使用制表符来分隔数据值。 - --batch (或 -B ):生成批处理模式(用制表符分隔的)输出(即使在以交互模式运行时也是如此),且不使用历史文件。这是批处理模式的默认格式。在批处理模式下,使用 --raw 或 -r 选项可禁止字符转换(例如,将换行符和回车符转换为 \n 或 \r 等转义序列)。在原始模式下,将按字面值输出字符。
Ø 使用以下选项可选择不同于以上任一默认格式的输出格式: --html (或 -H ):生成 HTML 格式的输出 --xml (或 -X ):生成 XML 格式的输出
Ø 使用方法示例
mysql --login-path=local -t
mysql --login-path=local --table
mysql --login-path=local -B
mysql --login-path=local –batch
mysql --login-path=local -H
mysql --login-path=local --html
mysql --login-path=local -X
mysql --login-path=local --xml
4) 获取常用命令 列出所有的 MySQL 客户机级别命令: mysql> HELP 显示会话状态信息: mysql> STATUS 日志会话查询及其输出: mysql> tee my_tee_file.txt
5) 有关 SQL 语句的帮助 查看完整的 SQL 类别列表: mysql> HELP CONTENTS ... Account Management Administration Compound Statements Data Definition Data Manipulation Data Types ... 有关特定 SQL 类别或语句的帮助: mysql> HELP Data Manipulation mysql> HELP JOIN 有关与状态相关的 SQL 语句的帮助: mysql> HELP STATUS
您可以在 mysql 客户机中访问服务器端的帮助。服务器端的帮助可针对特定主题在《 MySQL 参考手册》中执行查找(直接通过 mysql> 提示符)。使用 HELP 后跟关键字可访问信息。要显示帮助系统最顶层的条目,请使用 CONTENTS 关键字。不必逐步浏览目录列表中所列出的项来获取有关特定主题的帮助。只需给出主题作为关键字即可获得一些提示。例如, HELP STATUS 可生成与状态相关的 SQL 语句的列表: ... SHOW SHOW ENGINE SHOW MASTER STATUS ... 有关 HELP 语句的更多信息,请参阅《 MySQL 参考手册》: http://dev.mysql.com/doc/refman/5.6/en/help.html 。
6) SQL 语句终结符
Ø 常用 SQL 终结符 – ; 或 \g – \g (竖直显示输出)
Ø 中止语句 – 使用 \c 终结符 mysql> SELECT VERSION()\c mysql> SQL 语句需要有终结符: ; 和 \g : 常见的终结符,二者等效,可互换使用。 \G : 用于终止查询并以垂直方式显示查询结果,其中显示的每个输出行的每个列值均位于单独的行中。此终结符在查询生成的输出行非常宽的情况下十分有用(因为竖直格式可使结果更易阅读)。 \c : 如果决定放弃正在编写的语句,则可取消该语句并返回到新的 mysql> 提示符下。
7) 特殊语句终结符
Ø 使用多行语句时: – 结尾处需要终结符。 – 提示符从 mysql> 改为 -> 。
在 mysql 中,可以使用多个输入行输入单个查询。这样可以更加轻松地发出长查询,因为可以使用多个行来输入长查询。 mysql 在看到语句终结符之后才发送查询以供执行,如以下示例所示: mysql> SELECT Name, Population FROM City -> WHERE CountryCode = 'IND' -> AND Population > 3000000;
如果语句导致了错误,则 mysql 会显示服务器所返回的错误消息: mysql> This is an invalid statement; ERROR 1064 (42000): You have an error in your SQL syntax ; check the manual that corresponds to your MySQL server version ...
Ø 结束会话并退出 – 使用 \q 终结符或者 QUIT 或 EXIT 。 mysql> \q Bye
Ø 其他命令: edit (\e) : 使用 $EDITOR 编辑命令。 pager (\P) : 将 PAGER 设置为 [to_pager] 。通过 PAGER 输出查询结果。 rehash (\#) : 重构完成散列。 这些其他命令可在 UNIX 和 Linux 操作系统上运行,但在 Windows 上不受支持。
8) 重新定义提示符 重新定义提示符: mysql> PROMPT term 1> term 1> 在提示符中添加信息: mysql> PROMPT(\u@\h) [\d]\> PROMPT set to '(\u@\h) [\d]\>' (root@localhost) [test]> 恢复原始提示符: (root@localhost) [test]> mysql> PROMPT mysql> mysql> 提示符是主要(或默认)提示符。它表示 mysql 客户机已准备好,可供输入新语句。您可以更改默认提示符,将当前信息放入提示符中,例如用户 (\u) 、主机 (\h) 和数据库 (\d) ,如本幻灯片中的示例所示。 例假设以前将数据库设置为 test 。 PROMPT 关键字之后第一个空格后面的所有内容都将成为提示符字符串的一部分,包括其 他空格。该字符串可包含特殊序列。要将提示符恢复为默认值,请指定不包含参数的 PROMPT 或 \R 。
9) 使用脚本文件
Ø 在 mysql 中处理输入文件: – 如果这些文件包含 SQL 语句,则称为: — “脚本文件” — “批处理文件”
Ø 使用 SOURCE 命令: mysql> SOURCE /usr/stage/world_innodb.sql Query OK, 0 rows affected (0.00 sec) ...
当以交互模式运行时, mysql 可读取通过键盘输入的查询。 mysql 也接受来自文件的输入。 MySQL 服务器将执行文件中的查询,并显示所生成的任何输出。要执行的包含 SQL 语句的输入文称为“脚本文件” 或“批处理文件” 。脚本文件应该为纯文本文件,其中所包含语句的格式要与以交互模式输入的语句的格式相同。具体来说,每个语句都必须以终结符结束。 SOURCE 命令后的文件名无需用引号括起。
