SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング未経験から始めるPHP入門

データベースの基礎を理解しよう!
プログラミング未経験から始めるPHP入門(6)

第6回


データベース操作の基礎

 データベースは、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」と入力し、[作成]ボタンを押します。

TOPページにある「新規データベースを作成する」の欄に、「codezine」と入力
TOPページにある「新規データベースを作成する」の欄に、「codezine」と入力

 「データベースcodezineを作成しました」というメッセージが表示されれば、問題なくデータベースが作成されています。

 では、SQLを実行するためのページを開いてみましょう。画面上部にある[SQL]タブをクリックします。

画面上部の[SQL]タブをクリック
画面上部の[SQL]タブをクリック

 下図のようなテキストエリアが表示されます。このテキストエリアにSQLを入力し、右下の[実行する]ボタンを押すことでSQLを実行できます。もし画面を閉じてしまった場合は、再度画面にアクセスし、左メニューから[codezine]のリンクをクリックしてください。

[SQL]タブクリック後の画面。このページでSQLを入力し、実行できる
[SQL]タブクリック後の画面。このページでSQLを入力し、実行できる

 それでは、テーブルを作成するCREATE TABLEという命令を実行してみましょう。次のコードをテキストエリアにコピーし、[実行する]をクリックしてください。

リスト1
CREATE TABLE restaurant (
restaurant_no integer,
address varchar(50), 
name varchar(20),
price integer,
PRIMARY KEY (restaurant_no)
) DEFAULT CHARSET=utf8;
テキストエリアに、上記のコードを貼り付け[実行する]をクリック
テキストエリアに、上記のコードを貼り付け[実行する]をクリック

 実行したら、左メニューの[restaurant]リンクをクリックし、下の写真のピンクの枠の部分のような表示がされていることを確認します。同様の表示がされていれば、正常にテーブルが作成されています。

リスト1を実行すると、左側に[restaurant]というリンクが作成される。クリックすると下記画面のような内容が表示される
リスト1を実行すると、左側に[restaurant]というリンクが作成される。クリックすると下記画面のような内容が表示される

 これでrestaurantテーブルが作成され、データを入れる器ができました。それでは、CREATE TABLE文の書式を見てみましょう。

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基礎:レコード追加(INSERT文)

この記事は参考になりましたか?

プログラミング未経験から始めるPHP入門連載記事一覧

もっと読む

この記事の著者

大家 正登(オオイエ マサト)

デジタルハリウッド『PHP 講座』講師。学生時代、スペイン語を専攻していたものの何故かプログラム言語に心が傾き、近所のフリープログラマーに弟子入り修行。その後中堅 SIer に 3 年間所属し、現在はフリーエンジニア。仕事の傍らジャズを演奏し、コントラバス 2 台と同居中。(ITエンジニア・大家正登のWeb...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3685 2010/03/01 10:29

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー