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

SQL見るだけクエリ 準備編 #1 全件取得してみる

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

SQL見るだけクエリを始めるにあたって、まずはサンプルデータが必要な為用意しました。せっかく用意したので、まずは初めの第一歩、このサンプルデータの中身を、SQLを使って全件取得してみます。データベース(MYSQL)内に保存したサンプルデータを、PHPのPDOで接続取得しております。

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

以下の様なテーブルを用意しました。(テーブル名:table_name)

idname1name2populationimgarea
1横浜市神奈川県3771961dbsample関東
2大阪市大阪府2756807dbsample関西
3名古屋市愛知県2325778dbsample中部
4札幌市北海道1973000dbsample北海道
5福岡市福岡県1631409dbsample九州

同様に20レコード(件)

テーブルの情報を取得するSQLに関して、注目する部分は、以下の10行目のみです。

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

try {
    include_once 'class.php';

    // データベース接続
    $database = new Database();
    $db = $database->connect();


    // SQLを準備し、パラメータをバインドする
    $query = 'SELECT * FROM table_name';
    $stmt = $db->prepare($query);

    // 実行する
    $stmt->execute();

    // 結果を取得する
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($result);

    // データベースから切断する
    $database->disconnect();

} catch(PDOException $e) {
    echo $e->getMessage();
}

これを実行すると、二次元連想配列という形式で、全ての情報を取得することができます。

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

    [1] => Array
        (
            [id] => 2
            [name1] => 大阪市
            [name2] => 大阪府
            [population] => 2756807
            [img] => dbsample
            [area] => 関西
        )

    [2] => Array
        (
            [id] => 3
            [name1] => 名古屋市
            [name2] => 愛知県
            [population] => 2325778
            [img] => dbsample
            [area] => 中部
        )

    [3] => Array
        (
            [id] => 4
            [name1] => 札幌市
            [name2] => 北海道
            [population] => 1973000
            [img] => dbsample
            [area] => 北海道
        )

    [4] => Array
        (
            [id] => 5
            [name1] => 福岡市
            [name2] => 福岡県
            [population] => 1631409
            [img] => dbsample
            [area] => 九州
        )

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

    [6] => Array
        (
            [id] => 7
            [name1] => 神戸市
            [name2] => 兵庫県
            [population] => 1510171
            [img] => dbsample
            [area] => 関西
        )

    [7] => Array
        (
            [id] => 8
            [name1] => 京都市
            [name2] => 京都府
            [population] => 1448964
            [img] => dbsample
            [area] => 関西
        )

    [8] => Array
        (
            [id] => 9
            [name1] => さいたま市
            [name2] => 埼玉県
            [population] => 1339784
            [img] => dbsample
            [area] => 関東
        )

    [9] => Array
        (
            [id] => 10
            [name1] => 広島市
            [name2] => 広島県
            [population] => 1191445
            [img] => dbsample
            [area] => 中国
        )

    [10] => Array
        (
            [id] => 11
            [name1] => 仙台市
            [name2] => 宮城県
            [population] => 1099239
            [img] => dbsample
            [area] => 東北
        )

    [11] => Array
        (
            [id] => 12
            [name1] => 千葉市
            [name2] => 千葉県
            [population] => 978801
            [img] => dbsample
            [area] => 関東
        )

    [12] => Array
        (
            [id] => 13
            [name1] => 北九州市
            [name2] => 福岡県
            [population] => 924143
            [img] => dbsample
            [area] => 九州
        )

    [13] => Array
        (
            [id] => 14
            [name1] => 堺市
            [name2] => 大阪府
            [population] => 816559
            [img] => dbsample
            [area] => 関西
        )

    [14] => Array
        (
            [id] => 15
            [name1] => 浜松市
            [name2] => 静岡県
            [population] => 783573
            [img] => dbsample
            [area] => 中部
        )

    [15] => Array
        (
            [id] => 16
            [name1] => 新潟市
            [name2] => 新潟県
            [population] => 778717
            [img] => dbsample
            [area] => 中部
        )

    [16] => Array
        (
            [id] => 17
            [name1] => 熊本市
            [name2] => 熊本県
            [population] => 737850
            [img] => dbsample
            [area] => 九州
        )

    [17] => Array
        (
            [id] => 18
            [name1] => 相模原市
            [name2] => 神奈川県
            [population] => 726559
            [img] => dbsample
            [area] => 関東
        )

    [18] => Array
        (
            [id] => 19
            [name1] => 岡山市
            [name2] => 岡山県
            [population] => 719437
            [img] => dbsample
            [area] => 中国
        )

    [19] => Array
        (
            [id] => 20
            [name1] => 静岡市
            [name2] => 静岡県
            [population] => 683358
            [img] => dbsample
            [area] => 中部
        )

)
			

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

全国792市の人口ランキングBEST20

市名 都道府県名 人口 エリア
1 横浜市
神奈川県
3771961
関東
2 大阪市
大阪府
2756807
関西
3 名古屋市
愛知県
2325778
中部
4 札幌市
北海道
1973000
北海道
5 福岡市
福岡県
1631409
九州
6 川崎市
神奈川県
1540890
関東
7 神戸市
兵庫県
1510171
関西
8 京都市
京都府
1448964
関西
9 さいたま市
埼玉県
1339784
関東
10 広島市
広島県
1191445
中国
11 仙台市
宮城県
1099239
東北
12 千葉市
千葉県
978801
関東
13 北九州市
福岡県
924143
九州
14 堺市
大阪府
816559
関西
15 浜松市
静岡県
783573
中部
16 新潟市
新潟県
778717
中部
17 熊本市
熊本県
737850
九州
18 相模原市
神奈川県
726559
関東
19 岡山市
岡山県
719437
中国
20 静岡市
静岡県
683358
中部

...少し長くて見にくいですね。次回はこの表をSQLを使って少し整理してみようと思います。

SQLの使いどころ

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

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

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

KK

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