この記事でできること
オライリーの「初めてのSQL」で使用する環境が構築できます。
必要な知識
・最低限ググってコピペできる程度のターミナル操作力
筆者環境
Homebrewを使用してMySQLをインストールするのでHomebrewがインストールされている前提になります。
・mac OS Catalina10.15.7
・Homebrew 3.5.8
・Sakila-dbのサンプルファイル
公式ドキュメント該当部分
1.MySQLのインストール
ターミナルから以下のコマンドを実行して待ちます。
しばらく待つとMySQLのインストールが完了します。
brew install mysql
コマンドでMySQLのバージョンを確認します。
管理者権限を求められた場合は頭にsudoをつけてください。
mysql -v
2.Sakila-dbのMySQLへのインストール
事前にSakila-dbをダウンロードしてパス指定が簡単なルートディレクトリなどに解凍しておきましょう。
まずはMySQL自体を起動します。
起動コマンド、停止コマンドは以下になります。
$ mysql.server start # 起動
$ mysql.server start --skip-grant-tables # パスワード無しでログイン
$ mysql.server stop # 停止
ターミナルの左側に「mysql>」という文字が表示されていることを確認します。
mysql>
以下のSQL文でデータベースのインポートを行います。
「source ファイルへのフルパス」でインポートできます。
ここでつまる方がいそうなので、
Macでのファイルへのフルパス取得方法3つ紹介します。
①Finderでsqlファイルを選択して「Option + command + c」
②ターミナルにインポートしたいsqlファイルをドラッグ&ドロップする
③ターミナルのcdコマンドでsqlファイルがあるディレクトリまで行き
「pwd | pbcopy」をし、ファイル名だけ手打ちする。
1番簡単なのは①です。
source /Users/XXX/sakila-db/sakila-schema.sql
source /Users/XXX/sakila-db/sakila-data.sql
# schemaから先にインポートすること。
# フルパスは動作環境による異なります。
特にエラーが出なければ読み込みが完了しています。
ここからは確認作業を行います。
先頭行にコマンド、その下はコマンドの出力結果となります。
show databases;
# 以下コマンドの出力結果
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
+--------------------+
5 rows in set (0.00 sec)
use sakila;
# 以下コマンドの出力結果
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
SHOW FULL TABLES;
# 以下コマンドの出力結果
+----------------------------+------------+
| Tables_in_sakila | Table_type |
+----------------------------+------------+
| actor | BASE TABLE |
| actor_info | VIEW |
| address | BASE TABLE |
| category | BASE TABLE |
| city | BASE TABLE |
| country | BASE TABLE |
| customer | BASE TABLE |
| customer_list | VIEW |
| film | BASE TABLE |
| film_actor | BASE TABLE |
| film_category | BASE TABLE |
| film_list | VIEW |
| film_text | BASE TABLE |
| inventory | BASE TABLE |
| language | BASE TABLE |
| nicer_but_slower_film_list | VIEW |
| payment | BASE TABLE |
| rental | BASE TABLE |
| sales_by_film_category | VIEW |
| sales_by_store | VIEW |
| staff | BASE TABLE |
| staff_list | VIEW |
| store | BASE TABLE |
+----------------------------+------------+
23 rows in set (0.01 sec)
SELECT COUNT(*) FROM film;
# 以下コマンドの出力結果
+----------+
| COUNT(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)
SELECT COUNT(*) FROM film_text;
# 以下コマンドの出力結果
+----------+
| COUNT(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)
これにて環境構築完了になります。
まだ2章の前半までしか読んでいないので追加の環境構築があった場合、追記していきます。