UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ 準備編 #2 条件を指定して取得

記入日:2022-12-16 編集日:2022-12-16

SQL見るだけクエリを始めるにあたって、まずはサンプルデータが必要な為用意しました。せっかく用意したので、まずは初めの第一歩、このサンプルデータの中身を、SQLを使って全件取得してみます。の続きで、今回は取得する条件を指定して取得レコードを絞り込んでみます。

この記事を読むと(約5分)
データベース内のあるテーブルから、レコード(保存された内容)をSQLで取得する際に、指定した条件のレコードのみ取得する為に、どのようなプログラムを書いているかが分かります。

まずは前回のおさらい。全てのレコードを取得するには以下のようにSQLを書きました。

// 前回全てのレコードを取得した際のSQL
$query = 'SELECT * FROM table_name';

SELECT * FROM table_name この部分で、データベース内にあるtable_nameという名前のテーブルの全てのレコード(保存された内容)を取得しております。

今回は、人口が150万人を超えている都市のみ取得してみます。

// 人口が150万人以上の都市のみ取得する 
$query = 'SELECT * FROM table_name WHERE population >= 1500000';

WHERE population >= 1500000 というSQLを書き足しました、WHERE句と言われる構文を使う事で条件の指定が可能になります。populationという項目が数値的に1500000以上のもののみ取得対象。という意味です。>=の記号は演算子と言われるものですが、その他 [以上、以下、等しい]など、いくつかの種類があります。

さらに条件を追加して、エリアが関東のレコードのみという条件を追加して取得してみます。

// 人口が150万人以上の都市のみ取得する かつ 関東地方のみ 
$query = 'SELECT * FROM table_name WHERE population >= 1500000 AND area = "関東"';

AND area = "関東" というSQLを書き足しました。ANDで繋いだのちに、area項目が"関東"と同じもののみ という条件を足しました。WHERE句の中に、複数の条件を指定するためには、ANDで条件を連結することで、AとBの条件に一致するもの という形になります。ANDの部分をORにすると、AもしくはBの条件に一致するもの という形になります。


これを二次元連想配列という形式で取得すると、2件の情報を取得することができました。

            Array
(
    [0] => Array
        (
            [id] => 1
            [name1] => 横浜市
            [name2] => 神奈川県
            [population] => 3771961
            [img] => dbsample
            [area] => 関東
        )

    [1] => Array
        (
            [id] => 6
            [name1] => 川崎市
            [name2] => 神奈川県
            [population] => 1540890
            [img] => dbsample
            [area] => 関東
        )

)
			

見やすくする為に、HTMLとCSSで体裁を整えると、以下のようになります。

全国792市の人口ランキングBEST20
(条件:150万人以上かつ関東地方)

市名 都道府県名 人口 エリア
1 横浜市
神奈川県
3771961
関東
6 川崎市
神奈川県
1540890
関東

簡易的な説明ではありましたが、データベースからSQLでレコードを取得して、ウェブ画面に表示するまでのイメージが湧きますでしょうか... 次回からは、よく使うSQL構文を自身のチートシート的にまとめていこうと思います。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。