教你如何在MySQL命令行中使用SQL语句的规则

规则 1 :您必须在 SQL 语句后添加分号。
否则,它会等待客户端填写空白。

规则2 :SQL关键字的大小写并不重要,但统一规范似乎更好。

规则 3 :根据需要在 SQL 中添加空格和换行符。
但是,您必须将其添加到正确的位置。

规则 4 :如果您想解释某些内容,请用双破折号或星号将其框起来。

如果我在一条 MySQL 语句中同时使用 G 和分号 (;) 终止符号,会发生什么情况?

哎呀,我以前也曾掉过这个兔子洞。
我记得我在写SQL语句的时候,想同时用一个G和一个分号来结束,但是发生了一些事情。

那天我在公司,有任务要做。
今天必须写一条SQL语句来测试。
这是我写的:SELECT CURDATE();G。
结果,MySQL看到第一个分号,认为这是句子的结尾,开始执行查询,然后表结果出现。
然而,当 G 没有遵循查询时,MySQL 感到困惑并给了我错误消息:错误:没有已知的查询。

我仍然想知道为什么会出现表单结果并且还出现错误。
查了资料才知道是终结者优先级的问题。
MySQL从左到右解析语句,遇到的第一个合法终止符决定语句如何结束。
所以分号在前,G 被忽略。

然后我又试了一次,这次我写的是:SELECT CURDATE()G;。
这次MySQL看到第一个G并认为它是句子的结尾。
输出采用垂直格式,每列显示在单独的行上。
但是,分号后面没有跟随查询,MySQL 给出了另一条错误消息:错误:未指定查询。

这一次我终于明白了。
无论顺序如何,第二个符号后面都不是查询,那么MySQL自然不知道如何处理。

所以后来我记得写SQL语句的时候要用分号或者G,不要混用。
这样,不仅语法清晰,而且也不会出现令人尴尬的错误消息。