データベースとは、テキストを中心とした情報の集まりです。この情報をエクセルに代表される表計算ソフトのように、並べて、情報を追加したり、必要な情報を取り出したりするシステムです。基本的には、下記の機能しかありません。
- 新しいデータを書き込む場所を作る
- 新規にデータを追加する
- データを変更する
- データを削除する
- 必要なデータを検索する
これらの、作業を実現するためのコマンドの標準的なものがSQLを呼ばれるものです。データベースと、SQLさえ理解すれば、実際にデータベースを使うことが可能なのですが、データベースには、情報があるだけで、モニターへの表示方法や、データを集めた後の処理などの機能は非常に貧弱であり、実際には使いにくいというのが現状です。
そこで、PHPなどの言語を使い、データベースを目的に合わせて使いやすくするプログラムを作るのです。
データベースを話は、簡単に本一冊になるので、詳しくは話しません。ここでは、使い方のみを考えます。
ここでの説明は、実際に実行しなくとも良いです。中身が理解できるよう、ゆっくり読んでください。実際に作るのは、次回にまわします。
データベースのシステムには、色々なデータを取り扱うため、まずは専用のスペース(ディレクトリのようなもの)を作ります。これをデータベースの作成と呼びます。(レンタルサーバーなどでは、ほとんどの場合、この領域と名前は最初から決まっています。)
このデータベースを作る作業をSQLで示すと
【CREATE DATABASE `PHP_programinng` 】
となります。PHP_proguramimingとは、データベースの名前例です。任意のもので構いません。命令の意味は比較的わかりやすい英語なので、見れば想像が付くと思います。
データベースは、データーの集まりです。エクセルの表にするとわかりやすいです。エクセルの表は、シートと呼ばれています。また、シートの集まりをブックと呼びますね。データベースの場合は、ブックのことであり、シートをテーブルと呼びます。
例えば、簡単な名簿を作るとするとします。名簿には、名前、性別、血液型、出身地の4種類の情報があると仮定します。つまり
番号 |
名前 |
性別 |
血液型 |
出身地 |
1 |
Aさん |
男 |
A |
北海道 |
2 |
Bさん |
女 |
B |
東京 |
3 |
Cさん |
女 |
AB |
大阪 |
4 |
Dさん |
男 |
O |
沖縄 |
のような場合です。もちろん、全部でこれだけのデータであれば、そのまま配列に読み込めば良いのですが、人数や項目数が増えてくると厄介です。このようなときにデーターベースを使います。
【データベースの構造】
データベースを使うときには、そのデータが数字なのか、文字なのか、どの程度の大きさなのかをあらかじめ指定します。上記の場合は、
番号 |
名前 |
性別 |
血液型 |
出身地 |
no |
name |
sex |
blood |
from |
数字 |
文字列 |
文字列 |
文字列 |
文字列 |
と最初に指定します。2段目の英語は、シートの列の名前です(データベースではこの名前は半角英数字を使います。)、3段目は、データーの保管構造を定義します。エクセルで言うと、シートに当たりますが、データベースでは、これをテーブルと呼びます。
さて、実際にテーブルを作成するには、SQL文を使います。この場合は
【
CREATE TABLE `meibo` (
`no` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 20 ) NOT NULL ,
`sex` VARCHAR( 4 ) NOT NULL ,
`blood` VARCHAR( 6 ) NOT NULL ,
`from` VARCHAR( 8 ) NOT NULL ,
PRIMARY KEY ( `no` )
) ;
】
長くなったので、折り返して表示しています。実際に使用する場合でも折り返して問題ありません。
さて、説明ですが、最初の行から説明すると、
・meiboと言うテーブルを作ります。その中身は
・noは数字(int)で、プラスの数値(UNSIGNED)で空欄はNULLではなく(NOT
NULL)自動的に数値が与えられます(AUTO_INCREMENT)
・nameは、20文字の文字列(VARCHAR(20))
・sex、blood、fromも同じ
・主な(重要な)キーワードは、noとします(PRIMARY KEY(’no’))
となります。このように、一つ一つ順番に指定しているだけなのですが、SQLコマンドは長くなる場合が多く、難しいというイメージを与えがちです。しかしながら、良く使うコマンドは、片手で数えるぐらいです。
次に、データーを追加する方法を考えます。ここでは例のAさんのデータを追加します。
【
INSERT INTO `meibo` ( `no` , `name` , `sex` , `blood` , `from` )
VALUES (
'', 'Aさん', '男', 'A型', '北海道'
);
】
これを日本語にすると
・meiboと言うテーブルにデータを追加(INSERT INTO)
・no、name、sex、blood、fromは、それぞれ、次の値です(VAVUE)
’’(空欄)、Aさん、男、A型、北海道
ここで、noの内容は空欄にしています。テーブルを作成したとき、この数値はオートインクリメントとしました。これは自動的に番号を順番に振ります。ちなみにデータが後から削除されても、番号はそのまま増え続けます。これは、絶対に重複しない数値を持つための手段です。
さて、これをAさんから、Dさんまで繰り返すと、例題のデータベースが完成します。もちろん、自由に人数を増やしていただいて結構です。
次に、Aさんの情報を検索してみましょう
【
SELECT *
FROM `meibo`
WHERE `name` = 'Aさん' 】
これを日本語にすると、
・meiboのテーブルから条件にある情報を選びなさい。
・条件は、nameにAさんと言う語が入っている情報を
となります。実行結果は、
no |
name |
sex |
blood |
from |
1 |
Aさん |
男 |
A型 |
北海道 |
です。なお、SELECTの後の*は、全ての項目を表示と言うことです。例えば、nameだけ表示とか、nameとfromのみ表示などの指定も可能です。
これで、データベースの解説は終了です。SQL文も基本的なもののみ紹介しました。ここでは、データベースっていうデータの保管場所があって、SQL文と呼ばれるもので、作ったり編集したり検索したりすることがイメージできれば十分です。次回は、このデータベースを実際に作ってみたいと思います。
<PHPでメール送信-
Top-
<PHP&DBで掲示板>