LoginSignup
0
0

More than 1 year has passed since last update.

オライリーの「初めてのSQL」でKatacodaが使用できなくなっているのでMacでの環境構築をザックリ

Posted at

この記事でできること

オライリーの「初めての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章の前半までしか読んでいないので追加の環境構築があった場合、追記していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0