データベース操作の基礎
データベースは、EXCELのようにマウスでクリックし直接書き換えるということはできません。「SQL」と呼ばれる言語を用い、データの検索、挿入、削除、更新を行います。SQLはデータベースと対話する専用の言語であり、PHPとはまったく別物です。
SQLの実行は、「データベースに付属、または一般に配布されている管理ツールを用いる」方法と、「PHPの中にSQLを記述する」方法があります。今回は、SQLの文法に重点を置いて説明するため、前者の方法で実行します(後者については、次回以降で説明します)。

SQL基礎:テーブルの作成(CREATE文)
それでは、上記で例示した図に従い、レストランの店舗情報を管理するテーブルを作成します。テーブルやカラム名は半角英数字で名前を付ける必要がありますので、ここではrestaurantという名前にしましょう。それぞれの対応表は、下記のようになります。右列が今回SQLで利用する名前です。
| 内容 | 名称 |
|---|---|
| テーブル名 | restaurant |
| 店舗No | restaurant_no |
| 住所 | address |
| 店名 | name |
| 予算 | price |
MySQLの管理ツールである「phpMyAdmin」にアクセスしてみましょう。http://localhost/phpmyadmin/にアクセスしてください(※注)。
アクセスした際に、パスワードを求める画面が表示された場合は、ユーザー名に「root」を入力してください。パスワードは空白のままで結構です(インストール時に自分でパスワードを設定した場合は、そのパスワードを入力してください)。
上記のURLにアクセスすると、phpMyAdminのTOPページが表示されます。まずは、「新規データベースを作成する」の欄に、「codezine」と入力し、[作成]ボタンを押します。
「データベースcodezineを作成しました」というメッセージが表示されれば、問題なくデータベースが作成されています。
では、SQLを実行するためのページを開いてみましょう。画面上部にある[SQL]タブをクリックします。
下図のようなテキストエリアが表示されます。このテキストエリアにSQLを入力し、右下の[実行する]ボタンを押すことでSQLを実行できます。もし画面を閉じてしまった場合は、再度画面にアクセスし、左メニューから[codezine]のリンクをクリックしてください。
![[SQL]タブクリック後の画面。このページでSQLを入力し、実行できる](http://cz-cdn.shoeisha.jp/static/images/article/3685/c05.gif)
それでは、テーブルを作成するCREATE TABLEという命令を実行してみましょう。次のコードをテキストエリアにコピーし、[実行する]をクリックしてください。
CREATE TABLE restaurant ( restaurant_no integer, address varchar(50), name varchar(20), price integer, PRIMARY KEY (restaurant_no) ) DEFAULT CHARSET=utf8;
実行したら、左メニューの[restaurant]リンクをクリックし、下の写真のピンクの枠の部分のような表示がされていることを確認します。同様の表示がされていれば、正常にテーブルが作成されています。
これでrestaurantテーブルが作成され、データを入れる器ができました。それでは、CREATE TABLE文の書式を見てみましょう。
CREATE TABLE テーブル名 カラム名1 型 , カラム名2 型 … PRIMARY KEY (主キー名) ) DEFAULT CHARSET=文字コード名
「型(かた)」の部分は、数値・文字・日付など、カラムに入るのがどのようなものなのかを指定します。上記のpriceカラムで指定されている「integer」は数値のみが入る型です。また、「varchar」とは文字列が入る型であり、「(…)」(括弧)の中は入力可能な文字数を示します。例えば住所であれば
`address` varchar(50),
と書いていますから、住所は50文字までしか入らないということです。SQLには他にも多く型があります。必要に応じて検索エンジンで「MySQL データ型」などのキーワードで探してみてください。
また、上記の書式にある「主キー」とはデータを識別するための情報です。データが決して重複しないカラム(「一意のカラム」という言い方をします)をここに指定します。リスト1では
PRIMARY KEY (`restaurant_no`)
と指定しているので、店舗Noが主キーとなります。もし、同じ店舗Noを登録しようとするとエラーとなります。主キーは1つのテーブルに最低1つは用意した方がよいでしょう。偶然、同名のレストランが存在した場合にも区別がつくようにするためです。もし、主キーに該当するものがない場合は、今回の「店舗No」などのように、番号をつけて管理します。
| ←前のページ【はじめに】へ | 次のページ【SQL基礎:レコード追加(INSERT文)】へ→ |


![画面上部の[SQL]タブをクリック](http://cz-cdn.shoeisha.jp/static/images/article/3685/04s.gif)
![テキストエリアに、上記のコードを貼り付け[実行する]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/3685/06s.gif)
![リスト1を実行すると、左側に[restaurant]というリンクが作成される。クリックすると下記画面のような内容が表示される](http://cz-cdn.shoeisha.jp/static/images/article/3685/07s.gif)