見出し画像

select文による検索 職業訓練46日目

select文の基本

select文とはデータテーブルの中から特定のデータだけを検索して表示する機能です。例えば世界の国々の名前や、人口、大陸などのデータをまとめたデータベースがあるとします。その中で北米大陸の国のみ表示したい時などの機能を説明します。

----------------------------------------------------------------------------

・基本構文

select フィールド名 from テーブル名;

上記のように世界各国のデータベースを「world」としその中のテーブルとして「country」が存在するものとします。その中には国名を表す「name」というフィールド、大陸名をさす「continent」、人口を指す「population」が存在するものとします。

構文通りやって行くと

select name from country;

となります。これで国名がズラーっと出てくる。

次に複数のフィールドを表示する場合の例を挙げます。

select name,continents,population from country;

カンマで区切るだけです。これで複数のフィールドを表示できます。

----------------------------------------------------------------------------

条件を指定した検索(where)

条件を指定する際はwhereを使います。まずは例文から行きましょう。

select name,continent,population from country;

where continent ='Asia';

↑の検索結果としてアジア大陸の国だけが検索され表示されます。注意点としては文字列はシングルクォーテーションで囲みます。

---------------------------------------------------------------------------

複数の条件を指定する場合

select name,continent,population from country;

where continent ='Asia'

and population>100000000;

↑この例文で指定した条件はアジア大陸で人口が1億人を超える国という条件です。複数の条件を指定する場合は「and」を使います。また基本的な算術演算子は使うことができます。

-------------------------------------------------------------------------

グループ毎の集計(group by)

例文から行きます。

select name, population,continent from country

group by continent;

↑の例文では各大陸毎に国が表示されます。しかし注意点としてはその大陸の国すべてが表示されるのではなく、先頭にくる国(Aから国名が始まる国)のみ表示されます。

したがってこのような使い方をすることが多いです。

select count(*) from country

group by continent;

↑の例文では各大陸に何個のデータがあるか、つまり何カ国あるのかということを集計しています。cout(*)が集計するという命令になります。

----------------------------------------------------------------------------

havingの説明

havingとは簡単にいうとwhereと同じ機能を持ちます。違いとしてはgroup byを使った後にwhereを使うことはできないのですが、havingは使うことができます。例文行きます。

select count(*) from country

group by continent

having population>100000000

↑の文だと各大陸に一億人を超える人口の国が何カ国あるか検索して表示することができます。

----------------------------------------------------------------------------

並べ替え(order by)

基本構文

order by フィールド名 asc(省略可)←昇順に並べ替え

order by フィールド名 desc←降順に並べ替え

↑のようになります。

またもう一つの機能としてlimitがあります。上から5つなどのように指定もできます。

例文はこちらから

select name from country

where population>50000000

order by name

limit10;

↑の例文では五千万人以上の国を検索し、国名を昇順に10個並べ替えて表示します。

----------------------------------------------------------------------------

今日はこの辺で失礼します。ありがとうございました。


この記事が気に入ったらサポートをしてみませんか?