DBの共通点
RDBMSとしての各種機能
* データ管理 * ユーザ管理 * バックアップ * レプリケーション => データベース全体のコピーを作ったり、そのコピーのこと(Replication:複製する、cf.レプリカ)
SQL(ANSI/ISOで標準化してある文)
=> ただし、文法上の微妙な違いがあるので、注意すること
DBの違い
商用 or 無償
* 商用:Oracle, SQL Server etc * 無償:MySQL, Postgre SQL(ぽすとぐれすきゅーえる) etc => MySQL : GPLと商用のデュアルライセンス => PostgreSQL : BSDに基づくライセンス
各機能の使い方
* コマンドの違い など
SQLの方言
データ型
=> サポートされている型や独自の型など違いが大きい => SQL Serverの文字列型については以下を参照のことhttp://blogs.yahoo.co.jp/dk521123/29837546.html
=> Oracleのデータ型については以下を参照のことhttp://blogs.yahoo.co.jp/dk521123/11973163.html
関数
=> 対応・未対応のメソッドが各DBによって、異なる
空文字とDBNullの考え方の違い
=> 「SELECT 1 WHERE '' = ''」「SELECT 1 WHERE '' IS NULL」を試してみるといい => PostgreSQL : '' と DBNullは異なる => Oracle : '' と DBNullは同じ扱い => 詳細は以下を参照のことhttp://blogs.yahoo.co.jp/dk521123/18349448.html
デフォルト
* 大文字と小文字 => MySQL : 区別しない => PostgreSQL : 区別される => SQL Server : 区別しない(詳細は以下を参照のこと)http://blogs.yahoo.co.jp/dk521123/30286038.html
* トランザクション => Oracle : トランザクションは自動的に始まり、COMMITあるいはROLLBACKなどで処理終了 (つまり、明示的にコミットやロールバックをしなければトランザクションは終了しない) => SQL Server : SQL文が実行されるたびにトランザクションがコミット(COMMIT)されるhttp://www.atmarkit.co.jp/fdotnet/vblab/oracledbentry_02/oracledbentry_02_01.html
歴史(サポートした年)
レプリケーション
=> Oracle : Since 1992 => MySQL : Since 2003 => PostgreSQL : Since 2010
ストアド
=> Oracle : Since 1988 => MySQL : Since 2005 => PostgreSQL : Since 1998