今回は,フリーのデータベース管理システム(DBMS)であるMySQLを使って,SQLを直接入力して結果を見る実験をします。皆さんにやってほしいのは,身近な実験道具としてMySQLをインストールすることと,その基本的な使い方を覚えることです。そうすれば今後,SQLについて疑問が浮かんだときに,自分のマシンで実験して確かめられます。

実験の目的

 今回の実験の目的は三つあります。(1)MySQLのインストール方法を知る,(2)MySQLを使ってデータベースを作成する方法を知る,(3)MySQLを使ってデータベースを操作する方法を知る――です。

実験の準備

 Windows 2000か同XPが動作するパソコンを用意してください。実験をするために,まずMySQLをインストールします。MySQLは,http://dev.mysql.com/downloads/からダウンロードできます。いくつかのバージョンがありますが,ここではmysql-4.1.22-win.zipを使います。zipファイルを解凍(展開)して得られるSetup.exeをダブルクリックして,インストールしてください。

 インストールはすべてデフォルトのままでよいでしょう。途中でroot(管理用の特権ユーザー)のパスワードを求められるので適当な文字列を設定してください。インストールが終了すると,インストーラは自動的にMySQLを起動します。MySQLはOSのサービスとして動作します。

 インストールと起動が終わったら,コマンドプロンプトを起動します。MySQLはデフォルトでC:\Program Files\MySQL\MySQL Server 4.1\binにインストールされます。以下のコマンドを入力して,インストールしたディレクトリに移動します。

 cd \Program Files\MySQL\MySQL Server 4.1\bin

続けて,

 mysql -u root -p[設定したパスワード]

と入力すると,MySQLにコマンドを与えるためのプロンプト「mysql>」が表示されます。 「-p」と設定したパスワードの間にスペースを入れると動作しないので,注意してください。これで準備OKです。

実験の方法と結果

 操作の対象となるデータベースとして「八百屋データベース」を作ります。このデータベースの中に,「商品表」という表(テーブル)を一つだけ作ります。「商品表」には,「商品ID(4文字の文字型)」「商品名(10文字の文字型)」「単価(整数型)」という三つの列を作ります。

 データベースの作成は,「create database データベース名;」で行います。命令の末尾にセミコロンを付けることに注意してください。ここでは,データベース名を「yaoya」とします。つまり,

 create database yaoya;

と入力します。作成できたら,この先の操作を行うために「use yaoya;」という命令を実行します。

 データベースの中に表を作成するには,「create table 表の名前(列の名前, データ型, …, primary key(主キーにする列));」という命令を使います(図1)。型は「char(文字数)」や,「integer」で指定します。ここでは表の名前を「shohin」,列の名前を「shohinId」「shohinMei」「tanka」とします。

図1●八百屋データベースを作成し,その中に商品表を作成する
図1●八百屋データベースを作成し,その中に商品表を作成する  [画像のクリックで拡大表示]

 データベースができたら,データの登録と取得を試してみましょう。

 登録は,「insert into 表の名前(列の名前,…) values(列の値, …);」で行います(図2)。列の値が文字列の場合はシングルクォートで囲みます。「'S001', 'ニンジン', 150」「'S002', 'タマネギ', 200」「'S003', 'ジャガイモ', 300」という3件のデータを登録することにしましょう。

図2●商品表にデータを3件登録し,すべてのデータを取得する
図2●商品表にデータを3件登録し,すべてのデータを取得する  [画像のクリックで拡大表示]

 無事に登録されたかどうかは,データを取得すればわかります。「select*from shohin;」を実行すれば,「商品表」に登録されているすべてのデータを取得できます。アスタリスク(*)は,すべての列を意味します。

 更新と削除も実験してみましょう。更新は,「update 表の名前 set 列の名前='更新後の値',… where 条件;」で行います。商品IDがS001の商品の商品名を「人参」に変えてみましょう(図3)。削除は,「delete from 表の名前 where 条件;」で行います。商品IDが「S002」である商品を削除してみましょう。最後にselectで実験結果を確認します。

図3●商品表のデータに対して更新と削除をそれぞれ実行し,結果を確認する
図3●商品表のデータに対して更新と削除をそれぞれ実行し,結果を確認する  [画像のクリックで拡大表示]

 これで,実験は終了です。「quit」と入力して,MySQLのプロンプトを終了します。MySQLのサービスを停止するには,[スタート]-[設定]-[コントロール パネル]-[管理ツール]-[サービス]で,「MySQL」を選択して,「サービスの停止」をクリックしてください。

実験の考察

 私の仲間内では,「select命令を制する者は、SQLを制す」という格言があります。SQLの中で,最もバリエーションが広く,またよく利用するのはselect命令だからです。基本的な構文は,「select 列の名前,… where 条件;」です。様々な条件を指定して該当データだけを取得できますし,合計値,平均値,最大値,平均値などを得たり,データのソートもできます。

 select命令の様々なバリエーションを覚えるには,かなり時間がかかるでしょう。しかし,select命令で実現できることを知らずに,同じ機能をアプリケーションで作りこむのは無駄なことです。プロの世界は,「時は金なり」です。

 次回は,CGIを実験します。

矢沢 久雄(やざわ ひさお)
グレープシティ
アドバイザリースタッフ