Apache Derbyを使用した開発 -- 3連単を当てる : 第3回 Apache Derbyによるデータベース開発

スクリプトを実行しデータを挿入する

自己記述式のSQLコマンド・ファイルの作り方を学びましょう。SQLコマンドと有用なコメントをテキスト・ファイルの中に置くことによって、コマンドを好きなだけ繰り返し実行することができます。この記事では、SQLスクリプト・ファイルの基本的な原理を紹介した後、スクリプト・ファイルを実行するための3つの方法について説明します。次に、SQLのINSERTステートメントを使ってテーブルにデータを挿入するための基本を学びます。その一例として、新たな10行を別々な方法で挿入します。そして最後に、このINSERTオペレーションを自動化するスクリプトを示します。このスクリプトは挿入操作の検証として、新たに挿入されたデータを表示します。

Robert Brunner (rb@ncsa.uiuc.edu), Research Scientist, National Center for Supercomputing Applications

Robert BrunnerRobert J. Brunnerは、米国立スーパー・コンピュータ応用研究所に科学者として勤務するかたわら、イリノイ大学アーバナ・シャンペーン校で天文学の助教授を務めています。何冊かの著作と、さまざまな分野にわたる数多くの記事や解説書を発表しています。



2006年 5月 12日

SQLスクリプト

このシリーズの前回の記事、「Apache Derbyを使用した開発: 第2回 スキーマ」(developerWorks, 2006年4月)では、ijツールのプロンプトからSQLコマンドを直接実行しました。ijツールを使うと、様々なSQLコマンドやDerbyコマンドを簡単に試すことができます。しかし場合によると、複数の、複雑なコマンドを実行したいこともよくあります。通常、複雑なSQLコマンド・セットのデバッグを単純化するには、まずコマンド・セットをテキスト・ファイルに書き、それからテキスト・ファイルの中にある全部のコマンドを一度に実行した方が簡単です。この操作は『SQLスクリプトを実行する』と言われますが、Apache Derbyを使えば、これを容易に行うことができます。SQLコマンドをスクリプト・ファイルの中に置くと、何度でも必要な回数だけコマンドを実行できる、という別の利点もあります。

スクリプト・ファイルは、必ずしも面倒なものではありません。リスト1に示す、最初のDerby SQLスクリプトの例を見てください。

リスト1. 最初のDerby SQLスクリプト
-- Ignore the database not created warning if present
connect 'jdbc:derby:test;create=true' ;

-- First delete the tables if they exist. 
-- Ignore the table does not exist error if present
DROP TABLE bigdog.products ;
DROP TABLE bigdog.vendors ;

-- CREATE the products table for bigdog's Surf Shop
CREATE TABLE bigdog.products (
itemNumber INT NOT NULL,
price DECIMAL(5, 2),
stockDate DATE,
description VARCHAR(128)
) ;

-- CREATE the products table for bigdog's Surf Shop
CREATE TABLE bigdog.vendors (
itemNumber INT NOT NULL,
vendornumber INT NOT NULL,
vendorName CHAR(64)
) ;

exit ;

リスト1に示すスクリプトは、前回の記事で説明したbigdogスキーマと2つのテーブル(productsとvendors)を再作成します。これらの概念をよく理解できない場合には、この記事を読む前に前回の記事を再度読んでください。この記事ではテーブルにデータを挿入するための基本を紹介するので、まず新しいデータを受け付けるためのテーブルを作る必要があります。

DerbyのSQLスクリプトを編集する

スクリプト・ファイルは単なるテキスト・ファイルであり、その中には、Apache Derbyのijツールから直接実行可能なSQLコマンドとApache Derbyコマンドが組み合わされて含まれています。スクリプト・ファイルは、Apache Derbyデータベースの開発や維持管理を容易にするための方法であり、またデータベースの構築方法を文書化したものでもあります。これらのファイルは、テキスト・エンコーディングによるエラーを防ぐために、RTFその他のフォーマットではなく、ASCIIテキスト・ファイルとして保存する必要があります。一部のテキスト・アプリケーション(Microsoft® Windows®システムのWordpadなど)では、ファイルを自動的にRTFとして保存しようとするため、よく注意する必要があります。さもないと、スクリプト・ファイルを実行しようとすると問題が起こる可能性があります。

