作为一个个人项目,我一直在用 C# 开发自己的数据库软件。目前很多数据库系统都可以使用SQL命令进行查询。这里有没有人可以指出我在完全从头开始编写的数据库软件中实现这样一个系统的正确方向?例如,熟悉 SQL 的用户可以将语句作为字符串输入到应用程序中,该语句将由我的应用程序进行分析,并运行正确的查询。这里有人有类似的经历吗?这可能是一个很不寻常的问题哈哈。基本上我要问的是,是否有任何可用的工具可以剖析 SQL 语句,或者我是否必须为此从头开始编写自己的工具?
预先感谢您的帮助!
(我可能会将我的一些东西转移到 Python 和 Java,因此任何潜在的答案不必仅限于 C#)
另外:我没有使用任何当前的 SQL 数据库或类似的东西,我的系统完全是从头开始的,我希望我的问题有意义。基本上我希望我的应用程序能够与发送 SQL 命令的程序交互。
最佳答案
一个完整的数据库引擎是一项非常严肃的任务。下周你不会坐下来拥有一个完整的引擎,所以我认为你会想要零碎地编写 SQL 解析器:向解析器添加功能,因为引擎支持这些功能。
我猜这只是一件有趣的事情,而不是你想要尽快工作的事情。鉴于此,我认为编写 SQL 解析器是该项目最好的部分之一!我使用平面文件数据库引擎做了很多工作,因为查询所需的响应时间不允许 RDBMS。最令人愉快的事情之一是添加对 SQL 片段的支持,例如UI,其中响应时间并不那么重要。
我所从事的实现是普通的旧 C 语言,但事实上,从我所见,大多数关系数据库仍然主要用 C 编写。并且用非常低级的语言编写这些东西是令人满意的:)
关于C#自定义数据库引擎,如何实现SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211204/