見出し画像

[MySQL]MySQL Workbenchの導入と、データベース、テーブルの作成

MySQLのシリーズをマガジン化しています。
MySQLに関する全ての解説記事は、こちらをご覧ください!

1つ前の記事はこちら


・前回、開発環境を作成したが、今のままではUbuntuのCUIでしか、アクセスできない。
・そっちに慣れている人も一定数いると思うが、やはりGUIで接続できた方が便利なので、ツールを導入する。
・今日は、MySQL Workbenchを導入し、データベースとテーブルを作成する。

MySQL Workbenchの概要

・MySQL Workbenchは、データベース設計者、開発者、DBA(データベース管理者)向けのツールとなります。
・ビジュアルデータモデリング、SQL開発、データベース設計、管理、ユーザー管理、バックアップなど、幅広い機能を提供しています。
・GUIベースのインターフェースなので、SQLコマンドを直接書く必要がないため初心者にも親しみやすいです。

MySQL Workbenchのインストール

・ダウンロード、インストールは簡単です。
https://dev.mysql.com/downloads/workbench/
・上記ページにアクセスし、対応するOSのインストーラをダウンロードし、指示に従ってインストールします。
・(MySQLをUbuntuで動かしている人も)Workbenchを動かすOSを選べばいいので、この記事を読んでいる人は、ほとんどがWindowsかと思います。
・ログインを求められますが、ページ下部にある「No thanks, just start my download.」をクリックすると、ログインせずダウンロードできます。
・インストールもデフォルトから特に変更する必要はありません。

MySQL Workbenchの初期設定

・私の1つ前の記事で、開発環境を構築した人は、接続するのはUbuntu上のDockerコンテナであるMySQLなので、接続前に起動しておきましょう。
・Ubuntuと、Docker Desktopを起動して、Docker Desktopでmysqlを起動すればOKです。
・Ubuntu上で、「docker ps -a」を実行し、STATUSがUpとなっていれば起動できています。

・Workbenchでコンテナ上のMySQLに接続します。
・インストールが終わったWorkbenchを起動して、「MySQL Connections」の「+」ボタンをクリックして新しい接続を作成します。
・以下のとおり設定し、「Test Connection」をクリックします。

Connection Name:[何でもOK ex)ubuntu docker some-mysql]
Connection Method:Standard(TCP/IP)
Hostname:127.0.0.1
Port:3306
Username:root
Password:[MySQLのパスワードを設定する。]
Default Schema:[未入力]

・Successfully~というメッセージが出れば接続は成功していますので、設定画面で「OK」をクリックして保存して完了です。

データベースの作成

・MySQLでデータベースを作成する際のSQLは以下となります。

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}

コマンドやオプションについて、全て詳細を記載していますが、最初から全てを理解する必要はありません。
CREATE DATABASE [IF NOT EXISTS] db_name

これが基本的なコマンドです。db_nameは作成するデータベースの名前を指定しいます。データベース名には一部の制約があり、64文字以下である必要があります。また、一部の特殊文字や予約語は使用できません。
IF NOT EXISTS
これはオプションなので、記載してもしなくてもいいです。
すでに同名のデータベースが存在する場合、オプションの有無に関わらず、新しいデータベースは作成されません。
オプションを指定した場合はエラーが出ず、指定しなかった場合はエラーが出ます。
CHARACTER SET charset_name
これはデータベースの文字セットを指定します。
charset nameには設定する文字コードを指定します。
デフォルトの文字セットはシステム変数 character_set_server の値に依存します。
COLLATE collation_name
これはデータベースの照合順序を指定します。
collation_nameは設定する照合順序を指定します。
照合順序は、文字列の比較とソートを行う際の規則を定義します。
デフォルトの照合順序はシステム変数 collation_server の値に依存しますが、このオプションを使用するとデータベースレベルで異なる照合順序を使用することができます。
ENCRYPTION 'Y' | 'N'
これはデータベースの暗号化を指定します。
'Y'を指定すると、このデータベースに作成される新しいテーブルはデフォルトで暗号化されます。
逆に 'N' を指定すると、新しいテーブルはデフォルトで暗号化されません。
デフォルトの暗号化設定は、default_table_encryption の値に依存します。

・色々とありますが、端的に書くと以下で「test_database」という名前のデータベースを作成できます。

CREATE DATABASE test_database;

・作成した接続情報をクリックし、MySQLに接続します。
・以下のコマンドで現在のデータベースが確認できます。(デフォルトで用意されているデータベースが表示されます。)
・クエリは、Alt+Enterで実行できます。

SHOW databases;

・以下のコマンドで実際にデータベースを作成します。

CREATE DATABASE test_database;

・以下の、1つ目のコマンドで使用するデータベースを指定します。
・2つ目のコマンドで、現在のデータベースが表示されるので、test_databaseが表示されていれば問題ありません。
・これにより、今後のコマンドは全て指定したデータベースで実行されます。

USE test_database;
SELECT database();

テーブルの作成

・MySQLでテーブルを作成する際のSQLは以下となります。

CREATE TABLE test_table (
  id INT
  ,name VARCHAR(30)
);

・上記の例ではオプションを1つも使っていません。
・CREATE TABLEはよく使うSQLですが、複数のオプションがあります。
・詳細は公式リファレンス(https://dev.mysql.com/doc/refman/8.0/ja/create-table.html)を参照してください。
・ここまでの作業で、開発環境にデータベースとテーブルを作成することができました。

この記事が気に入ったらサポートをしてみませんか?