C# 自定义数据库引擎,如何实现 SQL
作为一个个人项目,我一直在用C#开发自己的数据库软件。现在很多数据库系统都可以使用SQL命令来查询数据。这里有没有人能给我一些建议,告诉我如何从零开始实现这样一个系统?比如说,一个熟悉SQL的用户可以把一个SQL语句作为字符串输入到我的应用程序中,然后我的应用程序会分析这个语句并执行相应的查询。这里有没有人有类似的经验?我知道这个问题可能有点不寻常,哈哈。简单来说,我想问的是,是否有现成的工具可以解析SQL语句,还是说我得从头开始自己写一个?
提前感谢任何帮助!
(我可能会把我的一些东西转到Python和Java上,所以任何潜在的答案不一定局限于C#)
另外:我并没有使用任何现有的SQL数据库或类似的东西,我的系统完全是从零开始的,希望我的问题能让人明白。基本上,我希望我的应用程序能够和发送SQL命令的程序进行交互。
1 个回答
3
建立一个完整的数据库引擎可不是件简单的事。这不是你坐下来下周就能完成的项目,所以我觉得你可能想要一步一步地写SQL解析器:随着引擎支持的功能逐渐添加解析器的特性。
我猜这只是一个有趣的项目,而不是你急着想要完成的事情。既然如此,我觉得写一个SQL解析器是这个项目中最有意思的部分之一!我之前做过很多平面文件数据库引擎的工作,因为查询所需的响应时间不适合使用关系数据库管理系统(RDBMS)。其中最有趣的部分是为用户界面等地方添加对SQL片段的支持,在这些地方响应时间不是那么关键。
我工作的实现是用普通的C语言写的,但实际上我看到的大多数关系数据库仍然主要是用C语言编写的。用这种低级语言写这些东西有种特别的满足感 :)