データベース 実習 Windows XP バージョン

販売仕入在庫管理システム
(データベース) 実習
Windows XP バージョン
• MySQL, Apache, PHPのインストール
• 販売仕入在庫管理システムの
インストール
2007年10月26日
2007/10/26
販売仕入在庫管理システム実習
1
使用するオープンソフトウェアのバージョン
• MySQL:4.1.21
• Apache:2.0.55
• PHP:5.0.5
• 準備
– もって回るUSBメモリをC直下にすべてコピー
– MySQL5.0.15も入っているが、今日は使用し
ない
2007/10/26
販売仕入在庫管理システム実習
2
1.MySQLのインストール
• まずはコマンドプロンプトで使用できるようにする
• 次にWebアプリケーションとして、PHPと連携して
動くようにする
• アプリケーションとして、販売仕入在庫管理シス
テムを構築する(復元する)
2007/10/26
販売仕入在庫管理システム実習
3
1.1.MySQLのバージョン
• 4.1.21
2007/10/26
販売仕入在庫管理システム実習
4
1.2.MySQLのアンインストール
• アンインストール
既にインストールしていれば、アンインストール
(バージョンに注意、うまくいかないケースがある、
4.1.12から4.1.21はOK、4.0.13から4.1.12はうまく
いかない)
• サービスの停止
• 「コントロールパネル」、「プログラムの追加削除」、
「MySQLの削除」、「残っているMySQL関連フォ
ルダの削除」
• 再起動
2007/10/26
販売仕入在庫管理システム実習
5
1.3.MySQLのインストール
• MySQL4.1.21フォルダの中のsetup.exeを実行する
– Typical
– Skip (コミュニティへのサインアップ)
• Configuration
–
–
–
–
–
–
–
Detail Configuration
Developer Machine
Multifunctional Database
InnoDB Tablespace Setiing (Next)
Decision Support(DSS)/OLAP
TCP/IP
Manual Selecte Default Character Set / Collation sjis (文字セッ
ト)
– Include Bin Directory in Windows Path
(コマンドプロンプ
トからの使用)
– パスワード “secret”
– Finish
2007/10/26
販売仕入在庫管理システム実習
6
1.3.MySQLのインストール
• 再起動
• MySQLの確認
– コマンドプロンプトでmysqlを実行
mysql –u root –p
Enterpassword secret(root用に設定したパスワード)
– 復元するdatabaseをcreateしておく(後で使用)
create database whdbprotected;
2007/10/26
販売仕入在庫管理システム実習
7
1.4.MySQLの実行(コマンドプロンプト)
• コマンドプロンプトを実行
• MySQLを実行(データベースユーザはrootのみ)
mysql –u root – p
Enter password: secret と入れる
• どのようなデータベースが存在するか調べる
show databases; セミコロンに注意
• ダンプデータを復元する場合には、「1.7.2 復元」へ
• データベースの作成
create database whdbprotected;
use database whdbprotected;
• テーブルの作成
product, customer, provide, provider, inventory, rsvtable,
warehouse, selorder, seldtl, buyorder, buydtl,
2007/10/26
販売仕入在庫管理システム実習
8
1.5.テーブルの作成(1)
• productテーブルの作成
create table product(
prdid char(10) primary key,
category1 char(20),
category2 char(20),
category3 char(20),
maker char(20),
prdname char(20),
model char(20),
regdate date,
deldate date,
comment char(40));
• テーブルの確認
show columns from product;
2007/10/26
販売仕入在庫管理システム実習
9
1.5.テーブルの作成(2)
• providerテーブルの作成
create table provider(
pvrid char(2) primary key,
pvrname char(20),
tel char(20),
fax char(20),
email char(20),
person char(20),
regdate date,
deldate date,
comment char(40));
• テーブルの確認
show columns from provider;
2007/10/26
販売仕入在庫管理システム実習
10
1.5.テーブルの作成(3)
• provideテーブルの作成
create table provide(
prvid char(12) primary key,
prdid char(20),
pvrid char(2),
price int(10),
regdate date,
deldate date,
comment char(40));
• テーブルの確認
show columns from provide;
2007/10/26
販売仕入在庫管理システム実習
11
1.5.テーブルの作成(4)
• inventoryテーブルの作成
create table inventory(
invid char(2) primary key,
pvrid char(10),
whsid char(2),
rstockno int(10),
lstockno int(10),
regdate date,
deldate date,
comment char(40));
• テーブルの確認
show columns from inventory;
2007/10/26
販売仕入在庫管理システム実習
12
1.5.テーブルの作成(5)
• warehouseテーブルの作成
create table warehouse(
whsid char(2) primary key,
whsname char(20),
tel char(20),
fax char(20),
email char(20),
person char(20),
regdate date,
deldate date,
comment char(40));
• テーブルの確認
show columns from warehouse;
2007/10/26
販売仕入在庫管理システム実習
13
1.5.テーブルの作成(6)
• rsvtableテーブルの作成
create table rsvtable(
rsvid smallint(5) unsigned primary key auto_increment,
prdid char(20),
whsid char(2),
noi int(10),
regdate date,
comment char(40));
• テーブルの確認
show columns from rsvtable;
2007/10/26
販売仕入在庫管理システム実習
14
1.5.テーブルの作成(7)
•
•
buyorderテーブルの作成
create table buyorder(
buyid int(10) primary key auto_increment,
pvrid char(2),
totalprice int(10),
buystate tinyint(2) unsigned<
regdate date,
buydate date,
buypaydate date,
buypaiddate date,
shipdate date,
shippeddate date,
delivdate date,
deliveddate date,
paytype tinyint(2) unsigned,
comment char(40));
テーブルの確認
show columns from buyorder;
2007/10/26
販売仕入在庫管理システム実習
15
1.5.テーブルの作成(8)
• buydtlテーブルの作成
create table buydtl(
buydtlid int(10),
buyid char(10),
buydtlstate tinyint(2) unsigned,
prdid char(20),
noi int(10),
unitprice int(10),
lineprice int(10),
whsid char(2),
• テーブルの確認
show columns from buydtl;
2007/10/26
販売仕入在庫管理システム実習
16
1.5.テーブルの作成(9)
•
•
customerテーブルの作成
create table customer(
cstid varchar(10) primary,
cstname varchar(20),
president varchar(20),
zipcode varchar(10),
address varchar(60),
tel varchar(20),
fax varchar(20),
email varchar(40),
cstdep varchar(20),
cstperson varchar(20),
ourdep varchar(20),
ourperson varchar(20),
paytype tinyint(2) unsigned,
closeday tinyint(2) unsigned,
cststate tinyint(2) unsigned,
regdate date,
deldate date,
comment char(40));
テーブルの確認
show columns from customer;
2007/10/26
販売仕入在庫管理システム実習
17
1.5.テーブルの作成(10)
•
•
selorderテーブルの作成
create table selorder(
selid int(10) primary key auto_increment,
cstid char(10),
totalprice int(10),
selstate tinyint(2) unsigned,
selname char(20),
regdate date,
seldate date,
selpaydate date,
selpaiddate date,
shipdate date,
shippeddate date,
delivdate date,
deliveddate date,
paytype tinyint(2) unsigned,
comment char(40));
テーブルの確認
show columns from selorder;
2007/10/26
販売仕入在庫管理システム実習
18
1.5.テーブルの作成(11)
• seldtlテーブルの作成
create table seldtl(
seldtlid int(10) primary key auto_increment,
selid int(10),
prdid char(20),
noi int(10),
unitprice int(10),
lineprice int(10),
comment char(40));
• テーブルの確認
show columns from seldtl;
2007/10/26
販売仕入在庫管理システム実習
19
1.5.テーブルの作成(12)
• テーブルの一覧確認
use whdbprotected;
show tables;
2007/10/26
販売仕入在庫管理システム実習
20
1.6.データの入力(1)
• 方法1
insert into product set
prdid=‘10100’,
category1=‘PC’,
category2=‘SubNotePC’,
category3=‘Driveless’,
maker=‘Lenovo’,
prdname=‘ThinkPad_X41’,
model=‘2525-5AJ’
;
2007/10/26
販売仕入在庫管理システム実習
21
1.6.データの入力(2)
• 方法2(1つのタプルの追加)
insert into product (prdid, category1, category2, category3,
maker, prdname, model)
values
(‘10100’, ‘PC’, ‘SubNotePC’, ‘Driveless’, ‘Lenovo’,
‘ThinkPad_X41’, ‘2525-5AJ’) ;
• 方法2(複数タプルの追加)
insert into product (prdid, category1, category2, category3,
maker, prdname, model)
values
(‘10200’, ‘PC’, ‘SubNotePC’, ‘Driveless’, ‘Lenovo’,
‘ThinkPad_X32’, ‘2672-M8J’),
(‘10300’, ‘PC’, ‘SubNotePC’, ‘Driveless’, ‘Lenovo’,
‘ThinkPad_X32’, ‘2672-MUJ’), ;
2007/10/26
販売仕入在庫管理システム実習
22
1.7.データの復元と保存
• USBメモリ
→保存フォルダ(DatabaseEngineeringxxxxxx)
→dataを復元する
C:\DatabaseEngineeringxxxxxx\warehousedata から
C:\Program Files\MYSQL\data へコピー
ただし、MySQLサービスをとめておくこと
コピー後、MySQLサービスを再起動
• dataを保存
C:\MYSQL\data から
C:\DatabaseEngineeringxxxxxx\warehousedata へコピー
• 上記の方法はうまくいく場合といかない場合があるので、
mysqldumpを使用することを推奨(特にOSがLinuxの場
合)
2007/10/26
販売仕入在庫管理システム実習
23
1.7.1 データの保存
• 保存
• mysqldumpを使用する(特にOSがLinuxの場合)場合の保存方法
Windowsの場合のmysqldumpが格納されているディレクトリを指定す
る
(PATHが設定されていれば、不要ゆえ、そのままやってみるのもよい)
ユーザがrootでパスワードがsecretの場合
(cd c:\Program Files\MySQL\MySQL Server 4.1\bin)
mysqldump –u root – – password=”secret” データベース名 > ダンプ
先ファイル名(例 dbdump.txt)
パスワードの指定は必ず”で囲む。(’ではだめ)、
ファイル名の後に;をつけない。
• 例:
mysqlのwhdbprotectedデータベースをwhdbprotected2007xxxx.txt に
保存する場合
ユーザがrootでパスワードがsecretの場合
(cd c:\Program Files\MySQL\MySQL Server 4.1\bin)
mysqldump –u root – – password=”secret” whdbprotected >
whdbprotected2007xxxx.txt
保存した日付を入れておく(例 whdbprotected20070220 )と便利
2007/10/26
販売仕入在庫管理システム実習
24
1.7.2 データの復元
• 準備
復元すべきデータベース(例whdbprotected)をDROPしてCREATEし
ておく、ユーザがrootで、パスワードがsecretの場合
mysql –u root –p
EnterPassword:secret
drop database whdbprotected;
create database whdbprotected;
• 復元(ダンプデータがある場合)
コマンドプロンプトのカレントディレクトリの下(またはディレクトリを指
定 C:\)に前記のdbdump.txt(例 whdbprotectedxxxxxx.txt)をコピー
mysql –u root –p データベース名 < dbdump.txt
Enter Password:secret パスワードがsecretの場合
例1
mysql –u root –p whdbprotected < whdbprotectedxxxxxx.txt
Enter Password:secret パスワードがsecretの場合
例2
mysql –u root –p whdbprotected < C:\whdbprotectedxxxxxx.txt
Enter Password:secret パスワードがsecretの場合
2007/10/26
販売仕入在庫管理システム実習
25
1.7.3 DBユーザの登録
• 前記の復元はwhdbprotectedの復元のみであり、
DBユーザを登録する必要がある。
ログイン時に指定する。
DB名: whdbprotected
DBユーザ名:dbuser01
パスワード:dbuser01
• mysql –u root –p
Enter password:secret
• grant all on whdbprotected.* to
dbuser01@localhost identified by ’dbuser01’;
2007/10/26
販売仕入在庫管理システム実習
26
1.8.データの取り出し
• Select文
select * from product where prdid=‘10200’;
select prdid, category1, prdname from product;
2007/10/26
販売仕入在庫管理システム実習
27
1.9.データベース、テーブルの削除
• データベースの削除
drop database whdbprotected;
• テーブルの削除
use whdbprotected;
drop table product;
2007/10/26
販売仕入在庫管理システム実習
28
1.10.テーブルの変更(属性の追加、削除)
• 属性名の変更
ALTER TABLE テーブル名 CHANGE
現在のカラム名 新カラム名 データ型;
• 属性の追加
ALTER TABLE テーブル名 ADD カラム名 データ型
FIRST;
ALTER TABLE テーブル名 ADD カラム名 データ型
AFTER カラム名;
• 属性の削除
ALTER TABLE テーブル名 DROP カラム名;
2007/10/26
販売仕入在庫管理システム実習
29
2.Apacheのバージョン
• ApacheはWebサーバである
2007/10/26
販売仕入在庫管理システム実習
30
2.1.Apacheのバージョン
• 2.0.55
• 古いバージョンのアンインストール
• フォルダも削除
2007/10/26
販売仕入在庫管理システム実習
31
2.2.Apacheのインストール
• インストール手順
–
–
–
–
–
–
–
–
–
–
–
–
インストール用のファイルを準備(適当なフォルダに)
apache_2.0.55-win32-x86-no_ssl.msiをダブルクリック
「Next」
「 I accept the terms in the license agreement」選択
「Next」
Network Domain [localhost]
Server Name [localhost]
Administrator’s Email Address
[[email protected]] 架空のもの
◎for All Users, on Port 80,…….
Setup Type [Typical] Next
インストール先:デフォルト Next
C:\Program Files\Apache Group\Apache2
Install ………. Finish
2007/10/26
販売仕入在庫管理システム実習
32
2.2.Apacheのインストール
• インストール手順
– 確認方法
http://localhost/
または(LANが接続されている場合には)
http:// IPアドレス
でデフォルトの画面表示
– C:\Program Files\Apache Group\Apache2\htdocs
– Index.html.ja.iso2022-jp
2007/10/26
販売仕入在庫管理システム実習
33
3.PHPのインストール
• PHPはWebアプリケーション向けのプログラミン
グ言語
• conf関係設定のため、準備としてTeraPad(テキス
トエディタ テラパッド)をインストール
USBメモリにtpad089aフォルダあり、
その中のTeraPad.exeをデスクトップにコピー
2007/10/26
販売仕入在庫管理システム実習
34
3.1.PHPのバージョン
• 5.0.5
2007/10/26
販売仕入在庫管理システム実習
35
3.2.PHPのインストール
•
インストール手順
– ファイルの取得、適当なフォルダに
php-5.0.5-Win32.zip
– ダブルクリックにより解凍(既に解凍済み、フォルダ名:“phpインストール”)
– できたフォルダをCの直下に移動し、フォルダ名をphpに変更する
フォルダができない場合には、C直下にphpフォルダを作成し、解凍した中身を全
部phpフォルダに移動する
– dllをコピーする
C:\php\php5ts.dll→C:\WINDOWS\system32
– dllをコピーする
C:\php\libmysql.dll→C:\WINDOWS
– php.iniファイルの作成
C:\php\php-ini-dist→ C:\WINDOWSにコピーし、
名前をphp.iniに変更する
•
php.iniファイルの内容変更(修正済みのphp.iniあり、それをコピー)
– ;をはずす、インクルードパス 443行
;include_path= ”.;c:\php\includes”
– ドキュメントルートへのパスを設定 450行
doc_root=”C:\Program Files\Apache Group\Apahce2\htdocs”
– ;をはずす、mysqlを使うに設定 587行
extention=php_mysql.dll
2007/10/26
販売仕入在庫管理システム実習
36
3.2.PHPのインストール
•
php.iniファイルの内容変更(前ページからの続き)
– 拡張モジュールへのパスを設定 458行
extention_dir=”C:\php\ext”
– ;をはずすmbstring 563行
extention=php_mbstring.dll
– 101行(旧 Off)
output_buffering = On
– 429行 (旧 iso-8859-1)
default_charset = ”Shift_JIS”
– 1115行
mbstring.language = Japanese
– 1120行 (旧 EUC-JP)
mbstirng.internal_encoding = SJIS
– 1123行
mbstring.http_input = auto
– 1127行
mbstring.http_output = SJIS
– 1134行(旧 Off)
mbstring.encoding_translation = On
– 1138行
mbstring.detect_order = auto
– 1142行
mbstring.substitute_character = none;
2007/10/26
販売仕入在庫管理システム実習
37
3.3.PHP、Apacheの連携設定
• httpd.confファイルの内容変更(修正済みの
httpd.confあり、それをコピーする)
– C:\Program Files\Apache Group\Apache2\conf ディレク
トリ
httpd.conf ファイル
– 最後に (956行以降に)
LoadModule php5_module c:/php/php5apache2.dll
(区切りは \ ではなく、ここは / であることに注意)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
– を追加
–
2007/10/26
販売仕入在庫管理システム実習
38
3.4.PHPの確認
• ドキュメントルートにphpフォルダを追加
– C:\Program Files\Apache Group\Apache2\htdocs
\php
– phpフォルダに次のプログラムを作成
ファイル名 test.php
<?php
phpinfo();
?>
– 再起動
– ブラウザから
http://localhost/php/test.php
–
2007/10/26
販売仕入在庫管理システム実習
39
4.販売仕入在庫管理システム
アプリケーションプログラムのインストール
• ドキュメントルートにSPIMDesignedフォルダを追
加(ここでDesignedと名付けた意味はスタイル
シートを使用するバージョンであることを意味して
いる)
– C:\Program Files\Apache Group\Apache2\htdocs
\SPIMDesigned
– USBメモリから復元
DatabaseEngineering2007xxxxフォルダの中にある
SPIMDesigned2007xxxxフォルダの中の全てのプログ
ラムを
上記SPIMDesignedフォルダの中にコピーする
– 確認
http://localhost/SPIMDesigned/login.html
を起動
2007/10/26
販売仕入在庫管理システム実習
40
4.販売仕入在庫管理システム
アプリケーションプログラムのインストール
• クッキーを使えるようにする(2007/10/11追加)
• php.ini(USBの中のphp.ini は修正済み)
888行
session.save_path=“c:/Windows/temp
2007/10/26
販売仕入在庫管理システム実習
41
参考書籍
• Spencer K Ogawa
「MySQL/PHP5によるWebデータベース構築」
秀和システム,2005
• 田中ナルミ,阿部忠光,ソフトウェアエイジェンシー監修
「標準MySQL改訂版」
ソフトバンククリエイティブ,2005
• 星野努
「PHP5.0+MySQL5.0で構築する最速Webシステム」
技術評論社,2006
2007/10/26
販売仕入在庫管理システム実習
42