■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 2007年12月09日 楽しいJava講座 - 初心者から達人へのパスポート vol.082 セルゲイ・ランダウ バックナンバー: http://www.flsi.co.jp/Java_text/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ [このメールマガジンは、画面を最大化して見てください。] ======================================================== ◆ 01.Tomcatのアプリケーション開発 ======================================================== では、残りのテーブルを作るために、以下のSQL文をファイルに 保管してから実行することにしましょう。 つまり、MySQLのコマンド・ライン・クライアントに直接入力す るのと同じコマンドを、予めファイルに入れて保管しておくわけ です。 (1) [テーブル名]:ITEM -------------------------------------------------------- create table ITEM ( NUM char(5) not null, NAME varchar(20) not null, PRICE integer not null, IMAGE varchar(100), CATEGORY varchar(20) not null, QUANTITY integer not null, primary key(NUM) ); -------------------------------------------------------- これは、C:\JavaWorksフォルダーの中に、 ITEM.sql というファイル名で保管することにしましょう。 なお、商品番号(NUM)を文字列型(char)にしているのは、純粋 な数値の番号ではなく、文字も含むことを許容するためです。 純粋な数値にしてもかまわないのですが、一般には文字がはいって いたほうが、(何らかの単語の頭文字を含めるなどして)わかりや すい商品番号を作れるからです。 念のため、前回作成したCUSTOMERテーブルについてもファイルだけは 作成しておきましょう。 (2) [テーブル名]:CUSTOMER -------------------------------------------------------- create table CUSTOMER ( NUM char(5) not null, NAME varchar(20) not null, ZIPCODE char(8) not null, ADDRESS varchar(100) not null, primary key(NUM) ); -------------------------------------------------------- これも先ほどと同じフォルダーに CUSTOMER.sql というファイル名で保管しておきましょう。 なお、顧客番号(NUM)を文字列型(char)にしているのは、商品番号 の場合と同じ理由です。 たとえば、顧客番号の先頭にTがついている場合は一時(temporary)的 な(会員登録をしていない)顧客を表す、というふうにわかりやすい 意味づけを行うことができます。 (3) [テーブル名]:ORDERHEADER -------------------------------------------------------- create table ORDERHEADER ( O_NUM integer not null, C_NUM char(5) not null, O_DATE date not null, PAYMENT decimal(1,0) not null, DELIVERY decimal(1,0) not null, primary key(O_NUM), foreign key(C_NUM) references CUSTOMER (NUM) on delete cascade ); -------------------------------------------------------- これも先ほどと同じフォルダーに ORDERHEADER.sql というファイル名で保管しておきましょう。 なお、decimal(1,0)というのは、桁数が1で、小数点以下が0桁の数 であることを表します。 PAYMENTとDELIVERYについては、1桁の数しか使いませんので、この ように指定しておきます。なお、decimal(1,0)の代わりにdecimal(1) あるいはdec(1)あるいはdec(1,0)と書いても同じ意味になります。 (4) [テーブル名]:ORDERITEM -------------------------------------------------------- create table ORDERITEM ( O_NUM integer not null, SEQ_NUM integer not null, I_NUM char(5) not null, QUANTITY integer not null, primary key(O_NUM, SEQ_NUM), foreign key(O_NUM) references ORDERHEADER (O_NUM) on delete cascade, foreign key(I_NUM) references ITEM (NUM) on delete cascade ); -------------------------------------------------------- これも先ほどと同じフォルダーに ORDERITEM.sql というファイル名で保管しておきましょう。 ┌補足─────────────────────────┐ これらのファイルを編集するには、NoEditorという無料のテキス ト・エディター http://www.vector.co.jp/soft/winnt/writing/se300436.html を使うと便利ですね。NoEditorはSQLをはじめ、さまざまな言語を 認識して色分けしてくれるし、UnicodeやEUC(UNIXやLinuxなどで 使用される文字コード)にも対応しています。 というわけで、NoEditorをインストールして使用することをお勧 めします。 └───────────────────────────┘ では、これらのファイルをMySQLに読み込ませて実行させてみましょう。 (1) 前回と同じくMySQLのコマンド・ライン・クライアントを起動しま す。そのためには、パソコンの 「スタート」ボタン→「すべてのプログラム」→「MySQL」→ 「MySQL Server 5.0」→「MySQL Command Line Client」 を選択します。 (2) rootのパスワードを聞いてきますので、MySQLのインストール時に 設定した rootpass を入力しましょう。 (3) MySQLのプロンプト(mysql>)が現れたら、INTSHOPデータベースを 使用するために以下のコマンドを入力します。 use INTSHOP (4) 先ほどのSQLのファイルを読み込ませて実行させるために以下の コマンドを入力します。 source C:\JavaWorks\ITEM.sql (sourceの代わりに\.を入力することもできます。) source C:\JavaWorks\ORDERHEADER.sql source C:\JavaWorks\ORDERITEM.sql 以上で、前回と合わせて、CUSTOMER、ITEM、ORDERHEADER、ORDERITEM の4つのテーブルができているはずです。確認してみましょう。 以下のコマンド(これもSQL文の一種です)を入力してみてください。 show tables; テーブル名がリストされますので、4つのテーブルがすべてそろって いるか確認してください。(前回もお話しましたが、Windows環境の MySQLではデータベース名やテーブル名は大文字と小文字が区別され ないので、さきほどのSQL文中で大文字で指定したテーブル名もここ では小文字でリストされたりしますが、UNIXやLinuxではきちんと区別 されます。逆に、UNIXやLinux環境のMySQLでは、同じ綴りのテーブル名 でも、大文字で書いたテーブル名と小文字で書いたテーブル名は別の テーブルとして扱われてしまうので、注意が必要です。) ちなみに、使用するデータベース名を忘れたときには show databases; というコマンドを入力すれば、データベースのリストが出てきます。 (我々が作成したINTSHOP以外にも、MySQLが予め(インストール時に) 用意しているデータベースがあるので、複数のデータベースがリスト されます。) その他、コマンドの使い方について詳しく知りたい人は、MySQLの マニュアル(取扱説明書) http://dev.mysql.com/doc/refman/5.1/ja/index.html などをご覧ください。 ところで、上記のような操作を行うにあたって、GUIベースのもっと 便利なツールがEclipseのプラグインとして存在しますので、次回 インストールして使うことにしましょう。 ここで、MySQLのコマンド・ライン・クライアントを終了しておきま しょう。 quit と入力してください。 (次回に続く) 何か、わからないところがありましたら、下記のWebページまで質問を お寄せください。 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ★ホームページ: http://www.flsi.co.jp/Java_text/ ★このメールマガジンは 「まぐまぐ(http://www.mag2.com)」 を利用して発行しています。 ★バックナンバーは http://www.flsi.co.jp/Java_text/ にあります。 ★このメールマガジンの登録/解除は下記Webページでできます。 http://www.mag2.com/m/0000193915.html ★このメールマガジンへの質問は下記Webページにて受け付けて います。わからない所がありましたら、どしどしと質問をお寄 せください。 http://www.flsi.co.jp/Java_text/ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Copyright (C) 2007 Future Lifestyle Inc. 不許無断複製 |