当前位置:  开发笔记 > 后端 > 正文

postgreSQL mysql oracle的区别

如何解决《postgreSQLmysqloracle的区别》经验,为你挑选了1个好方法。

我不得不开始构建数据库项目的架构,但我真的不知道引擎之间的差异.

任何人都可以解释这三个引擎的优点和缺点是什么?我们必须选择其中一个,我唯一知道的就是:

Mysql和Postgres:

是免费但不如oracle那么好

Mysql作为安全问题(这是真的吗?)

甲骨文:

世界上最好的数据库引擎

昂贵

有人可以清除它们之间的其他差异吗?这是一个中/大(我们想约100到200个表)项目,预算很低,你会选择什么?而且预算更高?



1> Richard T..:

几年前我不得不写一个翻译引擎; 你喂它一套sql,它转换为当前连接的引擎的方言.我的引擎适用于Postgres(AKA PostgreSql),Ingres,DB2,Informix,Sybase和Oracle - 哦和ANTS.坦率地说,Oracle是我最不喜欢的(更多关于下面的内容)...不幸的是,mySql和SQL Server不在列表中(当时既不被认为是严重的RDBMS - 但时间确实有所改变).

不考虑引擎的质量或性能 - 以及制作和恢复备份的便利性 - 以下是主要区别:

数据类型

范围

残疾人

保留字

null语义(见下文)

引用语义(单引号',双引号'或其中之一)

语句完成语义

函数语义

日期处理(包括常量关键字,如'now'和输入/输出函数格式)

是否允许内联评论

最大属性长度

最大属性数

连接语义/安全范例.

如果不对所有转换数据感到烦恼,这里有一个数据类型的示例,lvarchar:

oracle = varchar(%x)sybase = text db2 ="long varchar"informix = lvarchar postgres = varchar(%x)ants = varchar(%x)ingres = varchar(%x,%y)

在我看来,最重要的是空处理; Oracle SILENTLY将空白输入字符串转换为空值.......在某个地方,很久以前,我读过一篇关于"The Seventeen of Null"或其他一些文章的文章.真正的一点是,空值非常有价值,空字符串和空字符串之间的区别是有用而且不平凡!我认为甲骨文在这个问题上犯了一个大错 没有其他人有这种行为(我见过).

我的第二个最不喜欢的是ANTS,因为与其他所有人一样,他们强制执行完全语法的愚蠢规则,绝对没有其他人做,虽然他们可能是唯一提供完全遵守标准的DB公司,但他们也是一个皇家的痛苦写代码的屁股.

我最喜欢的是Postgres; 它在_real_world_情况下非常快,有很大的支持,并且是开源/免费的.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有