理想情况下适用于Oracle,MS SQL Server,MySQL和Postgres。
答案 0 :(得分:11)
如果你的意思是lisp的普通lisp,那么 cl-rdbms 。它在postgres上进行了大量测试(使用postmodern作为后端lib),它有一个玩具sqlite后端,它还有一个基于OCI的oracle后端。它支持抽象出不同的sql方言,有一个sql准语句扩展可安装在例如[]字符。
我不确定它是否是最好的,而且我仍然有偏见...... :)但我们在使用clsql一段时间之后最终推出了我们自己的lib,这是我认为最广泛的使用sql lib进行cl。
请参阅cliki page about sql以获取进一步的参考。
答案 1 :(得分:7)
目前还没有支持你提到的所有SQL后端的开源库。 CLSQL非常接近(仅缺少对MS SQL的支持)。替代方案是:
如果你可以使用商业Lisp,你可以试试Lispworks附带的CommonSQL,它支持你提到的所有数据库。
CLSQL看起来是目前最受欢迎的开源库。不幸的是,它似乎遭受了一点点腐烂,开发人员不得不做出一些妥协以支持所有这些平台。
如果RDB后端不是约束,那么我推荐Postmodern。它有很好的文档记录,并且有一个干净的API(以及编译为SQL的一个很好的小语言)。此外,它维护得很好,足够小,可以保持可理解和可扩展性。它只关注Postgres,而不是试图成为所有人的所有事物。
答案 2 :(得分:2)
Allegro Common Lisp有一个ODBC库和一个MySQL-specific库,两者都有详尽的文档。我使用过MySQL;没什么惊喜。