データベース言語SQLについて
1.はじめに
データベースマネジメントシステム(DBMS)は、複数のデータベースを格納しているデータベースサーバと、それを遠隔地から操作するためのクライアントから成る。クライアントを起動し、遠隔地からデータベースを操作するための言語として、SQL (Structured Query Language) がある。
ここでは、ネット上で公開されているMySQLというデータベースマネジメントシステムを紹介する。MySQLは、SQLサーバとクライアントをパッケージにしたソフトである。さまざまなプラットフォーム(OS)で稼動する。
MySQLは、GPLを採用したので、Unix OS版やMac OS X版は基本的に無料のシステムであるが、日本語Windows版は(2001年1月現在)30日間の試用制限がある。やがて日本語Windows版も無償になると推測されるが、まだわからない。
ここでは詳細に触れないが、同様のSQLデータベースにInterBaseやPostgresがある。
参考:Postgres http://www.postgresql.jp/
参考:インターベース http://www.borland.com/interbase/
インターベースのWindows版は無償である。あるいは、日本の.co.jpを参照すること。とりあえずサーバ部分だけ取得すると、動かすことができる。
2.ダウンロードと準備
さて、MySQL日本語版は、ソフトエージェンシー(http://www.softagency.co.jp/)からダウンロードできる。 また、ここには、日本語マニュアルと、参考書籍の紹介がある。SQL言語について知らない人は、紹介されている書籍(あるいはネットで検索)が必要かも知れない。
ダウンロードしたファイルは、LHA形式で圧縮されているので、解凍ソフト(lhasaなど)でそれを解凍する。
解凍したら、SETUP.exeを起動して、自分のパソコンにインストールする。すると、C:¥mysqlというフォルダーができる。そのなかに、さらにbinというフォルダーもある。そのなかに複数のアプリケーションがある。
3.使い方
サーバはmysqld.exeで、クライアントはmysql.exeである。そこで、ダブルクリックして、まずサーバを起動する。それからクライアントを起動しよう。
すると、数行の案内文が表示され、すでにクライアントがサーバにCONNECTしていることがわかる。本当なら、遠隔地のサーバに接続することができるはずであるが、とりあえず自分のパソコンのなかでやっているわけである。しかし、MS-DOS表示の小さな画面になるので、「全画面表示」して大きくしよう。
ヘルプは、helpと入力する。しかし、こまかなSQLコマンドは表示されない(みたい)。それから、すべてのコマンドは、改行しても実行しない。必ず、セミコロン;を入力することで実行されることに注意しよう。これは仕様である。
どんなデータベースが、あらかじめ入っているのか知るために、
SQL>Show databases;
と入力すると、2つあることがわかる。
まず、mysqlという名前のデータベースは、見るだけにしておこう。変更してはいけない。まだよく知らないし、システムが利用するらしい。もうひとつ、testという名前のデータベースがあるが、そのなかには何もデータが入っていない。これが練習用のデータベースだ。
したがって、testというデータベースを使用することを宣言しよう。
SQL>Use test;
そして、そのデータベースのなかに、たとえば住所録という名前のテーブル(表)を作ろう。
SQL>Create table "jushoroku" (namae char(20), jusho char(26) );
そのテーブルのなかに、データを挿入しよう。
SQL>Insert Into "jushoroku" Values ('Gonzales', 'Tokyo');
SQL>Insert Into "jushoroku" Values ('Titi', 'Nagoya');
そして、できたテーブルを表示してみよう。
SQL>Select namae, jusho From jushoroku;
すると、
namae jusho
ーーーーーーーーーー
Gonzales Tokyo
Titi Nagoya
ーーーーーーーーーー
などと表示される。見た目は、非常にそっけない。
クライアントの終了は、 SQL>quit; である。これでWindowsに戻る。
サーバの終了は、別のアプリケーションを使う。たぶん、MS-DOSプロンプト(Windowsのスタートボタンから「プログラムの名前を指定して起動する」を選択し)で、
C: ¥mysql¥bin¥mysqladmin.exe kill
を入力して、リターンキーを押して実行すればよい。
4.さて、
見た目が非常にそっけない。それで、しかたありません。なぜなら、検索された結果を、そのまま人間の世界で利用するのではないからです。データベースから取ってきたデータは、その後なんらかのソフトで、処理加工することが前提だからです。たとえば、東洋大学PC教室のパソコンにインストールされているマイクロソフト社のAccessというデータベースソフトがある。これは、基本的にはスタンドアローンで使うデータベースですが、(熟練者がODBCに準拠したプログラミングをすれば)MySQLのクライアントにもなることができる。自分のPCのなかに、遠隔地のデータベースからデータを取り込むことができる。つまり、Accessというグラフィックインターフェースを用いて、気楽にデータ処理することができる。
また、本当なら、WWWブラウザを使って、Webページでデータを検索したいですね。反応は、やっぱりブラウザに表示して欲しいですね。それならAccessというソフトを買う必要はありませんからね。しかし実は、そのためには、ユーザとDBMSの間に、別のサーバをかませる必要があります。それが、アプリケーションサーバです。ユーザのブラウザからアプリケーションサーバを経由してデータベースサーバにアクセスするという3層構造が基本です。MySQLは、そのための機能ももっているそうです。しかし、Accessやブラウザを使うとデータの見え方や検索のしかたが固定されてしまうという欠点もあります。
ともかく、われわれは、いきなりクライアントから、データベースサーバを操作したというわけです。
参考:SQLプログラミング入門 http://www.ann.hi-ho.ne.jp/hirok/sql/index.html
参考:DataExploreデモ http://pub.jis.co.jp/php/Exp/