記入日:2022-12-27 編集日:2022-12-27
SQL見るだけクエリ。今回はテーブルに保存されている人口数を万人単位で四捨五入して見やすくしようと思います。四捨五入する為にROUND関数というものを使います。
この記事を読むと(約5分)
ROUND関数を使って四捨五入する方法を知る事ができます。
以下の様なテーブルを用意しました。(テーブル名:table_name)
| id | name1 | name2 | population | img | area |
|---|---|---|---|---|---|
| 1 | 横浜市 | 神奈川県 | 3771961 | dbsample | 関東 |
| 2 | 大阪市 | 大阪府 | 2756807 | dbsample | 関西 |
| 3 | 名古屋市 | 愛知県 | 2325778 | dbsample | 中部 |
| 4 | 札幌市 | 北海道 | 1973000 | dbsample | 北海道 |
| 5 | 福岡市 | 福岡県 | 1631409 | dbsample | 九州 |
同様に20レコード(件)
テーブルの情報を取得するSQLに関して、注目する部分は、以下の9行目のみです。
SELECT *, ROUND(population/10000) AS round FROM table_name この部分で、人口の数字を10000で割ったのちに四捨五入しております。
ROUND(population/10000) AS round SQLの記述で頻繁に AS という文字が出てきますが、これは ROUND(population/10000) の事をroundという呼び方に置き換える事になります。
try {
include_once '../model/class.php';
// データベース接続
$database = new Database();
$db = $database->connect();
// SQLを準備し、パラメータをバインドする
$query = 'SELECT *, ROUND(population/10000) AS round 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] => 関東
[round] => 377
)
[1] => Array
(
[id] => 2
[name1] => 大阪市
[name2] => 大阪府
[population] => 2756807
[img] => dbsample
[area] => 関西
[round] => 276
)
[2] => Array
(
[id] => 3
[name1] => 名古屋市
[name2] => 愛知県
[population] => 2325778
[img] => dbsample
[area] => 中部
[round] => 233
)
[3] => Array
(
[id] => 4
[name1] => 札幌市
[name2] => 北海道
[population] => 1973000
[img] => dbsample
[area] => 北海道
[round] => 197
)
[4] => Array
(
[id] => 5
[name1] => 福岡市
[name2] => 福岡県
[population] => 1631409
[img] => dbsample
[area] => 九州
[round] => 163
)
[5] => Array
(
[id] => 6
[name1] => 川崎市
[name2] => 神奈川県
[population] => 1540890
[img] => dbsample
[area] => 関東
[round] => 154
)
[6] => Array
(
[id] => 7
[name1] => 神戸市
[name2] => 兵庫県
[population] => 1510171
[img] => dbsample
[area] => 関西
[round] => 151
)
[7] => Array
(
[id] => 8
[name1] => 京都市
[name2] => 京都府
[population] => 1448964
[img] => dbsample
[area] => 関西
[round] => 145
)
[8] => Array
(
[id] => 9
[name1] => さいたま市
[name2] => 埼玉県
[population] => 1339784
[img] => dbsample
[area] => 関東
[round] => 134
)
[9] => Array
(
[id] => 10
[name1] => 広島市
[name2] => 広島県
[population] => 1191445
[img] => dbsample
[area] => 中国
[round] => 119
)
[10] => Array
(
[id] => 11
[name1] => 仙台市
[name2] => 宮城県
[population] => 1099239
[img] => dbsample
[area] => 東北
[round] => 110
)
[11] => Array
(
[id] => 12
[name1] => 千葉市
[name2] => 千葉県
[population] => 978801
[img] => dbsample
[area] => 関東
[round] => 98
)
[12] => Array
(
[id] => 13
[name1] => 北九州市
[name2] => 福岡県
[population] => 924143
[img] => dbsample
[area] => 九州
[round] => 92
)
[13] => Array
(
[id] => 14
[name1] => 堺市
[name2] => 大阪府
[population] => 816559
[img] => dbsample
[area] => 関西
[round] => 82
)
[14] => Array
(
[id] => 15
[name1] => 浜松市
[name2] => 静岡県
[population] => 783573
[img] => dbsample
[area] => 中部
[round] => 78
)
[15] => Array
(
[id] => 16
[name1] => 新潟市
[name2] => 新潟県
[population] => 778717
[img] => dbsample
[area] => 中部
[round] => 78
)
[16] => Array
(
[id] => 17
[name1] => 熊本市
[name2] => 熊本県
[population] => 737850
[img] => dbsample
[area] => 九州
[round] => 74
)
[17] => Array
(
[id] => 18
[name1] => 相模原市
[name2] => 神奈川県
[population] => 726559
[img] => dbsample
[area] => 関東
[round] => 73
)
[18] => Array
(
[id] => 19
[name1] => 岡山市
[name2] => 岡山県
[population] => 719437
[img] => dbsample
[area] => 中国
[round] => 72
)
[19] => Array
(
[id] => 20
[name1] => 静岡市
[name2] => 静岡県
[population] => 683358
[img] => dbsample
[area] => 中部
[round] => 68
)
)
見やすくする為に、HTMLとCSSで体裁を整えると、以下のようになります。万人という文字はHTMLで追加しています。
| 市名 | 都道府県名 | 人口 | エリア | |
|---|---|---|---|---|
| 1 | 横浜市 |
神奈川県 |
377万人 |
関東 |
| 2 | 大阪市 |
大阪府 |
276万人 |
関西 |
| 3 | 名古屋市 |
愛知県 |
233万人 |
中部 |
| 4 | 札幌市 |
北海道 |
197万人 |
北海道 |
| 5 | 福岡市 |
福岡県 |
163万人 |
九州 |
| 6 | 川崎市 |
神奈川県 |
154万人 |
関東 |
| 7 | 神戸市 |
兵庫県 |
151万人 |
関西 |
| 8 | 京都市 |
京都府 |
145万人 |
関西 |
| 9 | さいたま市 |
埼玉県 |
134万人 |
関東 |
| 10 | 広島市 |
広島県 |
119万人 |
中国 |
| 11 | 仙台市 |
宮城県 |
110万人 |
東北 |
| 12 | 千葉市 |
千葉県 |
98万人 |
関東 |
| 13 | 北九州市 |
福岡県 |
92万人 |
九州 |
| 14 | 堺市 |
大阪府 |
82万人 |
関西 |
| 15 | 浜松市 |
静岡県 |
78万人 |
中部 |
| 16 | 新潟市 |
新潟県 |
78万人 |
中部 |
| 17 | 熊本市 |
熊本県 |
74万人 |
九州 |
| 18 | 相模原市 |
神奈川県 |
73万人 |
関東 |
| 19 | 岡山市 |
岡山県 |
72万人 |
中国 |
| 20 | 静岡市 |
静岡県 |
68万人 |
中部 |
今回も、SQLの便利な関数の例でした。
SQLの使いどころ
サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。
SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。
また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。
KK
機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。