SHOEISHA iD

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

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

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

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

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

第6回


SQL基礎:レコード追加(INSERT文)

 次に、restaurantテーブルにレコードを追加してみましょう。レコード追加INSERTという命令を用います。まずは早速、店舗情報を追加してみましょう。CREATE TABLEの時と同じように画面上の[SQL]タブをクリックし、次のSQLを実行してください。

リスト2
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('1','吉祥寺','うさぎや','2000');
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('2','高円寺','パンケーキーズ','2000');
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('3','千葉','ビストロアーシュ','3500');
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('4','新宿','エスパーニャ','3000');

 INSERT命令は以下の書式で記述します。

INSERT命令の書式
INSERT INTO テーブル名(カラム名1, カラム名2…) VALUES('値1','値2'…);

 カラム名1に対して値1を、カラム名2に対して値2を格納します。上記のSQLではrestaurant_noに「1」を、addressに「吉祥寺」を、といった対応でデータを格納しています。値の部分は、シングルクオート()で囲むようにしましょう。

SQL基礎:レコード検索(SELECT文)

 それでは、追加したレコードの中身を見てみましょう。レコードの検索SELECTという命令を用います。同じ手順で以下を実行してください。

リスト3
SELECT * FROM restaurant;

 次のように店舗情報が表示されていれば成功です。

リスト3実行後の画面、restaurantテーブルの内容がすべて表示された
リスト3実行後の画面、restaurantテーブルの内容がすべて表示された

 SELECT文の書式は次のとおりとなります。

SELECT文の書式
SELECT 取得したいカラム名1, 取得したいカラム名2… FROM テーブル名 WHERE 絞込み条件

 カラム名に、取得したいカラムを指定します。すべてのカラムを指定する場合はアスタリスク(*)を使います。

 また、「絞込み条件」を指定することで、ある条件に合致するレコードのみを取得できます。絞込み条件が不要な場合は「WHERE 絞込み条件」の部分を記述しません。絞込み条件はPHPのif文の条件の記述と似ており、次のような指定が可能です。

文字列に対する絞込み

  • カラム名 = 検索文字
  •  →カラムの値が検索文字に一致するレコードを表示(完全一致)

    例)addressが「吉祥寺」
    WHERE address = '吉祥寺'
    
  • カラム名 LIKE 検索文字
  •  →カラムの値に検索文字を含むレコードを表示(部分一致)

    例)nameにビストロを含む
    WHERE name LIKE '%ビストロ%'
    
    例)nameがビストロで始まる
    WHERE name LIKE 'ビストロ%'
    
    例)nameがビストロで終わる
    WHERE name LIKE '%ビストロ'
    

数値に対する絞込み

  • カラム名 > 数値
  •  → カラムの値が数値より大きいレコードを表示

    例)priceが2000より大きい
    WHERE price > 2000
    
  • カラム名 < 数値
  •  → カラムの値が数値より小さいレコードを表示

  • カラム名 >= 数値
  •  → カラムの値が数値以上のレコードを表示

    例)priceが2000以上
    WHERE price >= 2000 
    
  • カラム名 <= 数値
  •  → カラムの値が数値以下のレコードを表示

 LIKEを使った検索では、何らかの文字が入る可能性がある箇所をパーセント記号(%)で表します。例えば「WHERE name LIKE 'パンケーキ%ズ'」と記載すれば、nameカラムが「パンケーキイヤーズ」や「パンケーキーズ」のカラムが検索されます。では、実際のSQLで表示を確認してください。

リスト4
SELECT * FROM restaurant WHERE name LIKE '%ビストロ%';

 「ビストロアーシュ」が検索されたかと思います。次に検索結果の全カラムを表示するのではなく、名前と住所カラムのみを表示するようにしましょう。次のようにアスタリスクの部分をカラム名に変えます。

リスト5
SELECT name,address FROM restaurant WHERE name LIKE '%ビストロ%';

 また、PHPの条件分岐と同じく、複数の条件をつなぐことも可能です。その場合、ANDORを用います。

  • 条件1 AND 条件2
  •  → 条件1で、かつ条件2

  • 条件1 OR 条件2
  •  → 条件1または条件2

 例えば、エリアが吉祥寺で予算が1000円以上の店舗を探すのであれば、

SELECT * FROM restaurant WHERE address = '渋谷' AND price >= 1000;

と記述します。

 エリアが吉祥寺または5000円以下で探すのであれば、

SELECT * FROM restaurant WHERE address = '吉祥寺' OR price <= 5000;

と記述します。

 このように、SQLではさまざまな条件をつけて検索できます。条件に関してより詳しく知りたい方は、[Smart]のSQL講座・SELECT構文のページなどを参考にしてみてください。


←前のページ【データベース操作の基礎】へ 次のページ【SQL基礎:レコード更新(UPDATE)】へ→

次のページ
SQL基礎:レコード更新(UPDATE文)

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

イベント

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

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

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

メールバックナンバー