こんちはー。
今回はMariaDBにMySQLのサンプルデータを入れてみようと思います。そしてちょっとだけSQLを触ります。
環境はラズベリーパイです。
MariaDBをラズベリーパイに入れる記事は以下から読めます。
サンプルデータを用意する
まず、ルートでMariaDBプロンプトに入ります。
$ sudo mysql -u root
用意したサンプルデータを作成したDBにインポートします。
MariaDB [none]> SOURCE /home/appare99/db_data/sample_data/world.sql;
なんかインポートしたらDBがnoneからworldに変わってました。
MariaDB [world]>
変わってない場合はDBを変更します。
MariaDB [none]> USE world;
worldはDB名ね。worldというDB内のテーブルを確認します。
MariaDB [world]> SHOW TABLES;
+-----------------+
| Tables_in_world |
+-----------------+
| city |
| country |
| countrylanguage |
+-----------------+
これでSQLを勉強できる環境がまずは整いました。
まずはカンタンな操作から
実際に手を動かすことでDBやSQLを早く使いこなせるようになるので、まずは簡単な操作でも行ってみる事が大事ですよね。
cityテーブルの全ての列を表示してみましょう。
以下のように「SELECT * FROM <テーブル名(今回の場合はcity)>;」とうってみますと、バーっとcityテーブルの全ての列が表示されます。
MariaDB [world]> SELECT * FROM city;
+------+------------------------------------+-------------+------------------------+------------+
| ID | Name | CountryCode | District | Population |
+------+------------------------------------+-------------+------------------------+------------+
| 1 | Kabul | AFG | Kabol | 1780000 |
| 2 | Qandahar | AFG | Qandahar | 237500 |
| 3 | Herat | AFG | Herat | 186800 |
| 4 | Mazar-e-Sharif | AFG | Balkh | 127800 |
| 5 | Amsterdam | NLD | Noord-Holland | 731200 |
| 6 | Rotterdam | NLD | Zuid-Holland | 593321 |
| 7 | Haag | NLD | Zuid-Holland | 440900 |
| 8 | Utrecht | NLD | Utrecht | 234323 |
| 9 | Eindhoven | NLD | Noord-Brabant | 201843 |
| 10 | Tilburg | NLD | Noord-Brabant | 193238 |
| 11 | Groningen | NLD | Groningen | 172701 |
| 12 | Breda | NLD | Noord-Brabant | 160398 |
| 13 | Apeldoorn | NLD | Gelderland | 153491 |
| 14 | Nijmegen | NLD | Gelderland | 152463 |
| 15 | Enschede | NLD | Overijssel | 149544 |
| 16 | Haarlem | NLD | Noord-Holland | 148772 |
| 17 | Almere | NLD | Flevoland | 142465 |
| 18 | Arnhem | NLD | Gelderland | 138020 |
| 19 | Zaanstad | NLD | Noord-Holland | 135621 |
・・・【略】・・・
SELECT文はテーブルからデータを取り出すために使うもので、超超超使うコマンドです。
アスタリスク(*)は全てを意味するもので、
今回の場合、cityテーブルから(FROM)全て(*)のデータを取り出す(SELECT)という意味で
「SELECT * FROM city;」となっています。
WHERE句
WHERE句では条件を絞ってテーブル内の値を表示できます。
ではcityテーブルの中でCountryCodeがJPN、つまり日本の物だけを出力してみます。
「SELECT * FROM city WHERE CountryCode = ‘JPN’;」と入力してみてください。すると以下のように日本の都道府県が出力されます。
ariaDB [world]> SELECT * FROM city WHERE CountryCode = 'JPN';
+------+---------------------+-------------+-----------+------------+
| ID | Name | CountryCode | District | Population |
+------+---------------------+-------------+-----------+------------+
| 1532 | Tokyo | JPN | Tokyo-to | 7980230 |
| 1533 | Jokohama [Yokohama] | JPN | Kanagawa | 3339594 |
| 1534 | Osaka | JPN | Osaka | 2595674 |
| 1535 | Nagoya | JPN | Aichi | 2154376 |
| 1536 | Sapporo | JPN | Hokkaido | 1790886 |
| 1537 | Kioto | JPN | Kyoto | 1461974 |
| 1538 | Kobe | JPN | Hyogo | 1425139 |
| 1539 | Fukuoka | JPN | Fukuoka | 1308379 |
| 1540 | Kawasaki | JPN | Kanagawa | 1217359 |
| 1541 | Hiroshima | JPN | Hiroshima | 1119117 |
| 1542 | Kitakyushu | JPN | Fukuoka | 1016264 |
| 1543 | Sendai | JPN | Miyagi | 989975 |
| 1544 | Chiba | JPN | Chiba | 863930 |
| 1545 | Sakai | JPN | Osaka | 797735 |
| 1546 | Kumamoto | JPN | Kumamoto | 656734 |
・・・【略】・・・
算術演算子
SQLは計算もできます。
せっかくなんで、人口を2倍にした値を出力してみましょう。
人口はcityテーブルのPopulation列なのでここの値を2倍にした値をPopulation列の横に出力させてみます。
「SELECT *, Population * 2 AS “twice Population” FROM city WHERE CountryCode = ‘JPN’;」とうってみてください。上記のWHERE句でうったSQLに黄色いマーカー部分を追加しています。
すると以下のような表示になりtwice Population列にPopulation列の値を2倍したあたいが表示されるようになっています。
MariaDB [world]> SELECT *, Population * 2 AS "twice Population" FROM city WHERE CountryCode = 'JPN';
+------+---------------------+-------------+-----------+------------+------------------+
| ID | Name | CountryCode | District | Population | twice Population |
+------+---------------------+-------------+-----------+------------+------------------+
| 1532 | Tokyo | JPN | Tokyo-to | 7980230 | 15960460 |
| 1533 | Jokohama [Yokohama] | JPN | Kanagawa | 3339594 | 6679188 |
| 1534 | Osaka | JPN | Osaka | 2595674 | 5191348 |
| 1535 | Nagoya | JPN | Aichi | 2154376 | 4308752 |
| 1536 | Sapporo | JPN | Hokkaido | 1790886 | 3581772 |
| 1537 | Kioto | JPN | Kyoto | 1461974 | 2923948 |
| 1538 | Kobe | JPN | Hyogo | 1425139 | 2850278 |
| 1539 | Fukuoka | JPN | Fukuoka | 1308379 | 2616758 |
| 1540 | Kawasaki | JPN | Kanagawa | 1217359 | 2434718 |
| 1541 | Hiroshima | JPN | Hiroshima | 1119117 | 2238234 |
| 1542 | Kitakyushu | JPN | Fukuoka | 1016264 | 2032528 |
| 1543 | Sendai | JPN | Miyagi | 989975 | 1979950 |
| 1544 | Chiba | JPN | Chiba | 863930 | 1727860 |
| 1545 | Sakai | JPN | Osaka | 797735 | 1595470 |
| 1546 | Kumamoto | JPN | Kumamoto | 656734 | 1313468 |
| 1547 | Okayama | JPN | Okayama | 624269 | 1248538 |
| 1548 | Sagamihara | JPN | Kanagawa | 586300 | 1172600 |
| 1549 | Hamamatsu | JPN | Shizuoka | 568796 | 1137592 |
| 1550 | Kagoshima | JPN | Kagoshima | 549977 | 1099954 |
| 1551 | Funabashi | JPN | Chiba | 545299 | 1090598 |
・・・【略】・・・
まあこんな感じよ
うん、ちょっとSQLに触ってみたけど、まあこんな感じよ。
演算子や比較、ANDやORなども使えるのでいろいろ試してみるといいと思います。
これでDBの勉強の際に実際に手を動かしながら知識を習得するすることができるってことさ!
まとめ、
今回はサンプルデータをDB内に入れて少し触ってみました。
DBはデータの容量を使用するので本格的に使う場合は、クラウドなんかでDockerでMariaDBを使うのがいいのかもしれませんね。ここら辺はよう考えないとあかんとこですわ。
とういうか、あれですね、MariaDBもOSSなのにジャッカルとジェシーのJJコンビが登場しないのはいけないですね。
次回からは「インターネッツ!!大海原!」で取り上げるようにしようと思います。
最後まで読んでいただきありがとうございます。
ではまた!
参考:「SQL 第2版 ゼロからはじめるデータベース操作」
