SQLの練習問題です。
筆者の環境は以下となっていますが、別のデータベースやツールでもほとんど同じように動作すると思います。
- MariaDB 5.5.48
- MySQL Workbench 6.3
よくわからないという方は、XAMPをインストールすると簡単に筆者と同じ環境を構築できます。以下のページで紹介されています。
【PHP入門】環境構築
問題として使用するデータは以下からダウンロード可能です。phpMyAdminからデータベース(worldcup2014)を作成しインポートしておいてください。
worldcup2014.zip
※データの誤りがありましたので、既にインポートされた方も改めて再インポートをお願いします。※ 2016/07/15
問題:身長の高い選手6位~20位を抽出し、以下の項目を表示してください。
・名前
・身長
・体重
正解:
SELECT name, height, weight FROM players ORDER BY height DESC LIMIT 5, 15
LIMITを用いるやや応用的なSQLです。
LIMIT句の使い方
LIMIT [offset,] row_count
LIMIT句はこのようにカンマ区切りで値を2つ指定すると、抽出するデータのスタート位置を指示することができます。
正当例のように5を指定すると、6位(6行目)から表示となります。これはゼロから数えはじめ、ゼロが1行目を表すからです。
2つ目の値は前問と同じように表示する行数を表し、今回は6位~20位の15選手を抽出する必要がありますので15となります。
このような開始行数を指定するLIMIT句は実際に業務システムを作る際に、一覧画面のページ遷移機能でよく使用されます。
連載目次リンク
関連する連載リンク
WEBアプリケーション関連 人気連載リンク
データベースの基礎が学べるSQL基礎講座
SQL基礎 連載
より実践的なWEBアプリ開発講座!Bootstrap活用を学ぶなら・・
魁!小野の塾 連載