两个用不同语言编写的程序能否连接到同一个SQL数据库?

两个用不同语言编写的程序能否连接到同一个SQL数据库?,sql,node.js,python-2.7,Sql,Node.js,Python 2.7,问题基本上在标题中,但这里是细节。对于我的高级设计项目,我们将编写软件来控制一些硬件并在web前端显示诊断信息。为了实现这一点,我计划使用Python和NodeJ的组合。理论上,python服务脚本将通过bacnet IP与硬件通信,并在SQL数据库中记录诊断信息。nodejsjavascript服务器代码将通过查询数据库并返回相关信息来响应webfront请求。我对SQL非常陌生,所以我的主要问题是。。这可能吗?我的第二个也是更抽象的问题是。。。这明智吗?而且,无论是Python、Java还是

问题基本上在标题中,但这里是细节。对于我的高级设计项目,我们将编写软件来控制一些硬件并在web前端显示诊断信息。为了实现这一点,我计划使用Python和NodeJ的组合。理论上,python服务脚本将通过bacnet IP与硬件通信,并在SQL数据库中记录诊断信息。nodejsjavascript服务器代码将通过查询数据库并返回相关信息来响应webfront请求。我对SQL非常陌生,所以我的主要问题是。。这可能吗?我的第二个也是更抽象的问题是。。。这明智吗?而且,无论是Python、Java还是其他语言,在两端使用相同的语言有什么明显的优势吗

是的,这是可能的


使用一个数据库的两个不同语言的应用程序与使用多个连接的一个应用程序几乎完全相同,因此您可能已经在这样做了。所有可能的问题都完全相同。数据库甚至不知道连接是从一个应用程序还是从另一个应用程序进行的。

这是非常可能的,也是常见的做法。在某些部分中,您可能需要围绕数据编写应用程序,而不是反之亦然,但这是可以做到的

如果您在每个应用程序中都使用了很多相同的查询,我还建议在可能的情况下使用

tl;dr

您可以使用为所选数据库服务器提供客户端的任何编程语言

对于数据库服务器,只要客户机按照服务器的要求进行通信(即使用服务器的库、协议等),那么所使用的编程语言或系统就没有区别


数据库驱动程序提供了一个公共抽象层,保证数据库服务器和客户机使用相同的语言

编程语言与数据库驱动程序的接口负责语言细节——例如,提供符合该语言的语法;另一方面,驱动程序将确保所有命令都按照服务器期望的协议发送

由于驱动程序是这样一个核心需求,数据库通常有多个驱动程序可用;而且,由于良好的数据库访问是程序员的核心要求,每种语言都力求为所有数据库提供一个“标准”API。例如,Java有JDBC Python有DB-API,.NET有ODBC(我相信还有ADO,但我不是.NET专家)

这些是数据库驱动程序将遵循的,因此,无论您使用的是哪种数据库服务器,您都有一种标准的连接方式、一种标准的执行查询方式和一种标准的获取结果方式——实际上,这使您的程序员生活更加轻松


在大多数情况下,数据库供应商提供了一个参考驱动程序(和API/库)。它通常是C语言,也是数据库的“本机”客户机使用的。例如,mysql数据库服务器的
mysql
客户端使用mysql C驱动程序进行连接,它与Python MySQLdb驱动程序使用的驱动程序相同;它符合Python DB-API。

一个小问题-您不应该使用术语SQL数据库,因为这是一个误称。大多数关系数据库都使用SQL,因此没有这样的“SQL数据库”。数据库应该是Oracle、MSSQL、MySQL、PostgreSQL、DB2(所有这些都支持SQL),但没有“SQL数据库”。这就像说有一个“Python数据库”,就像Python一样,SQL是一种语言。