テーブルを作成するSQLコマンドをDerbyのijツールに直接入力する代わりに、SQLコマンドをテキスト・ファイルに入れ、そのファイルの中のコマンドをijツールに直接実行させることができます。この記事には、2つのスクリプト・ファイルを含んだ.zipファイルが含まれています(この.zipファイルを利用するためには、ダウンロードのセクションを見てください)。このスクリプト・ファイルのうちの1つ、derby.create.sqlが、リスト1の中に示されています。この記事では、このスクリプト・ファイルの各ラインを1つづつ追って行きますが、皆さんはリスト1のコードを追うか、あるいはこのスクリプト・ファイルを適当なテキスト・エディターで開いてください。

このスクリプト・ファイルには、2つのダッシュ( -- )で始まるラインが幾つか含まれています。これらのラインはSQLコメントです。これらのコメントを使うと、スクリプト・ファイルの中の主なコンポーネントそれぞれの目的を簡単に記述することができます。このスクリプトの中にある最初の実際のコマンドは、Derbyのconnectコマンドです。このコマンドはijツールに対して、(必要な場合には最初にtestデータベースを作成してから)testデータベースに接続するように伝えます。次のコマンドはSQLのDROPステートメントであり、bigdogスキーマからproductsテーブルとvendorsテーブルを削除します。テーブルが存在しない場合には(データベースが作成された直後が正にそうです)、エラー・メッセージが表示されます。しかしコマンドの前にあるSQLコメントが示すように、これらのメッセージは無視しても安全です。

もしテーブルが存在する場合には、必要とする厳密なコラム定義を備えた新しいテーブルをすっきりと作成できるように、まず存在しているテーブルを削除します。その次の2つのSQLステートメントは、正にそれを行っています(つまりbigdogスキーマにproductsテーブルとvendorsテーブルを作成しています)。このスクリプトは、データベースへの接続を終了してijツールが適切に終了できるように、exitコマンドで終わっています。次のステップでは、Derbyのスクリプト・ファイルを実行する方法について学びます。

ijの中でスクリプトを実行する

ファイルの中にリストされたコマンドを実行するだけであれば、スクリプト・ファイルは便利です。SQLスクリプト・ファイルの中のコマンドを実行するための最も単純な方法としては、ijツールの中からスクリプト・ファイルを実行する方法です。しかしそのためには、まずtestというディレクトリーを作成し、この記事からダウンロードできるderby4.zipファイル(ダウンロードのセクションを見てください)を解凍しておく必要があります。このプロセスをリスト2に示します。

リスト2. ijの中でSQLスクリプトを実行する
rb$ mkdir test
rb$ cp derby4.zip test/
rb$ cd test/
rb$ unzip derby4.zip 
Archive:  derby4.zip
  inflating: derby.create.sql       
  inflating: derby.insert.sql             
rb$ ls
derby.create.sql      derby.insert.sql      derby4.zip
rb$ java org.apache.derby.tools.ij             
ij version 10.1
ij> run 'derby.create.sql' ;
ij> -- Ignore the database not created warning if present
connect 'jdbc:derby:test;create=true' ;
ij> -- First delete the tables if they exist. 
-- Ignore the table does not exist error if present
DROP TABLE bigdog.products ;
ERROR 42Y07: Schema 'BIGDOG' does not exist
ij> DROP TABLE bigdog.vendors ;
ERROR 42Y07: Schema 'BIGDOG' does not exist
ij> -- CREATE the products table for Bigdog's Surf Shop
CREATE TABLE bigdog.products (
itemNumber INT NOT NULL,
price DECIMAL(5, 2),
stockDate DATE,
description VARCHAR(128)
) ;
0 rows inserted/updated/deleted
ij> -- CREATE the products table for Bigdog's Surf Shop
CREATE TABLE bigdog.vendors (
itemNumber INT NOT NULL,
vendornumber INT NOT NULL,
vendorName CHAR(64)
) ;
0 rows inserted/updated/deleted
ij> exit ;

