3つの大規模データベース管理システムを試してみたいと思います。この目的のために、それぞれに同じデータベース(同じテーブルなど)を用意すると便利です。
MySQL、MSSQL、Oracle用の同一のテストデータベースを作成するSQLスクリプトはどこにありますか?
3つの大規模データベース管理システムを試してみたいと思います。この目的のために、それぞれに同じデータベース(同じテーブルなど)を用意すると便利です。
MySQL、MSSQL、Oracle用の同一のテストデータベースを作成するSQLスクリプトはどこにありますか?
回答:
Oracleはいくつかのサンプルスキーマを提供していますが、Rolandoの回答と同様に、これらを他のデータベースに変換する必要があります。
簡単に言えば、同じスクリプトを使用しないでください。
各データベースで可能な限り類似したスクリプトを使用する場合の問題は、最小公分母機能を使用することです。データベースを使用するには、インフラストラクチャ、インストール、サポート、開発への投資が必要ですが、各プラットフォームの利点を活用しないと、データベースの可能性を最大限に引き出すことができません。
これらのプラットフォームを真に比較するには、要件を特定し、各データベースに可能な限り最良の方法で要件を実装することをお勧めします。もちろん、これにはプラットフォームに関するかなり多くの知識が必要ですが、その他の比較は学術的なものにすぎません。
2つの例を示します。
要件:特定の日付範囲のすべての日を、その日の売上の有無に関係なく、その日の売上データと共に表示します。
ソリューション: Oracleでは、範囲内のすべての日を返すデュアルで階層クエリを使用してクロス結合を行う場合があります。SQL-Serverでは、CTEを使用して日数を生成できます。MySQLでは、完全に別のものを使用する場合があります。1
要件:過去4時間以内の任意の時点で存在していたテーブルのデータを取得するために、いつでもクエリを実行できること。
解決策: Oracleでは、UNDO保持が保証され、少なくとも4時間に設定されていることを確認するだけで済みます。他のデータベースでは、実装は劇的に異なります。2
MySQLはサンプルの従業員と世界のデータベースを提供します
これらをOracleおよびSQL Serverで動作するようにSQLを変換することができます。