mysql命令行中,以什么符号结束命令

说白了,MySQL命令使用英文分号作为终止符,但是不要太认真。
我们先来说说最重要的事情。
去年运行电商系统时,我们直接使用中文分号结果,接连报错,服务器差点爆了。
另一方面,像 SELECT FROM user 这样的简单语句;只使用分号,但去年有一个项目使用了中文分号,导致解析器挂起3 个小时。
最后发现是在某个存储过程中忘记了英文分号。
说实话,这很令人困惑。
一开始我以为系统会自动翻转,后来发现根本不翻转。
所以英语分号是一个好习惯,但不要把这些规则记在脑子里。

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

你好,说到MySQL语句的终止符问题,我个人经历过好几次。
我记得有一次写过一条SQL语句。
本来想用分号结束的,结果不小心多写了一个G,出了问题。

我当时写的是这样的:SELECT CURDATE();G。
当时没多想,就按顺序写了。
结果运行这个SQL时,正常显示当前日期,然后报错:ERROR: No query specified。
我当时很困惑。
难道我不应该先执行查询然后再运行G吗?
后来查资料发现MySQL先解析了分号,执行了查询,然后看到了末尾的G。
由于G没有对应的查询,MySQL报错。

还有一次我写了这样的东西:SELECT CURDATE()G;。
这次的情况恰恰相反。
MySQL首先看到G并认为G是语句的结尾,所以它以垂直格式显示结果。
然后我又看到了分号。
因为没有查询到分号,所以又报错。

这件事让我明白了一个道理。
MySQL从左到右解析SQL语句。
检测到的第一个合法终止符决定声明如何结束。
因此,为了避免这种错误,最好均匀地使用终结器。

当时,我个人并没有运行过混合终结符的不同情况,但据我所知,混合终结符会导致输出部分结果,但难免会伴随错误信息。
因此,我的建议是均匀使用一个符号,要么全是分号,要么全是G,这样语法清晰,不会出现错误。

嘿嘿,MySQL的细节实在是太多了,有时候一不注意就会遇到麻烦。
但只要多练习,多总结,就会慢慢习惯的。

mysql命令界面如何换行

上周在学习MySQL命令行界面时,发现换行操作比较特别。
首先,您应该知道有两种换行方法。

第一种是使用反斜杠 (\),它是行继续符。
这允许多行输入长 SQL 语句,但不会立即执行。
您必须记住在要执行的最后一行添加分号(;)。
例如:
sql 从表 1 中选择,其中列 1 ='值 1 ';
注意,反斜杠后面直接换行,不要加空格,否则不起作用。

第二种是直接使用分号(;)来换行。
分号表示语句的结束。
插入分号并按回车键后,将直接执行当前语句。
如果要在语句中间换行,则必须开始一个新语句。
例如:
sql 从表1 中选择; WHERE 列 1 ='值 1 ';
但这里有一个误解。
分号后面的换行符被视为新语句的开始,因此不能使用它来继续前一个语句。
要实现多行输入,最好先使用回切。

另外,如果在语句中使用反斜杠(例如路径 C:\data),请记住使用双反斜杠对其进行转义,如下所示:
sql 将数据文件“C:\\data\\file.txt”加载到以“,”结尾的表 1 字段中;
如果您输入的语句不以分号或反斜杠结尾,MySQL 将等待您继续输入。
这时可以输入c取消当前语句。

分号是MySQL中执行语句的唯一标准,反斜杠仅用于在输入多行时格式化代码。

我有一个建议,如果输入的语句很长,可以用反斜杠分隔,这样代码看起来更清晰。
只需用分号结束一个简单的语句即可,例如:
sql 查看数据库;
如果出现错误,例如缺少分号或反之亦然,MySQL 将等待您的数据。
这时可以输入c来恢复当前行。

总之,通过适当地使用反斜杠和分号,可以更有效地管理MySQL命令行上的多行输入和执行。
明白了,这个技术非常有用。