什么是Informix?我知道它是一个DBMS,它在学习困难和语法方面与SQL Server相比有多好?
如何开始学习Informix?我可以知道“你好世界”教程吗?
答案 0 :(得分:15)
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还提供Informix标准引擎(Informix SE),当前版本7.25和Informix OnLine(IDS的前传),当前版本5.20。客户端工具的主要来源是Client 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 Edition(SSJE)。
规范网站为www.ibm.com/software/data/informix,www.informix.com也会将您带到那里(您通常最终会在网址中使用www-01.ibm.com)。您还可以在International Informix Users Group网站www.iiug.org上找到大量信息。会员资格免费。 IIUG提供了许多邮件列表,并在informix-list@iiug.com列表和comp.databases.informix新闻组之间包含一个网关。
您可以从IBM和IIUG获得该软件的试用版。
完全披露:自1986年以来,我一直在使用Informix产品,目前在IDS上为IBM工作。
答案 1 :(得分:6)
从.NET开发人员的角度来看,使用IDS是一个重要的球痛。
主要原因(IDS 11.5):
这些只是一个涉及IDS的项目的几个项目。我可以看到它很快,我确信它是可靠的但是如果你不能轻易地对对象模型进行编码那么它就没有意义了。
答案 2 :(得分:3)
对不起,但你的陈述中一定有点过时了。 Informix 11.50(一个非常老的版本,很快就会失去支持 - 我们现在的版本是12.10版本)已经通过IBM Data Server驱动程序与.NET实体框架兼容。您需要做的就是在安装驱动程序后安装VSAI插件。我帮助了几个.NET开发人员配置它,他们真的很惊讶它。
作为前端,您可以使用Squirrel(opensource),它使用JDBC连接,可以与多个数据库一起使用。
有关字符串操作的实际版本(12.10)手册页,请参阅here。
Informix现在能够混合使用NoSQL应用程序,并提供事务支持!
答案 3 :(得分:2)
如果您了解SQL,您可以非常轻松地在基本级别上使用Informix(如果您是DBA完全是另一回事)。
对我而言,最大的问题是缺乏一个体面的开发IDE - 您可以从QuantumDB Eclipse插件运行基本查询,但是您无法使用存储过程(我认为这是IBM JDBC驱动程序的问题)。 Unix命令行界面似乎是在那里做任何事情的最简单方法。
有一些技巧(比如知道连接的顺序 DOES 很重要),但我相信你会在途中挑选它们。
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%'