単にDerbyスクリプトを実行するだけであれば、リスト2は長すぎるように思えるかも知れませんが、プロセスそのものは単純です。この例では、ターミナルが開いていること(あるいはWindowsのCommandプロセスが開いていること・・・ただし、この例のステップの一部はUNIX®特有であることに注意してください)、そして、この記事で提供している2つのスクリプト・ファイルを含むderby4.zipファイルを保存したディレクトリーに変更してある、と想定しています。できるだけエラーが起きにくくするために、まず新しいディレクトリーを作成し、この新しいディレクトリーにderby4.zipファイルをコピーし、それからこの新しいディレクトリーに変更するようにします。次にサンプルの.zipファイルを解凍します。ディレクトリー・リストから分かるように、新しいディレクトリーには3つのファイル(derby4.zipとderby.create.sql、そしてderby.insert.sql)があります。ここではとりあえず、『create』スクリプト・ファイルを扱います。『insert』スクリプト・ファイルは、この記事の最後で使います。

もしうまく行かなかった場合は?

場合によると、いくら努力してもうまく行かないことがあります。もしderby.create.sqlスクリプトを安全に実行できない場合にチェックすべき項目としては、次のようなものを挙げることができます。

  • Derby ijツールが適切に起動していることを確認する。もし起動していなければ、CLASSPATHの問題があるかも知れません。
  • 新しいデータベースを作成するために充分なディスク・スペースがあることを確認する。
  • スクリプト・ファイルを実行しようとしているディレクトリーの中で、(スクリプト・ファイルを読み、新しいデータベースを作成するための)適切なパーミッションを持っていることを確認する。
  • スクリプト・ファイルが、単純なASCIIテキスト・ファイルであることを確認する。

それでもダメな場合には、最新のDerbyドキュメンテーションをチェックします。このドキュメンテーションは、Apache DerbyのWebサイト(参考文献にリンクがあります)から無料で入手することができます。あるいは、Derbyのメーリング・リストに質問を投げてみることです。

リスト2の残りの部分は、derby.create.sqlスクリプト・ファイルをDerby ijツールの内部から実行するための方法を示しています。まず、ijツールを起動します。この方法がよく分からない場合には、このシリーズの最初の記事で説明した、Derbyインストールの検証ステップを見てください。ij>プロンプトが表示されたら、適当なスクリプト・ファイルを実行することができます。実行にはrunコマンドを使います。このコマンドには、1つの引数(単一引用符で囲んだ、スクリプト・ファイルの名前)があります。

このスクリプトを実行すると、新しいij>プロンプトや、コマンド、警告メッセージやエラー・メッセージなど様々なものが見えるかも知れません。こうした表示は奇妙に思えるかも知れませんが、runコマンドは、あたかもijツールに直接コマンドを打ち込んでいるかのようにスクリプト・ファイルを実行するのです。最後にexitコマンドが処理されてスクリプトが完了し、ijツールをシャットダウンします。皆さんが実行した最初のスクリプトの出力がリスト2に示したものと一致すれば、「おめでとうございます」です。これで、いつでもデータを入れられる2つの新しいテーブルを持った、新しいtestデータベースができました。

ijツールの内部からスクリプトを実行する手法は効果的ですが、さらにプロセスを自動化した方が簡単、という場合もあります。次のセクションでは、Derbyスクリプト・ファイルをコマンドラインから実行する方法について説明します。

コマンドラインからスクリプトを実行する

このセクションでは、コマンドラインからスクリプトを実行するための2つの手法を検証します。そのうちの最初の手法をリスト3に示します。

リスト3. コマンドラインからSQLスクリプトを実行する
rb$ java org.apache.derby.tools.ij derby.create.sql
ij version 10.1
ij> -- Ignore the database not created warning if present
connect 'jdbc:derby:test;create=true' ;
WARNING 01J01: Database 'test' not created, connection made to existing database instead.
ij> -- First delete the tables if they exist. 
-- Ignore the table does not exist error if present
DROP TABLE bigdog.products ;
0 rows inserted/updated/deleted
ij> DROP TABLE bigdog.vendors ;
0 rows inserted/updated/deleted
ij> -- CREATE the products table for Bigdog's Surf Shop
CREATE TABLE bigdog.products (
itemNumber INT NOT NULL,
price DECIMAL(5, 2),
stockDate DATE,
description VARCHAR(128)
) ;
0 rows inserted/updated/deleted
ij> -- CREATE the products table for Bigdog's Surf Shop
CREATE TABLE bigdog.vendors (
itemNumber INT NOT NULL,
vendornumber INT NOT NULL,
vendorName CHAR(64)
) ;
0 rows inserted/updated/deleted
ij> exit ;

