何となくじゃダメ!データベースをきっちり理解する--WebデザイナのためのPHP入門

たにぐちまこと(H2O Space.)
2008/03/25 17:00

プログラマに頼まないと検索結果のカスタマイズができない──だったらデータベースくらいも大体わかるようになっておこうじゃない。

データベースを生かすも殺すもSQL次第

 データベースを語る上で欠かせない存在が「SQL(エスキューエル)」というものだ。「Structured Query Language」の略称で、「クエリ」などと呼ばれることもある。データベースはこのSQLを使うことで、実にさまざまな操作を行うことができる。

 例えば、次のSQLを見てみよう。

SELECT item_name, image, price, url FROM item_table WHERE price >= 1000 AND price < 2000 ORDER BY price ASC;

 このSQLは、「商品を格納したテーブルから、1000円以上で2000円未満の商品のみを、価格の安い順で並べて取得し、商品名、画像、価格と詳細URLを取得する」というSQLである。

 一見すると非常に難しそうに感じるが、実際にはかなりシンプルな構成であることが分かるだろう。分解してみよう。

SELECT

 この一言で「取得する」という意味を持っている

item_name, image, price, url

 これは、列の名前のことだ。カンマ区切りでいくつでもつなげることができる。なお、データベースでは列のことを「フィールド」とか「カラム」などと呼ぶことが多いので覚えておくと良いだろう。

FROM item_table

 これは「どこから」、つまり表を示す。表のことをデータベースでは「テーブル」と呼ぶ。

WHERE price >= 1000

 ここからは、その条件だ。これは「1000円以上」という意味で「<=」という記号は「≦」と同じ意味だ。

AND price < 2000

 「AND」は前の条件に加えてという意味で、ここでは「1000円以上で2000円未満」という意味になっている。

ORDER BY price ASC

 ORDER BYは、並び替えの列(フィールド)を指定する。priceは価格で、「ASC」というのは「ascending(昇順)」という意味。つまり、小さい順で並べるというわけだ。

 このように、SQLは簡単な英単語や算用記号の組み合わせで、複雑な条件を作り出すことができる。例えば「件数を制限したい」という場合にはこうだ。

SELECT * FROM item_table LIMIT 0, 10;

 「LIMIT」が件数制限で、ここでは「最初から10件」となる。さらに、次のページに行くなら

SELECT * FROM item_table LIMIT 10, 10;

 とすればよい。

 SQLは、決して専門的な技術でもないし、プログラム技術が必要なわけでもない。「プログラムは分からない」というデザイナであっても、データベースには興味を持ち、個人的なデータの整理にデータベースを使っている人もいたりするので、もし興味があればSQLの勉強をしてみると良いだろう。

 「けど、このSQLってどこに打ち込めばいいの……?」と不安なアナタのために、次ページで操作ソフトを紹介しよう。

記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
RIAやAjaxによりインターフェイスデザインの幅が広がりました。「正しいデザイン」へのアプローチを、テクノロジーとメソドロジー両方の切り口で、具体的にご紹介するリアルイベントです。
  • 今日のトップ記事
  • 3日前
  • 4日前
  • 5日前
  • 6日前
  • 7日前
  • 新着記事
  • 人気記事
  • 特集
  • ブログ