Answers:
特设拉丁语是“为此目的”。您可以将其称为“即时”查询或“正好”查询。您只是在需要的地方松散地键入这种SQL查询
var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;
...这是每次代码行执行时完全不同的查询,具体取决于的值myId
。临时查询的对立面是预定义查询,例如存储过程,在其中您创建了一个查询,用于从该表中进行选择的整个通用目的(例如),并将ID作为变量传递。
即席查询是在发出查询之前无法确定的查询。创建它是为了在需要时获取信息,它由动态构造的SQL组成,该SQL通常由桌面驻留的查询工具构造。
检查:http : //www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html
还想补充一点,即席查询容易受到SQL注入攻击。我们应该尽量避免使用它,而应使用参数化的SQL(例如Java中的PreparedStatement)。
一个即席查询是一个建立提供具体的记录从任一或多个合并的DB服务器上的可用表。这些查询通常用于一次性用途,可能不需要合并到任何存储过程中以在将来再次运行。
临时方案:您收到对具有唯一变量集的特定数据子集的请求。如果没有可以提供必要结果的预写查询,则必须编写一个临时查询以生成记录集结果。
存储过程超出了一次性使用的即席查询;即,查询存储在数据库接口工具中。然后,可以在模块或宏中依次执行这些存储过程,以按需,按计划或由另一个事件触发来完成预定义的任务。
存储过程方案:每个月您都需要使用相同的表集和相同的变量来生成报告(这些变量可以是特定的预定义值,诸如“当月末”之类的计算值或用户的输入值)。您将在第一次创建该过程作为临时查询。在测试结果以确保准确性之后,您可以选择部署此查询。然后,您可以将查询或一系列查询存储在模块或宏中,以根据需要再次运行。
临时查询是计算机定义的类型。这意味着此查询是专门为仅在需要时获取任何信息而设计的。预定义的。请参阅此https://www.youtube.com/watch?v=0c8JEKmVXhU
SQL injection attacks
...您必须使用参数。