前回ご紹介したリレーショナル・データベース以外にも、データベースには、いろいろな種類があります。また、同じリレーショナル・データベースであっても、一部の機能については、実際に利用する製品によって異なる場合があります。今回は、代表的なリレーショナル・データベース製品であるOracleとSQL Serverの2つを例にとって、その違いを説明します。次に、リレーショナル・データベース以外のデータベースの例として、カラム型データベース、多次元データベース、NoSQLデータベースの3つをご紹介します。
OracleとSQL Serverの違い
OracleとSQL Serverは、いずれも代表的なリレーショナル・データベース製品ですが、連載第3回で登場した基本的なSQL文の中でさえ、文法が異なるものが2つあります。
1つ目は文字列を結合するSQL文です。連載第3回では、文字列の結合には、「||」を使用しましたが、これはOracleでの文法です。

SQL Serverでは、「||」のかわりに「+」を使用しますので、SQLは以下のようになります。

2つ目は、年齢をもとめるSQL文です。連載第3回では、「GETDATE」と「DATEDIFF」を使用しましたが、これはSQL Serverでの文法です。

Oracleでは、現在の日時を得る関数は「SYSDATE」になります。また、Oracleには、「DATEDIFF」に相当する関数がありませんので、より複雑な手順が必要になります。
① 現在の日時と生年月日を、それぞれ「TO_CHAR」関数で8桁の文字列に変換する
② 文字型になった現在の年月日と生年月日を引き算して、結果を10000で割る(桁を4桁ずらす)
③ もとめられた結果の小数点以下を「TRUNC」関数で切り捨てる
Oracleで年齢をもとめるSQL文は以下のようになります。

このように、ごく基本的なSQL文でも実際に利用する製品によって異なる場合がありますので、注意が必要です。
この記事は参考になりましたか?
- DB入門連載記事一覧
-
- いろいろなデータベース
- リレーショナル・データベース入門
- Excelでもできるデータベース体験(後編)
- この記事の著者
-
平井 明夫(ヒライ アキオ)
株式会社エムキューブ・プラスハート 事業企画コンサルタントDEC、コグノス、オラクル、IAFコンサルティングにおいて20年以上にわたり、ソフトウエア製品やITサービスのマーケティング、事業企画・運営に携わる。現在は、事業企画コンサルタントとしてIT企業の新規事業立上げ、事業再編を支援するかたわら、デ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア