我正在线上免费获得斯坦福数据库课程。我没有任何数据库经验,但有多年的OS编程经验。通常,我会在编码之前为特定算法绘制流程图或写出伪代码。我想知道这种技术是否可用于从流程图或伪代码转换为SQL语句。
迭代一个集合的循环是否与WHERE子句匹配?这主要是(?)还是总是(?)是真的吗?
如何将双嵌套循环映射到SQL?
答案 0 :(得分:2)
SQL使用基于集合的逻辑(关系代数/微积分),而大多数编程语言都是命令式/程序性的(例如C#,Java等)。
如果您编写基于集合的逻辑伪代码,那么转换为SQL应该很简单,因为命令式伪代码要转换为C#。
基于集合的逻辑伪代码的示例可能是这样的:
1.Join book stores and titles over the BookstoreID.
2.Restrict the result of that join to tuples for the book Some Sample Book.
3.Project the result of that restriction over StoreName and StorePhone.
如果您尝试将命令式伪代码转换为SQL(或基于集合的伪代码转换为C#),那将会更加痛苦。
答案 1 :(得分:0)
正如Dylan所说,SQL是为基于集合的逻辑而设计的。但是,你可以并且经常在现实世界的情况下循环遍历这些集合。
基本上,您可以将目标结果集存储在临时表中。然后,您将遍历临时表中的每个记录,执行任何必要的处理。
完成后,通过删除临时表来清理。
它不像典型的编程语言(Pascal,C等)那么直接