Alguns anos atrás eu tinha para escrever um mecanismo de tradução; você alimentá-lo um conjunto de SQL e traduz para o dialeto do motor conectado no momento. Meu motor funciona em Postgres (AKA PostgreSQL), Ingres, DB2, Informix, Sybase e Oracle - oh, e formigas. Francamente, a Oracle é o meu favorito menor (mais sobre isso abaixo) ... Infelizmente para você, MySQL e SQL Server não estão na lista (na época não foi considerado um grave RDBMS - mas os tempos mudam).
Sem levar em conta a qualidade ou o desempenho do motor - e facilidade de fazer e restaurar backups - aqui estão as principais áreas de diferença:
- tipos de dados
- limites
- inválidos
- Palavras reservadas
- semântica nulos (ver abaixo)
- citação semântica (aspas simples', aspas duplas", ou seja)
- semântica declaração de conclusão
- semântica de função
- manipulação de data (incluindo palavras-chave constantes como 'agora' e entrada / formatos de função de saída)
- se são permitidos comentários na linha
- comprimentos máximos de atributo
- número máximo de atributos
- semântica de conexão / paradigma de segurança.
Sem chato você em todos os dados de conversão, aqui está uma amostra para um tipo de dados, lvarchar:
A Oracle = VARCHAR (% x) = sybase texto postgres db2 = "longo VARCHAR" Informix = lvarchar = VARCHAR (% x) = formigas VARCHAR (% x) = Ingres VARCHAR (% X,% y)
O maior negócio de todos, na minha opinião, é a manipulação null; A Oracle SILENCIOSAMENTE converte cadeias de entrada em branco para valores nulos. ... Em algum lugar, um longo tempo atrás, li um writeup alguém tinha feito sobre "Os Dezessete Significados de nulo" ou algo assim e o ponto real é que valores nulos são muito valiosos e a distinção entre uma cadeia nula e uma string vazia é útil e não-trivial! Eu acho que a Oracle fez um grande erro em um presente; nenhum dos outros tem este comportamento (que eu já vi).
Meu segundo pelo menos favorito foi ANTS porque ao contrário de todos os outros, que reforçou a regras tolas para perfeita sintaxe que absolutamente ninguém mais faz e enquanto eles podem ser a única empresa DB para fornecer perfeita aderência ao padrão, eles também são uma dor real em a coronha para escrever código para.
De longe, o meu favorito é Postgres; é muito rápido em situações _real_world_, tem grande apoio, e é open source / livre.