我正在用Java开发一个简单的数据库引擎(使用文本文件作为表),我必须为CRUD操作实现代码。我已经成功编写了CREATE和INSERT命令的代码。现在我想继续UPDATE,它应该是这样的:
UPDATE table-name SET attribute-name=literal {,attribute-name=literal} WHERE condition
但我有一个问题,我坚持“条件”。我该如何处理条件的实施? (在哪里attr1 =某事和attr2> =某事OR ......)我将非常感谢您的反馈。
最好的问候。
答案 0 :(得分:0)
这就像关于表达式的语言场景一样。所以在你的情况下它将是:
... WHERE expression
然后,您需要实现一种方法来处理解析中的表达式。为此,您需要了解正则表达式以及如何正确解析表达式。
本文将帮助您使用正则表达式创建表达式解析器: http://www.tutorialspoint.com/compiler_design/compiler_design_regular_expressions.htm
另请阅读有限自动机,以实现该算法: http://www.tutorialspoint.com/compiler_design/compiler_design_finite_automata.htm
答案 1 :(得分:0)
WHERE
部分始终是任何数据库系统中最重要的组件。要查找满足WHERE
部分条件的所有记录,您应该为条件中包含的任何列构建适当的索引。
例如,您会发现WHERE attr1 = something AND attr2 >= something OR...
,然后列attr1, attr2
必须已编入索引,否则将花费很长时间才能执行。
索引技术可以是哈希索引(用于K-V搜索),B +树索引及其所有派生实现。