什么是 Informix?我知道它是一个 DBMS,它在学习难度和语法方面与 SQL Server 相比如何?
如何开始学习 Informix?我可以知道“hello world”教程吗?
什么是 Informix?我知道它是一个 DBMS,它在学习难度和语法方面与 SQL Server 相比如何?
如何开始学习 Informix?我可以知道“hello world”教程吗?
IBM Informix Dynamic Server(IDS,通俗地称为 Informix,尽管还有许多其他产品属于 Informix 产品系列)是用于多种用途的优秀 DBMS。它具有出色的数据管理能力,出色的数据复制能力,并且可靠。第一个基于 Informix SQL 的 DBMS 发布于 1985 年,因此它也具有类似于 Oracle、DB2、Ingres、Sybase 的长寿和血统。与所有主要的 DBMS(包括 MS SQL Server)一样,它早于 SQL 标准,因此它的某些部分不符合 SQL 标准,但它通常可以完成合理的工作。它可以在 Unix 和衍生产品(Solaris、AIX、HP-UX、Linux 和 MacOS X)以及 Windows(XP、Vista 等)上运行。
IDS 的最新版本是 11.50(完整版本为 11.50.FC2 或 11.50.UC2)。您可能遇到的其他版本包括 7.31、9.40、10.00 或 11.10。Informix 还提供当前版本 7.25 的 Informix 标准引擎 (Informix SE) 和当前版本 5.20 的 Informix OnLine(IDS 的前身)。客户端工具的主要来源是客户端 SDK,当前版本 3.50。这包括 ESQL/C、ODBC、JDBC、.NET 和各种其他驱动程序。Informix SQL(一种产品,不同于 IDS 中嵌入的 SQL 的 Informix 方言)和 Informix 4GL。
您可以将 DBI 和 DBD::Informix 与 Perl 一起使用。PHP 有一个 PDO_INFORMIX 和一个 PDO_IBM 驱动程序。有一个 Python 驱动程序。Ruby 有一个驱动程序。(古老的)Tcl/Tk 有一个古老的驱动程序。您可以在下面提到的 IIUG 网站上找到 SQLCMD(比同名的 MS SQL Server 程序早了十年多一点)。有一个 I4GL 的开源重新实现,可用作 Aubit4GL。您还可以在4Js和Querix找到 I4GL 衍生产品。您可以在www.serverstudio.com找到 Server Studio Java 版 (SSJE) 。
规范的 Web 站点是www.ibm.com/software/data/informix,并且www.informix.com也将您带到那里(您通常在 URL 中以 www-01.ibm.com 结束)。您还可以在国际 Informix 用户组网站www.iiug.org上找到很多信息。会员资格是免费的。IIUG 提供了许多邮件列表,包括informix-list@iiug.com 列表和comp.databases.informix 新闻组之间的网关。
您可以从 IBM 和 IIUG 获得该软件的试用版。
完全披露:我从 1986 年开始使用 Informix 产品,目前在 IBM 从事 IDS 方面的工作。
从 .NET 开发人员的角度来看,使用 IDS 是一件非常痛苦的事情。
主要原因(IDS 11.5):
这些只是一个处理 IDS 的项目中的几个项目。我可以看到它很快,我确信它是可靠的,但是如果你不能轻松地针对对象模型进行编码,那么它就毫无意义了。
对不起,你的陈述一定有点过时了。Informix 11.50(一个非常旧的版本,很快就会停止支持 - 我们现在是 12.10 版本)已经通过 IBM Data Server 驱动程序与 .NET 实体框架兼容。您需要做的就是在安装驱动程序后安装 VSAI 插件。我已经帮助几个 .NET 开发人员对其进行了配置,他们对此感到非常惊讶。
作为前端,您可以使用 Squirrel(开源),它使用 JDBC 连接与多个数据库一起工作。
有关字符串操作的实际版本 (12.10) 手册页,请参见此处。
Informix 现在能够混合 NoSQL 应用程序,并提供事务支持!
如果您了解 SQL,则可以在基础级别上轻松使用 Informix(如果您是 DBA,那完全是另一回事)。
对我来说,最大的问题是缺乏一个像样的开发 IDE——你可以从QuantumDB Eclipse 插件运行基本查询,但你不能使用存储过程(我认为这是 IBM JDBC 驱动程序的问题)。Unix 命令行界面似乎是在那里正确执行任何操作的最简单方法。
有一些技巧(比如知道连接的顺序很重要),但我相信你会在途中学会这些技巧。
SELECT
table1_alias.column1 column1_alias,
table2_alias.column2 column2_alias
FROM
table1 table1_alias,
table2 table2_alias
WHERE
table1_alias.column1 = table2_alias.column2
AND
table1_alias.column3 != 'value'
AND
(char_length(table1_alias.column3) > 3
AND
table1_alias.column3 IS LIKE 'another_value%'