リスト3は、コマンドラインから直接スクリプト・ファイルを実行するための、最初の方法を示しています。この場合には、スクリプト・ファイルの名前を、ijツールへのコマンドライン引数として渡します。スクリプト・ファイルの各ラインは、前の場合と同じように連続的に読まれ、処理されます。もし、最初はderby.create.sqlスクリプトをijツール内から直接実行し、同じディレクトリーにある同じスクリプト・ファイルを今度はコマンドラインから実行すると、リスト3のような出力(最初のライン後のすべて)が見えるはずです。ここで示されているように、testデータベースは既に存在しているため作成されなかった、という警告メッセージが出ます。ただし今回は、2つのテーブルを削除できないというエラー・メッセージは出ません。これは(リスト2に示すように)、この2つのテーブルは既に作成してあるためです。productsとvendorsというテーブルを削除した後で再度作成すると、スクリプトは終了します。

Derbyスクリプトを実行する方法としては、実はもう1つあります。ijツールの標準入力をリダイレクトし、スクリプト・ファイルから読む方法です。UNIXベースのオペレーティング・システムの場合であれば、一番簡単なのは、自分の使っているシェルに適切なSTDINリダイレクト文字(例えばBashシェルの場合は「<」というシンボルなど)を使う方法です。リスト4はこの方法を説明したものですが、画面上に表示される出力の量を減らせるというメリットがあります。

リスト4. コマンドラインからSQLスクリプトを実行する(その2)
rb$ java org.apache.derby.tools.ij < derby.create.sql
ij version 10.1
ij> WARNING 01J01: Database 'test' not created, connection made to existing database instead.
ij> 0 rows inserted/updated/deleted
ij> 0 rows inserted/updated/deleted
ij> 0 rows inserted/updated/deleted
ij> 0 rows inserted/updated/deleted
ij>
rb$

リスト4を見ると分かるように、ijツールの標準入力をリダイレクトしてスクリプトを実行する場合に表示されるテキストは、ijツールが表示するメッセージのみです(このメッセージには、0 rows inserted/updated/deletedのような情報メッセージや、警告やエラーのメッセージなどが含まれています)。こうしたメッセージを削除したい場合は、ijツールの標準出力と標準エラーをリダイレクトします。例えばBashシェルで作業している場合には、下記のようにします。

java org.apache.derby.tools.ij < derby.create.sql > derby.create.out 2> derby.create.err

これによって、

derby.create.sql

スクリプト・ファイルが実行され、出力メッセージが

derby.create.out

に保存され、すべてのijエラー・メッセージが

derby.create.err

に保存されます。

今度は、Apache Derbyを使ってテーブルの中にデータを挿入するプロセスに注目することにします。そのためには、productsテーブルが利用可能なDerbyデータベースが必要です。まだderby.create.sqlスクリプト・ファイルを実行していない場合は、このファイルを実行しておく必要があります。


Apache Derbyにデータを挿入する

データベース・アプリケーションを構築する際に最も重要な作業の1つは、データベースの中にデータを挿入することです。いかにデータベース・ソフトウェアが優れていても、おかしなデータをデータベースに入れてしまうと、すべてが無駄になります。データベースにデータを挿入する方法には幾つかありますが、この記事のこれから先では、SQLのINSERTステートメントを使ってApache Derbyデータベースにデータを挿入する方法を中心に説明します。

SQLのINSERTステートメント

SQLのINSERTステートメントを使ってApache Derbyデータベースにデータを挿入する前に、このステートメントの正しい使い方を知っておく必要があります。リスト5は、Apache DerbyでのSQL INSERTステートメントの完全な構文を示しています。

リスト5. SQL INSERTの構文
INSERT INTO table-Name
    [ (Simple-column-Name [ , Simple-column-Name]* ) ]
	  Expression

この構文は、皆さんにもおなじみなはずです。前回の記事で説明した通り、大括弧([ ])がオプション・パラメーターを囲んでいます。すぐには目的が分かりにくいコンポーネントはExpressionのみですが、この単純な言葉が、一体どれだけ複雑になりうるのでしょうか。もちろん、見かけで騙されてはいけません。Expressionという用語は、次のように4つの別々な構造に拡張できるのです。

  • 1行のVALUESリスト
  • 複数行のVALUESリスト
  • SELECT表現
  • UNION表現

