如何实现数据库引擎UPDATE命令

时间:2016-02-14 16:40:15

标签: java database-design

我正在用Java开发一个简单的数据库引擎(使用文本文件作为表),我必须为CRUD操作实现代码。我已经成功编写了CREATE和INSERT命令的代码。现在我想继续UPDATE,它应该是这样的:

UPDATE table-name SET attribute-name=literal {,attribute-name=literal} WHERE condition

但我有一个问题,我坚持“条件”。我该如何处理条件的实施? (在哪里attr1 =某事和attr2> =某事OR ......)我将非常感谢您的反馈。

最好的问候。

2 个答案:

答案 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 +树索引及其所有派生实现。