■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                      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. 不許無断複製