これらのうち、最後の2つはこの記事の範囲外であり、今後の記事で詳しく説明する予定です。最初の2つは似ています。唯一の違いは、最初の形式はテーブルの中に1つの行を挿入しますが、2番目の形式は複数の行を挿入するという点のみです。

SQL INSERTステートメントのオプション部分を使うと、テーブルの中に挿入される値の列順序を規定することができます。デフォルトでは、データは、テーブルが作成された時に列がリストされている順序と同じ順所でテーブルの列に挿入されます。しかし場合によると、この順序を変更したい、あるいは、NOT NULL制約を持つ列に対してのみ値を規定したい、という場合があります。SQLのINSERTステートメントの中に明示的に列をリストすると、より細かく操作を制御でき、こうした特定なユースケースを容易に処理することができます。

SQL VALUES表現の構文は、リスト6に示すように非常に単純です。

リスト6. SQL VALUESの構文
{
    VALUES ( Value {, Value }* )
        [ , ( Value {, Value }* ) ]* |
    VALUES Value [ , Value ]*
 }

この構文は、最初に複数行のフォーマットを表示し、その後に単一行のフォーマットを表示します(縦線文字(|)は『or』を意味し、アスタリスク(*)は1つ以上を意味することを思い出してください)。valueという用語は、特定な列に挿入するための値を表します。複数列にデータを挿入するためには、1行に対するデータを括弧で囲み、括弧同士をカンマで区切ります。

次の2つのセクションでは、実装されている構文の例を示します。

SQLを使ってデータを挿入する

リスト7に示すように、テーブルにデータを挿入するためには、まずijツールを起動してデータベースに接続する必要があります。テーブルにデータを挿入するためには、テーブルが存在する必要があることを思い出してください。先に説明した通り、まだテーブルを作成するスクリプトを実行していない場合には、まずそのスクリプトを実行する必要があります。

リスト7. 単一行を挿入する
rb$ java org.apache.derby.tools.ij           
ij version 10.1
ij> connect 'jdbc:derby:test' ;
ij> INSERT INTO bigdog.products 
    VALUES(1, 19.95, '2006-03-31', 'Hooded sweatshirt') ;
1 row inserted/updated/deleted
ij> INSERT INTO bigdog.products(itemNumber, price, stockDate, description) 
    VALUES(2, 99.99, '2006-03-29', 'Beach umbrella') ;
1 row inserted/updated/deleted
ij> INSERT INTO bigdog.products(itemNumber, price, stockDate) 
    VALUES(3, 0.99, '2006-02-28') ;
1 row inserted/updated/deleted
ij> exit ;

これは、bigdog.productsというテーブルに3つの単一行を挿入する場合の例です。最初のSQL INSERTステートメントは列のリストは提供せず、itemNumberとprice、stockDate、そしてdescriptionを挿入します。stockDate列に挿入された値もdescription列に挿入された値も、単一引用符で囲まれていることに注意してください。description列は可変長の文字ストリングなので、ストリングを想定しています(文字データを単一引用符で囲むことによって、ストリングであることを示唆します)。一方、stockDate列はdate列であり、日付や月、年の情報を適切に構文解析できるようにするためには、単一引用符で囲んだデータを渡す必要があります。(SQL INSERT操作を行う際のデータ型フォーマットの指針については、前回の記事を見てください。)

2番目のSQL INSERTステートメントは、4つの列すべてを明示的にリストし、新しい値を適切に挿入します。最後のSQL INSERTステートメントは、3つの列のみをリストし、3つの値のみを挿入します。description列は空のまま残されますが、これはNULL値を持つことを意味します。

単一行を挿入するSQL INSERTステートメントは便利ですが、複数行を挿入する必要がある場合には、リスト8のように直接行った方が効率的です。

リスト8. 複数行を挿入する
rb$ java org.apache.derby.tools.ij           
ij version 10.1
ij> connect 'jdbc:derby:test' ;
ij> INSERT INTO bigdog.products(itemNumber, price, stockDate, description)
    VALUES (4, 29.95, '2006-02-10', 'Male bathing suit, blue'),
           (5, 49.95, '2006-02-20', 'Female bathing suit, one piece, aqua'),
           (6, 9.95, '2006-01-15', 'Child sand toy set'),
           (7, 24.95, '2005-12-20', 'White beach towel'),
           (8, 32.95, '2005-12-22', 'Blue-striped beach towel'),
           (9, 12.95, '2006-03-12', 'Flip-flop'),
           (10, 34.95, '2006-01-24', 'Open-toed sandal') ;
