サンプルデータベースworldには、3つのテーブルが格納されています。まずはそれを確かめて見ましょう。
まず、MySQL Workbenchを起動し、MySQLに接続します。

左ペインの「Schemas」タブを選択し、「world」-「Tables」をクリックします。

以下のように入力し、赤枠のボタンをクリックします。

show tables;

「show tables」は、データベースに格納されているテーブルの一覧を表示します。以下のような実行結果が表示されると思います。

city
country
countrylanguage

それぞれのテーブルには以下の情報が格納されています。

country世界中の国について情報
city上記の国々にある都市についての情報
countryLanguage各国で話されている言語の情報

今回はcontryとcityの2表を利用します。それぞれのテーブルの構造は以下のとおりです。

contry

意味
Name国名
Continent所在大陸名
Region所在地域
Population人口
GNPGNP(国民総生産)
GNPOld旧GNP
Capital首都

city

意味
IDIDとなる一意の数値
Name都市名
ContryCode国別記号
District所在地域
Population人口

では早速、この2表からいろいろなデータを検索してみましょう。データの検索はSELECT文を用いて行います。さて、そのSELECT文ですが、ひとつひとつ丁寧に解説しようとするとものすごく大変です。以降の内容は、SQLに関する詳細な説明は割愛しており、SQLに触れたことがある方は問題ありませんが、そうでない方には説明が不足しているところが多々あるかと思います。ただそれでも、まずはサンプルどおりにSQLを書いてみて、実際にデータを検索してみてください。一度に全てを覚えようとせず、SQLとはどういったものか、何ができるのか、まずはそれらの感覚を掴むところからはじめることが、より効果的な覚え方だと考えます。

東アジアに位置する国名を表示

SELECT Name FROM country
WHERE Region = 'Eastern Asia';
China
Hong Kong
Japan
South Korea
Macao
Mongolia
North Korea
Taiwan

SELECT文では、選択したい行の条件をWHERE句で指定します。ここでは、Region(所在地域)が東アジアの国名を選択して表示しています。当然、日本もありますね。

人口0人の国名を検索する

SELECT Name FROM country
WHERE Population = 0;
Antarctica
French Southern territories
Bouvet Island
Heard Island and McDonald Islands
British Indian Ocean Territory
South Georgia and the South Sandwich Islands
United States Minor Outlying Islands

国は人がいて成り立つものであり、人口が0人の国なんて、国ではないのではないか。と、思うかもしれませんが、そんな国もあるんですね。例えば、Antarcticaは南極大陸のことです。French Southern territories(フランス領南方)は、そのほとんどが無人、あるいは研究機関・軍関係者しか住んでいない地域と言われています。

人口が700万以上の都市を検索する

SELECT * FROM city
WHERE Population > 7000000
ORDER BY Population DESC;
IDNameCountryCodeDistrictPopulation
1024Mumbai (Bombay)INDMaharashtra10500000
2331SeoulKORSeoul9981619
206S??o PauloBRAS??o Paulo9968485
1890ShanghaiCHNShanghai9696300
939JakartaIDNJakarta Raya9604900
2822KarachiPAKSindh9269265
3357IstanbulTURIstanbul8787958
2515Ciudad de M??xicoMEXDistrito Federal8591309
3580MoscowRUSMoscow (City)8389200
3793New YorkUSANew York8008278
1532TokyoJPNTokyo-to7980230
1891PekingCHNPeking7472000
456LondonGBREngland7285000
1025DelhiINDDelhi7206704

人口が700万人以上の都市を多い順(降順)に並べて表示しています。並び順を指定するにはORDER BY句を用います。DESCキーワードでを指定することで降順となります。ASKキーワード、もしくは何も指定しないと昇順で並びます。こうみると、アジアの人口の多さが垣間見えます。日本の東京も11位にいます。ただ、このデータは少し古く、2019年現在の東京の人口はもっと多く1,385万人だそうです。日本の総人口が1億2千万人ぐらいなので、あの小さな範囲に、いったいどれだけ人が密集しているのでしょうか。東京の人口は増加しているその一方で、日本の総人口は2004年をピークに、今後100年間で100年前(明治時代後半)の水準に戻っていくと言われており、急激に減少しているそうです。

人口100万人以上の日本都市

SELECT * FROM city
WHERE countryCode = 'JPN'
 AND Population > 1000000;
IDNameCountryCodeDistrictPopulation
1532TokyoJPNTokyo-to7980230
1533Jokohama [Yokohama]JPNKanagawa3339594
1534OsakaJPNOsaka2595674
1535NagoyaJPNAichi2154376
1536SapporoJPNHokkaido1790886
1537KiotoJPNKyoto1461974
1538KobeJPNHyogo1425139
1539FukuokaJPNFukuoka1308379
1540KawasakiJPNKanagawa1217359
1541HiroshimaJPNHiroshima1119117
1542KitakyushuJPNFukuoka1016264

日本の都市に限定して、人口100万人以上の都市を多い順に並べて表示しています。東京、横浜、大阪、名古屋と続いています。

人口の少ない都市ベスト5

SELECT * FROM city
ORDER BY Population
LIMIT 5;
IDNameCountryCodeDistrictPopulation
2912AdamstownPCN??42
2317West IslandCCKWest Island167
3333FakaofoTKLFakaofo300
3538Citt?? del VaticanoVAT??455
2316BantamCCKHome Island503

次に、再び世界に目を向けて、人口の少ない都市のペスト5を検索してみます。ベスト○○のように、指定した数に限定するには、LIMIT句を使用します。ORDER BY句と併用することで、上記のように「人口が最も少ない都市ベスト5」のような検索ができます。最も少ない都市となったAdamstown(アダムスタウン)は、日本の学校の1クラスのような人数ですね。戦艦バウンティ号の反逆者が最後にたどりついた地として有名であり、現在の住民の多くは、伝説的な船員の直接の子孫なんだそうです。

人口の多い都市ベスト11

SELECT * FROM city
ORDER BY Population desc
LIMIT 11;
IDNameCountryCodeDistrictPopulation
1024Mumbai (Bombay)INDMaharashtra10500000
2331SeoulKORSeoul9981619
206S??o PauloBRAS??o Paulo9968485
1890ShanghaiCHNShanghai9696300
939JakartaIDNJakarta Raya9604900
2822KarachiPAKSindh9269265
3357IstanbulTURIstanbul8787958
2515Ciudad de M??xicoMEXDistrito Federal8591309
3580MoscowRUSMoscow (City)8389200
3793New YorkUSANew York8008278
1532TokyoJPNTokyo-to7980230

今度は逆に、人口の多い都市ベスト11を検索してみます。本当はベスト10にしたかったのですが、東京が11位だったので中途半端になってしまいました。インドのMumbai(ムンバイ)が第1位なんですね。インドは次の中国と言われているようで、その人口の多さからなる巨大市場への進出を様々な企業が企てているなどという話はよく耳にします。ただ、最新のデータではまた違う結果となっているのでしょう。