スポンサードリンク



AccessとBase SQL文の書き方の違いについて説明します。

業務系システム開発では、OpenOffice.org Baseを使います。

実は、AccessのSQL文とBaseのSQL文には、ちょっと違いがあります。

Baseというよりは、標準で使う設定となっているHSQLDBとの違いですが。

例えば、
Accessで以下のように書くSQLは、

SELECT PREF_CD, PREF_NAME FROM T01Prefecture;


HSQLDBだと以下のように書きます。

SELECT "PREF_CD", "PREF_NAME" FROM "T01Prefecture"


Baseで実行した画面
gsystem-10.gif

違いは、
・テーブル名、フィールド名を「"」ダブルクォーテーションで囲むこと
・最後の「;」セミコロンが無いこと
などです。

別の例を見てみましょう。

Accessの場合

SELECT ZIP_CODE, Count(ZIP_CODE) AS CNT
FROM T03Town
GROUP BY ZIP_CODE;


HSQLDBの場合

SELECT "ZIP_CODE", COUNT( "ZIP_CODE" ) AS "CNT" FROM "T03Town" GROUP BY "ZIP_CODE"


SQL文を改行しないこともポイントです。

ただし、Baseのクエリーでツールボタンの「SQLコマンドを直接実行」をOFFにしてから実行すると、Accessと同じ書き方でも可能です。

学習に便利な方法なので、試してみてください。

またHSQLDBでは、演算に「&」(アンパサンド)が使えないので、「+」を使います。

以下のSQL文なら、HSQLDBでも実行可能です。

SELECT TOWN_CD,T03Town.CITY_CD,
CITY_NAME + TOWN_NAME AS ADDRESS
FROM T03Town,T02City
WHERE T03Town.CITY_CD = T02City.CITY_CD;


これをHSQLDB風に書くと、

SELECT "T03Town"."CITY_CD", "T03Town"."TOWN_CD", "T03Town"."TOWN_NAME", "CITY_NAME" + "TOWN_NAME" FROM "T03Town", "T02City" WHERE "T03Town"."CITY_CD" = "T02City"."CITY_CD"

となります。


スポンサードリンク






業務系システム開発初心者入門講座 TOPへ