絵でわかるWebプログラミング入門

DB知らない?でもわかるMySQL入門

この入門ページでは、MySQLについて初心者にもわかるように簡単に説明しています。

MySQLとは、データベースシステムのひとつです。データベースというのはある種のデータの集まりのことです。

フリーのデータベースシステムにはMySQLのほかに「PostgreSQL」や「SQLite」などが有名です。


ウェブサーバでデータを扱う場合、基本的にはファイルかデータベースかになるかと思います。この入門ページではMySQLを使ったデータベース管理を想定して解説しています。

データベースとは何か?

MySQLはデータベースを管理するシステムですが、とりあえず具体的にデータベースというものを見てみましょう。

		101,田中,女性
		102,斎藤,男性
		103,田中,男性
		104,佐藤,女性

これはとても簡単なデータベースです。1行のデータが4つ集まっているので、データベースといえます。


1つのデータを1行に記述し、データ内のさらに細かいデータをカンマで区切っているこのデータは、CSVとして広く使われているデータベースです。


CSVを閲覧するアプリにも、この小さなデータベースを操作する機能が付いているかもしれません。例えば単語の検索機能やソート機能、追記や削除機能などです。この程度のちょっとしたCSVデータを扱うだけなら、実はCSVビューアを使えば問題ありません。


しかし、データがもっと膨大で、もっと高度な操作がしたい場合には、MySQLなどのデータベースシステムが適しています。

4名だけのデータではなく10万人のデータだったり、ソートだけではなく同じ名前や性別によって細かくデータを抽出したい場合には、CSVビューアではおそらく力不足です。


しかし、データベースシステムとCSVビューアでは能力や規模は桁違いですが、本質的には同じと考えて問題ないと思います。

入門者としてデータベースを学ぶとき、イメージとして上で示した簡単なCSVを思い浮かべるとわかりやすいかもしれません。

データベース利用の流れ

MySQLはよく使う普通のアプリとは違い、まずMySQL内でユーザを登録します。そのユーザでログインしてからデータベースを使う段取りになっています。また、主にコマンドラインから利用するアプリでもあります。

MySQLはサーバという面が強いアプリだからかもしれません。


ここではインストールとユーザ登録については説明せず、ログイン後の簡単な流れについて解説します。


データベースシステムを使ってやることといえば、主にデータの挿入、データの削除と変更、データの抽出、そしてこれらのデータを入れるためのテーブルの作成や削除、結合などです。


テーブルというのはCSVでいうファイルに当たり、ひとまとめのデータベースの単位になります。MySQLでは、データベースとテーブルは次のような関係になっています。


データベースとテーブルの関係

このようにデータベースはいくつかのテーブルを含んでいるかたちになります。


テーブルはデータを挿入する前に定義しておく必要があります。何列なのか、その列は文字を入れるのか数値を入れるのか、などです。

例えば住所データを扱いたい場合には、まず名前列、郵便番号列、県列、市列、番地列、などといった列を定義したテーブルを作成することから始めます。


データベースにおいてテーブルの列をカラム(column)と呼ぶことがあります。行はロウ(row)ですが、こちらは「行」と呼ぶことが多いようです。


テーブルができたら仕様通りにデータを挿入します。

数値を定義した列に文字を入れたりするとエラーになります。


必要があれば複数のテーブルを作り、列ごとに関連性を持たせることもできます。

そしてテーブルからデータを参照したり検索したり抽出したり算出したりします。


これらの操作は、SQLと呼ばれるデータベース言語を用いて行います。基本的なSQLであれば、どのデータベースでもほとんど共通した記述方法になると思います。

MySQLとPHPの連携

MySQLはふつう、コマンドラインから操作するアプリですが、webサービスなどではウェブサーバ上のPHPスクリプトからMySQLにアクセスすることが多いと思います。


実はwebサービスによく使われるPHPなどには、データベースにアクセスする機能がもとから用意されています。


PHPの場合、それぞれのデータベース用の関数が個別に用意されています。

また、それぞれのデータベースの共通の操作を同じやり方を使って実装するPDOという技術も使えます。PDOを使うと将来的にデータベースを変更してもPHPコードの修正が最小限で済みます。


PHPからデータベースを使う場合、まず変数に接続データを格納し、それを通じてデータを読み込んだり書き込んだりしていくという流れになります。


PDOの使い方についてはPHPフィーチャリングDB!PDO入門をご覧ください。