MySQL world サンプルデータベース
world サンプルデータベースは、MySQLにプリインストール(または練習用に提供)されているデータベースであり、学習や練習に特化した構造化データを提供します。このデータベースは「国(Country)」「都市(City)」「言語(CountryLanguage)」に関するデータをシミュレートしており、リレーショナルデータベース(RDB)の概念を理解し、SQLクエリを練習するための絶好のリソースです。手動でゼロからデータを作成する必要はありません。多くのMySQLチュートリアルやサンプルで共通のベースとして採用されているため、データの入力作業ではなく、SQL言語そのものの学習に集中することができます。
1. worldデータベースの理解
world データベースは、City(都市)、Country(国)、CountryLanguage(言語)という3つのテーブルで構成されています。各テーブルには特定の情報が格納されており、共通のカラム(後のモジュールで詳しく解説する「外キー(Foreign Key)」)を介して相互に関連付けられています。まずは、各テーブルの基本的な構造と用途を理解しましょう。
1.1 Country(国)テーブル
Country テーブルは、世界各国の情報を保持しています。国コード、名称、大陸、地域、表面積、独立記念年、人口、平均寿命、政治形態、国家元首、そして首都のIDといった詳細情報が含まれています。このテーブルは、国固有のデータの中心となる存在です。
Country テーブルのカラム構成例:
| カラム名 (Column Name) | データ型 (Data Type) | 説明 (Description) |
|---|---|---|
| Code | CHAR(3) | 一意の3文字国コード(主キー Primary Key) |
| Name | CHAR(52) | 国の正式名称 |
| Continent | ENUM(...) | その国が属する大陸 |
| Region | CHAR(26) | 地理的領域 |
| SurfaceArea | DECIMAL(10,2) | 総面積(平方キロメートル) |
| IndepYear | SMALLINT | 独立した年 |
| Population | INT | 総人口 |
| LifeExpectancy | DECIMAL(3,1) | 平均寿命 |
| GNP | DECIMAL(10,2) | 国民総生産 |
| GovernmentForm | CHAR(45) | 政治形態 |
| HeadOfState | CHAR(60) | 国家元首の氏名 |
| Capital | INT | 首都のID(Cityテーブルへの外キー) |
1.2 City(都市)テーブル
City テーブルは、都市に関する情報を格納しています。各都市のレコードには、ID、名称、国コード、所属する地域(都道府県や州など)、および人口が含まれます。このテーブルは CountryCode カラムを介して Country テーブルとリンクしています。
City テーブルのカラム構成例:
| カラム名 (Column Name) | データ型 (Data Type) | 説明 (Description) |
|---|---|---|
| ID | INT | 都市の一意の識別子(主キー Primary Key) |
| Name | CHAR(35) | 都市名 |
| CountryCode | CHAR(3) | 3文字の国コード(Countryテーブルへの外キー) |
| District | CHAR(20) | 都市が属する地域または州 |
| Population | INT | 都市の総人口 |
1.3 CountryLanguage(言語)テーブル
CountryLanguage テーブルは、各国内で使用されている言語の情報を格納しています。国と言語をリンクさせる役割を持ち、その言語が公用語であるかどうかを示す IsOfficial フラグと、その国の人口の中でその言語を話す割合を示す Percentage カラムを含んでいます。
CountryLanguage テーブルのカラム構成例:
| カラム名 (Column Name) | データ型 (Data Type) | 説明 (Description) |
|---|---|---|
| CountryCode | CHAR(3) | 3文字の国コード(Countryテーブルへの外キー) |
| Language | CHAR(30) | 言語名 |
| IsOfficial | ENUM('T','F') | 公用語であれば 'T'、そうでなければ 'F' |
| Percentage | DECIMAL(4,1) | その言語を話す人口の割合 |
2. MySQL Workbench で world データベースにアクセスする
前章で説明した通り、MySQL Workbench を使用して MySQL サーバーに接続すると、world データベースにアクセスできるようになります。Workbench インターフェースの左側にある SCHEMAS パネルを確認してください。
- world スキーマ (Schema) を探す: SCHEMAS パネルに、使用可能なデータベース(スキーマ)のリストが表示されます。その中に world データベースが含まれているはずです。
- world スキーマを展開する: world の横にある小さな矢印をクリックして展開します。Tables(テーブル)、Views(ビュー)、Stored Procedures(ストアドプロシージャ)、Functions(関数)などのサブフォルダが表示されます。
- Tables(テーブル)を探索する: Tables フォルダを展開すると、
city、country、countrylanguageが見つかります。これらのテーブル名をクリックすると、そのカラム構造や属性が下方の Object Info(オブジェクト情報)パネルに表示されます。
3. 実践デモ
デモとして、Country テーブルの最初の数行を確認するための基本的なクエリを実行してみましょう。これは、今後のモジュールで詳しく学習する SELECT ステートメントのプレビューです。ここでの目的は、データがどのような形式で格納されているかを視覚的に確認することです。
USE world; -- どのデータベースを操作するかをMySQLに指示します。
-- セッションごと、またはデータベースを切り替える際に一度実行する必要があります。
SELECT * -- '*' は「すべてのカラムを選択する」という意味です。
FROM Country -- データを取得したいテーブルを指定します。
LIMIT 5; -- 出力結果を最初の5行に制限します。
-- 巨大なテーブルの中身を素早くプレビューするのに非常に便利です。MySQL Workbench でこのクエリを実行する際(SQLエディターに入力し、稲妻アイコンをクリックするか Ctrl+Shift+Enter を押下)、Country テーブルの最初の5行のデータが表示されます。これにより、world データベースに正常にアクセスできていることが確認でき、その内容を直感的にチェックすることが可能になります。