有时,如果我忘记了;
. 但有时它不会。
而在 JDBC 和 Android SQLite 中,似乎我根本不需要;
。我很困惑。
什么时候应该使用分号?
有时,如果我忘记了;
. 但有时它不会。
而在 JDBC 和 Android SQLite 中,似乎我根本不需要;
。我很困惑。
什么时候应该使用分号?
分号表示语句的结束,所以如果有多个语句,那么你应该使用分号,否则它会正常工作。
我通常使用分号作为一种实践,即使您在 sql 客户端上运行查询(例如在 Sql Developer 中)如果您在工作表上有多个语句,使用分号也非常有用,因为您可以简单地转到该特定语句并使用 F9要执行该操作,如果没有分号,这是不可能的。
如果您一次运行单个查询,则不是强制性的,如果您想使用单个命令运行多个查询,则必须这样做。
但是,在大多数 JDBC 驱动程序中,不可能在单个 JDBC 命令中添加用分号分隔的多个查询,但是存在允许您添加多个语句的 addBatch 方法:
java.sql.Statement stmt=con.createStatement();
stmt.addBatch(insert_query1); //insert_query1
stmt.addBatch(insert_query2); //insert_query2
根据经验,如果您需要多条语句,则在 JDBC 中根本不需要分号,请使用addBatch
.
通常分号不是语句实际语法的一部分(因为大多数数据库内部 API 一次执行一条语句)。相反,分号是“语句结束”标记或语句分隔符,通常在 CLI 或数据库脚本工具中定义。这允许该工具知道语句何时结束,因此它可以将该单个语句发送到数据库以执行。
另一方面,JDBC API 旨在一次执行一个(!)语句,因此您不需要这样的分隔符(语句是整个字符串)。这意味着不需要分号,并且由于它不是许多数据库的实际语句语法的一部分,因此包含它也是语法错误。一些 JDBC 驱动程序会从语句中删除最后;
一个以“修复”它,而一些驱动程序则不会。
一些驱动程序允许 - 与 JDBC 规范相反 - 多个语句作为单个字符串执行,这通常必须使用连接属性启用,例如对于 MySQL,它是选项allowMultiQueries
(有关详细信息,请参阅MySQL 属性)。
取决于 DBMS 和版本号。在单个语句的末尾,分号通常是可选的。但是,如果您要执行包含多个语句的脚本,则它们需要以分号结束。
除了最后一个。但是不一致似乎是不好的形式。