2011-09-21 7 views
31

maggior parte dei database SQL seguono gli standard ANSI SQL ad un grado, maElenco delle differenze tra i database SQL

  1. Lo standard è ambigua, lasciando alcune aree soggette a interpretazione (ad esempio: come le diverse operazioni con NULLs dovrebbe essere gestito is ambiguous)

  2. Alcuni fornitori contraddicono la vera e propria norma o semplicemente mancanza di funzionalità definite dallo standard (ad esempio: MySQL ha un list of differences tra la norma e la loro attuazione)

  3. Alcuni database si comportano in modo diverso a seconda di come sono configurati, ma la configurazione può essere modificata in modo che si comportino allo stesso modo (ad esempio: Oracle esegue confronti con distinzione tra maiuscole e minuscole per impostazione predefinita, mentre SQL Server li rende insensibili)

  4. c'è alcune funzionalità che non fa parte dello standard, ma è implementato da diversi RDBMS in ogni caso, anche se con nomi diversi (es: Oracle LISTAGG = di MySQL GROUP_CONCAT)

c'è una risorsa con un approccio globale elenco di quirks e trucchi per prestare attenzione a quando stai cercando di scrivere qualcosa che dovrebbe essere compatibile con più database?

+0

+1 preziosa domanda. Una cosa da tenere presente è che non solo incontrerai problemi di compatibilità, dovresti anche prendere in considerazione la possibilità di testare le tue soluzioni sui principali RDBMS supportati per assicurarti che non ci siano risultati di prestazioni oscure e che non ci sia ancora nulla di non documentato. Alla fine della giornata dovresti occuparti di te stesso e dire quali piattaforme supporti in modo specifico, affermando che altre piattaforme potrebbero essere supportate in seguito. – Seph

+0

Davvero una domanda preziosa che, sfortunatamente, rimane senza risposta. – FDavidov

+1

Mi piace il riferimento rapido di OReilly SQL perché mi mostra una varietà di sintassi e differenze tra diversi dialetti. Sfortunatamente questo è un bersaglio mobile con nuove funzionalità e cambia ogni volta che escono nuove versioni. C'è anche http://sqlfiddle.com/ che ti permetterà di provare diverse versioni di server (oracle, mysql, ...) e persino versioni di un determinato server (mysql 5.5 e 5.6). – argoc

risposta

1

eccezione del già mentioned qualche confronto si possono trovare nel Wikipedia

Anche domanda simile è stato già pubblicato sul Stackoverflow dove puoi trovare un paio di link utili.