C#自定义数据库引擎,如何实现SQL

标签 c# java python sql database

作为一个个人项目,我一直在用 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/

相关文章:

c# - ExecuteScalar 为 SQL count(*) 返回 false

c# - 如何以可读格式从 MySQL 获取数据 C#

c# - 如果参数值为 null,则传递字符串

python - 如何使 NumPy 数组属性的元素可设置?

python - 我怎么能: Generate 40/64 Bit WEP Key In Python?

C# try catch 继续执行

java - 了解有效的对象创建

java - 使用 XJC 生成 Java 源代码时使用 JAXWS enableWrapperStyle

java - Kotlin/Java 是否使用缓存系统来提高迭代数组时的性能?

python - 在 Python 3 中,如何交换二维 numpy 数组中的两个子数组?