【ハウツー】

新機能満載! Pure Java DBの最新版「HyperSQL 2.0」を試してみよう

2 HyperSQL 2.0の新機能

    竹添直樹  [2010/07/09]

    続いてHyperSQL 2.0での新機能のうち、特に使い勝手に影響するものピックアップして紹介していく。2.0での新機能の詳細なリストはこちらを参照してほしい。

    SQL標準への準拠

    SQLパーサなども大幅なリライトが行われており、ANSI-92 SQLのほぼすべてと、SQL:2008の多くをサポートするようになった。これによってBETWEENやMERGE文などが利用できるようになった。また、BIT、BLOB、CLOB、INTERVALなどSQL標準で定義されているデータ型や、SUBSTRINGやTRIMなどの標準的な関数も追加されている。

    配列型

    データ型として配列型が利用できるようになった。以下に配列型を使用したテーブル定義の例を示す。

    CREATE TABLE CONTACT_LIST (
      ID INT PRIMARY KEY, 
      NAME VARCHAR(100) NOT NULL, 
      MAILS VARCHAR(100) ARRAY[10])
    

    このテーブルにレコードをインサートするには以下のようにする。

    INSERT INTO CONTACT_LIST VALUES
      (1, 'Naoki Takezoe', 
      ARRAY['takezoe@gmail.com', 'takezoe@example.com']);
    

    トリガー

    HyperSQL 2.0ではトリガーもサポートされている。以下にトリガー定義の例を示す。

    CREATE TRIGGER INSERT_USER_INFO AFTER INSERT ON USER_INFO
    FOR EACH ROW 
      UPDATE USER_INFO SET FULL_NAME = FIRST_NAME + ' ' + LAST_NAME
    

    ストアドファンクション

    これまではJavaで実装したstaticメソッドをSQLから呼び出すことはできたものの、いわゆる一般的なストアドファンクション/プロシージャはサポートされていなかった。HyperSQL 2.0ではSQL/Javaによるストアドが利用きるようになった。

    以下はSQLによるストアドファンクションの定義例だ。このストアドファンクションは引数に渡した時間から-1時間した値を返す。

    CREATE FUNCTION AN_HOUR_BEFORE (T TIMESTAMP)
      RETURNS TIMESTAMP
      RETURN T - 1 HOUR
    

    この関数はSQLの中で通常の関数と同じように利用することができる。

    SELECT 
      AN_HOUR_BEFORE(EVENT_TIMESTAMP) AS NOTIFICATION_TIMESTAMP,
      EVENT_NAME
    FROM EVENTS
    

    ストアドプロシージャ

    ストアドプロシージャの例も見てみよう。

    CREATE PROCEDURE NEW_USER_INFO 
      (FIRST_NAME VARCHAR(100), LASTS_NAME VARCHAR(100))
      MODIFIES SQL DATA
      INSERT INTO USER_INFO 
        VALUES (DEFAULT, FIRST_NAME, LAST_NAME)
    

    上記のストアドプロシージャは以下のようにして呼び出すことができる。

    CALL NEW_USER_INFO('Naoki', 'Takezoe');
    

    ここでは取り上げないが、ストアドファンクション/プロシージャはJavaで実装することも可能だ。複雑な処理や、外部リソースを使用するストアドを実装することができるだろう。

    まとめ

    HyperSQL 2.0は5年の開発期間を要しただけあり、新機能満載のリリースだ。HSQLDBはJavaにおける高速な組み込み/軽量データベースとして定評のあるプロダクトではあるが、近年はApache DerbyやH2など機能面で勝る競合プロダクトが多く登場し、それらの影にかくれがちだった面もある。今回のリリースによってHyperSQL 2.0が再び軽量Javaデータベースの主役に躍り出るかもしれない。

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン