🐋

『達人に学ぶSQL 徹底指南書』の環境をDockerとMySQLで構築する

2023/06/01に公開

はじめに

『達人に学ぶ SQL 徹底指南書』で SQL を学習するにあたり Docker + MySQL で環境構築をしたので、記事として残します。
この手の書籍を読むときは実際にコードを入力しないとただただ読み流してしまうので、ぜひコマンドを入力しながら学習を進めてみましょう!

対象とする読者は以下の方です。

  • 上記書籍を実際にコマンドを打ちながら学習したい方
  • 手っ取り早く DB の操作をできる環境が欲しい方

筆者の環境

  • Intel Mac
  • macOS Ventura v13.3.1

リポジトリ

https://github.com/keisuke90/tatsujin-sql

docker-compose.yml
version: "3.1"

services:
  db
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password
    container_name: tatsujin-sql
    restart: always
    volumes:
      - db_data:/var/lib/mysql
      - ./sql:/home/sql
      - ./my.cnf:/etc/mysql/my.cnf
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: tatsujin

volumes:
  db_data: {}

MySQL の公式イメージに記載されている例を少し変更して利用しました。

https://hub.docker.com/_/mysql

sql ファイルは『達人に学ぶ SQL 徹底指南書』サポートページからコピーして sql ディレクトリに配置しています。
このディレクトリに sql ファイルを追加することで、同著者の書籍「SQL ゼロからはじめるデータベース操作」の学習にも使えると思います。

手順

  1. コンテナ起動
$ docker compose up
  1. コンテナに接続
$ docker exec -it tatsujin-sql bin/bash
  1. MySQL に接続
$ mysql -u root --password=password
  1. データベース選択
USE DATABASE tatsujin;
  1. データ投入(以下は 1-1 のファイルの例)
source /home/sql/1-1.sql

ついでに(SQL クライアントのセットアップ)

データベースの操作をするときは SQL クライアントを使用すると便利です。
MySQL Workbench などが有名ですが、今回 DBeaver を初めて使ってみました。

  1. ダウンロード
    公式 HP からダウンロード。
    学習用途であれば、無料のコミュニティ版で十分です。

https://dbeaver.io/

  1. 起動後、新しい接続先の作成から MySQL を選択する。

  2. 接続先情報を入力

    今回の場合、password は「password」
    ポート番号はデフォルトの 3306 で OK。

    テスト接続をしようとすると、ドライバのダウンロードが必要だった。

  3. 接続完了!

    データの取得ができました。

さいごに

これから SQL を学習する方の参考になれば幸いです。

Discussion