7 rows inserted/updated/deleted
ij> exit ;

この例では、まずijツールを起動してデータベースに接続します。次のラインでは、データベースに7つの行を挿入しています(この際、4つの列すべてを明示的にリストし、各行に新しい値を与えています)。先ほど説明した通り、複数行挿入では、新しい行それぞれに対する値を括弧で囲み、そうした値をカンマで区切ります。このSQL INSERTステートメントの後、ijツールは、新しい7つの行が挿入されたことをレポートします。

Apache Derbyにデータを挿入する

複数行挿入は単一行挿入を複数回行うよりも好ましいのですが、もっと良いのは、スクリプト・ファイルにSQL INSERTステートメントを置き、そのスクリプトを実行してデータを挿入する方法です。この方法を使うと、より容易にエラー修復を行うことができ、また必要な場合には、必須のSQL INSERTステートメントを再度作成しなくてもデータを再挿入することができます。先に説明した通り、この記事でダウンロードできる.zipファイルには、2つのSQLスクリプト・ファイルが含まれています。2番目のスクリプト・ファイル(derby.insert.sql)は、この前のセクションで説明した10行をデータベースに挿入します。そして単純なクエリーを実行し、その結果を表示するので、その表示から挿入操作を検証することができます。クエリー操作を実行する機構に関しては次回の記事で詳細に説明する予定ですが、挿入スクリプトを実行するためにはクエリーを理解している必要はありません。

このスクリプトを実行するには、この記事の最初で示した3つの方法のどれか1つを選択します。リスト9では、挿入スクリプトは、スクリプト・ファイルから読み取るためのijツールの標準入力をリダイレクトすることによって実行されています。10行が挿入され、その結果が画面に表示されます。

リスト9. 挿入操作を検証する
$ java org.apache.derby.tools.ij < derby.insert.sql
ij version 10.1
ij> ij> 10 rows inserted/updated/deleted
ij> ITEMNUMBER |PRICE   |STOCKDATE |DESCRIPTION                              
-------------------------------------------------------------------------------
1          |19.95   |2006-03-31|Hooded sweatshirt                             
2          |99.99   |2006-03-29|Beach umbrella                                 
3          |0.99    |2006-02-28|                                               
4          |29.95   |2006-02-10|Male bathing suit, blue                        
5          |49.95   |2006-02-20|Female bathing suit, one piece, aqua           
6          |9.95    |2006-01-15|Child sand toy set                             
7          |24.95   |2005-12-20|White beach towel                              
8          |32.95   |2005-12-22|Blue-striped beach towel                        
9          |12.95   |2006-03-12|Flip-flop                                      
10         |34.95   |2006-01-24|Open-toed sandal                               

10 rows selected
ij> ij> rb$

まとめ

この記事では、主に2つの話題に関して説明しました。最初に、SQLスクリプト・ファイルという概念を紹介しました。この概念を使うと、複数のSQL(あるいはDerby)コマンドを自動化して実行することができます。Apache Derby ijツールを使ってSQLスクリプト・ファイルを実行する方法としては、3つがあります。ツール内部から実行する方法と、runコマンドを使う方法、そしてコマンドラインから直接実行する2つの方法のどちらかを使用する方法です。そして次に、INSERTステートメントに対するSQL構文について調べ、このステートメントを使ってDerbyデータベースにデータを挿入する方法の例を見てきました。今後の記事では、今回の内容を基礎としてApache Derbyデータベースからデータをクエリーし、アップデートし、削除して行きます。


ダウンロード

内容ファイル名サイズ
Derby SQL scripts for this article derby4.zip1KB

参考文献

学ぶために

製品や技術を入手するために

  • Apache Derbyをダウンロードしてください。
  • 皆さんの次期オープンソース開発プロジェクトを、IBM trial softwareを使って構築してください。ダウンロード、あるいはDVDで入手することができます。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source, Information Management
ArticleID=232557
ArticleTitle=Apache Derbyを使用した開発 -- 3連単を当てる : 第3回 Apache Derbyによるデータベース開発
publish-date=05122006