基本がわかるSQL入門

書影

「基本がわかるSQL入門」サポートページ
正誤表、補足情報、サンプルデータなど

基本がわかるSQL入門 サポートページ ~テスト環境 その3~

Windows環境に、MySQL、MariaDB、PostgreSQLをインストールする方法。
いずれかを選択してインストール、ポート番号が重複しなければ共存可能。 ※本書掲載のSQL文は、上記3種類を使用して動作確認を行っており、サンプルデータによる実行結果はMySQL(ver8)によるものを掲載しています。

  1. MySQL
    1. MySQLサーバーのインストール
    2. コマンドラインクライアント(mysqlコマンド)の起動
    3. データベースの作成(mysqlコマンド)
  2. MariaDB
    1. MariaDBサーバーのインストール
    2. コマンドラインクライアント(mysqlコマンド)の起動
    3. データベースの作成(mysqlコマンド)
    4. テスト用ユーザーの作成(mysqlコマンド)
    5. 【参考】スタートメニューに追加するには
    6. 【参考】Windows環境のmysqlコマンドでサンプルデータを読み込むには
  3. PostgreSQL
    1. PostgreSQLサーバーのインストール
    2. コマンドラインクライアント(psqlコマンド)の起動
    3. ユーザーとデータベースの作成(psqlコマンド)
    4. 【参考】スタートメニュー「SQL Shell(psql)」のデフォルトユーザーを変更するには

DBMSのみ(Windows環境)

Windows版のDBMSだけをインストール(MySQL 5.7、MySQL 8、MariaDB、PostgreSQL)、それぞれのコマンド画面からSQLを実行することができます。

コマンドラインで使用するクライアントが一緒にインストールされるので、それぞれのコマンドラインクライアントから接続し、SQLの実行を試すことができます。Windows環境の場合、コマンドラインクライアントはスタートメニューから起動できます。

MySQL

MySQLのダウンロードページ https://www.mysql.com/jp/downloads/ より、「MySQL Cluster CGE」の下にある「MySQL Community (GPL) Downloads »」をクリックします。

続いて、MySQL Installer for Windowsをクリックします。

インストーラーは「mysql-installer-web-community」と「mysql-installer-community」の2種類です。

「mysql-installer-web-community」は、インストール実行中に必要なファイルをダウンロードします。 最新版(8.0.x)のMySQLサーバーの他、バージョン5.6やバージョン5.7を同時にインストールすることも可能です。

「mysql-installer-community」は、インストールに必要なファイルが入っているパッケージで、サイズが400MB以上あります。オフライン環境でインストールする場合や、複数のPCにインストールする場合はこちらがお奨めです。

「Download」ボタンをクリックすると、現在の公開元であるOracleのアカウントでログインまたはサインアップを促す画面が表示されます。

画面下部の「No thanks, just start my download.」をクリックするとダウンロードが始まります。

MySQLサーバーのインストール

上記でダウンロードしたファイルを実行し、画面に従ってインストールを進めます。

メモ:

以下のリンクはmysql-installer-web-community-8.0.21.0.msiによる実行例です。
(インストーラーの画面を参考にしたい方はこちら→)MySQLのインストールサンプル(Windows環境)

コマンドラインクライアント(mysqlコマンド)の起動

MySQLサーバーをインストールすると、コマンドラインクライアント(mysql.exe)がインストールされます。
コマンドラインクライアントは、スタートメニューの「MySQL」グループから起動することができます。

クライアントを実行すると「Enter password:」と表示されるので、 インストール時に設定したテスト用ユーザーのパスワードを入力してEnterして接続してください。 接続できると「mysql>」というプロンプトが表示されます。ここで、SQL文を入力して実行します。

実行画面およびプロンプトは各バージョン共通です。
バージョン8.0.x:

バージョン5.7.x:

データベースの作成(mysqlコマンド)

スタートメニューで「MySQL 8.0 Command Line Client - Unicode」を実行するとmysqlコマンド(mysql.exe)が起動し、mysql>というプロンプトが表示されるので、以下のコマンドを実行します。

コピー&ペーストでも実行できます。この場合、7行まとめて選択してコピーし、プロンプト(mysql>)で右クリックしてペーストします。 一度実行した内容は、上下矢印キーで再度表示し、左右の矢印キーでカーソルを動かして編集することもできます。

-- サンプルデータベース用のデータベース3つを作成
CREATE DATABASE testdb default character set utf8mb4;
CREATE DATABASE sampledb default character set utf8mb4;
CREATE DATABASE sampledb2 default character set utf8mb4;

-- 確認(MySQLで管理しているデータベースが一覧表示される)
SHOW DATABASES; 

実行イメージ

→サンプルデータ

MariaDB

MariaDBのダウンロードページ https://mariadb.com/downloads/ より、「MariaDB Platform」の「MariaDB Community Server」で「Version」と「OS」を選択して「Download」をクリックします。

さまざまなバージョンが公開されていますが、通常は、最新版良いでしょう。なお、「Show All Files」で、選択肢に出ていないOSやバージョンのファイルもダウンロードできます。

MariaDBサーバーのインストール

上記でダウンロードしたファイルを実行し、画面に従ってインストールを進めます。

メモ:

以下のリンクはmariadb-10.5.5-winx64.msiによる実行例です。
(インストーラーの画面を参考にしたい方はこちら→)MariaDBのインストールサンプル(Windows環境)

コマンドラインクライアント(mysqlコマンド)の起動

MariaDBサーバーをインストールすると、コマンドラインクライアント(mysql.exe)がインストールされます。 MySQLのコマンドラインクライアントと同じ名前で、使い方も同じです。

コマンドラインクライアントは、スタートメニューの「MariaDB」グループから起動することができます。

クライアントを実行すると「Enter password:」と表示されるので、 インストール時に設定したテスト用ユーザーのパスワードを入力してEnterして接続してください。 接続できると「MariaDB [(none)]>」というプロンプトが表示されます。ここで、SQL文を入力して実行します。

データベースの作成(mysqlコマンド)

コマンドラインクライアントが起動すると、MariaDB [(none)]>というプロンプトが表示されるので、以下のコマンドを実行します。 ※ --以降はコメントなので入力不要です。この画面からコピー&ペーストして実行する場合は--以降の部分も一緒にペーストしてかまいません。 ※SQLのキーワードは大文字にしていますが、入力は小文字でもかまいません(p.24 2.1節「SQLの種類と基本的な書式」)。

-- サンプルデータベース用のデータベース3つを作成
CREATE DATABASE testdb default character set utf8mb4;
CREATE DATABASE sampledb default character set utf8mb4;
CREATE DATABASE sampledb2 default character set utf8mb4;

-- 確認(MySQLで管理しているデータベースが一覧表示される)
SHOW DATABASES; 

※作成済のデータベースを削除してから改めて作成したい場合、たとえば「testdb」であればDROP DATABASE testdb;を先に実行してからCREATE DATABASE…を実行。

実行画面(参考)

テスト用ユーザーの作成(mysqlコマンド)

スタートメニューから実行するコマンドラインクライアントは、MariaDBの管理者であるrootユーザーでMariaDBサーバーに接続しSQLを実行するようになっています。個人のローカルPCでテストする分にこれで問題ありませんが、テスト用のユーザーを使用したい場合は以下のコマンドで作成します。

study部分はデータベースに接続するユーザー、mypqssword部分は接続に使用するパスワードです。 適宜、ご自身のユーザー名と使用したいパスワードに置き換えて実行してください。 なお、パスワードはALTER USER ユーザー名 IDENTIFIED BY '新しいパスワード'で変更できます。

-- データベース接続用のユーザーを作成
-- CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'データベース接続用のパスワード';
CREATE USER 'study'@'localhost' IDENTIFIED BY 'mypassword';

作成したデータベースに対し、データの追加や削除などを含めたすべての権限を与えます。 WITH GRANT OPTIONは権限の追加や削除も行えるようにするためのオプションです。

GRANT ALL ON testdb.* TO 'study'@'localhost' WITH GRANT OPTION;
GRANT ALL ON sampledb.* TO 'study'@'localhost' WITH GRANT OPTION;
GRANT ALL ON sampledb2.* TO 'study'@'localhost' WITH GRANT OPTION;

設定した権限を再読込してmysqlコマンドを終了します。

FLUSH PRIVILEGES;
quit

mysqlコマンドが終了してWindowsのコマンドラインに戻るので、あらためてmysqlコマンドを実行します。 ユーザー「study」でパスワードを使って接続するには以下の様にします。

mysql -ustudy -p

実行画面(参考)

【参考】スタートメニューに追加するには

スタートメニューにユーザー「study」用の起動メニューを作成したい場合は以下の様にします。

  1. スタートメニューの「MySQL Client」を右クリック→その他→ファイルの場所を開くをクリック
  2. 「MySQL Client」をコピーして、アイコンを右クリック→プロパティで「リンク先」の-uroot-ustudy(-uに続けてユーザー名を入力、スペースは入れない)に変更して保存する

スタートメニューで「MySQL Client」を右クリック→その他→ファイルの場所を開く

コピーした「MySQL Client」ショートカットのプロパティを開き「リンク先」を修正
-uroot-uユーザー名とする(この画像では-ustudyに変更、-uの直後にスペースを入れないよう注意)

【参考】Windows環境のmysqlコマンドでサンプルデータを読み込むには

Windows環境のMariaDBの場合、デフォルトの状態だとクライアントコマンドの画面(Windowsのコマンド画面)でUTF-8が文字化けします。

mysqlコマンドで、画面を使わずにサンプルデータファイルを読み込むことでこの問題を回避できます。

  1. コマンドラインクライアントをquitでいったん終了するか、スタートメニューの「MariaDB」→「Command Prompt (MariaDB)」でコマンドプロンプトを表示する
  2. mysql データベース名 -uユーザ名 -p --default-character-set=utf8mb4 < SQLファイル名 を実行する

以下は、ユーザーrootで、testdbtestdb.sqlを読み込んでいます。 データベースtestdbを作成した後に実行してください(→サンプルデータベースの作成)。

ファイル名のパスがよくわからない場合は<記号まで入力したところで、ダウンロードしたサンプルデータファイルをドラッグ&ドロップしてください。

mysql testdb -uroot -p --default-character-set=utf8mb4 < c:\users\study\downloads\testdb.sql

実行画面(参考、クリックで拡大) mysql testdb -uroot -p --default-character-set=utf8mb4 < まで入力してファイルをドラッグ&ドロップ

ファイルのパスが入るのでEnterで実行

パスワードを入力してEnter

(処理が完了した)

あらためて、mysql データベース名 -uユーザー名 -pでコマンドラインクライアントを実行
(データベースを省略した場合は起動後にuse データベース名 で選択)

→サンプルデータ

PostgreSQL

PostgreSQLのダウンロードページ https://www.postgresql.org/download/ で、Windowsをクリックし、「Download the installer」をクリックします。EDB(EnterpriseDB Corporation) のダウンロードページが表示されるので、「Download」をクリックします。

さまざまなバージョンが公開されていますが、通常は、最新版が良いでしょう。 本書では、執筆時点の最新版であった12.4を使用しています(2020.9.24にバージョン13がリリース→日本語版プレスキット)。

PostgreSQLサーバーのインストール

上記でダウンロードしたファイルを実行し、画面に従ってインストールを進めます。 複数のバージョンを共存させたい場合、インストール時に設定するポート番号を、バージョン毎に違う数字にしてください。

以下のリンクはpostgresql-12.4-1-windows-x64.exeによる実行例です(postgresql-13.0-1-windows-x64.exeも同じ手順でインストール可能です)。
(インストーラーの画面を参考にしたい方はこちら→)PostgreSQLのインストールサンプル(Windows環境)

コマンドラインクライアント(psqlコマンド)の起動

コマンドラインクライアント(psql.exe)は、スタートメニューの「SQL Shell(psql)」で起動します。

起動時に、サーバー、データベース、ポート番号、ユーザー名、コマンドラインクライアントで使用する文字コードを入力するがめのメッセージが表示されます。ここでは画面表示通りなので何も入力せずEnterで進めています。

実行画面(参考)

サーバー名はlocalhost、データベースはpostgres(管理用のデータベース)、ポート番号はインストール時に設定したポート番号(画面に表示されている)、コマンドラインクライアントで使用する文字コード(WindowsのデフォルトであるSJISを使用)を指定し、パスワードを入力

ユーザーとデータベースの作成(psqlコマンド)

コマンドラインクライアントが起動すると、postgres=#というプロンプトが表示されるので、以下のコマンドを実行します。
※–以降はコメントなので入力不要です。この画面からコピー&ペーストして実行する場合は–以降の部分も一緒にペーストしてかまいません。
※SQLのキーワードは大文字にしていますが、入力は小文字でもかまいません(p.24 2.1節「SQLの種類と基本的な書式」)。

なお、ローカルPCで、psqlコマンドを使ってSQLを試すだけであればユーザーを別途作成せず、管理ユーザーであるpostgresのみの利用でも問題ないでしょう。この場合CREATE USERは実行せず、CREATE DATABASEに進んでください。

作成済のデータベースは\lコマンド(psql用のコマンド)で一覧表示できます。

-- データベース接続用のユーザーを作成(任意)
-- CREATE USER ユーザー名 PASSWORD 'データベース接続用のパスワード';
CREATE USER study PASSWORD 'mypassword';

-- サンプルデータベース用のデータベース3つを作成
CREATE DATABASE testdb OWNER study ENCODING 'UTF-8';
CREATE DATABASE sampledb OWNER study ENCODING 'UTF-8';
CREATE DATABASE sampledb2 OWNER study ENCODING 'UTF-8';

-- 作成したデータベースを一覧表示
\l

(参考)

-- ユーザーを作成せず、ユーザー「postgres」だけを使用する場合
CREATE DATABASE testdb ENCODING 'UTF-8';
CREATE DATABASE sampledb ENCODING 'UTF-8';
CREATE DATABASE sampledb2  ENCODING 'UTF-8';

【参考】スタートメニュー「SQL Shell(psql)」のデフォルトユーザーを変更するには

スタートメニューの「SQL Shell(psql)」では、バッチファイル(PostgreSQLのインストール先のにあるscripts\runpsql.bat)が実行されています。

  1. スタートメニューの「SQL Shell(psql)」を右クリック→その他→ファイルの場所を開くをクリック
  2. 「SQL Shell(psql)」のアイコンを右クリック→プロパティの「リンク先」に書かれているパスを確認
  3. スタートメニューの「Windowsアクセサリ」にある「メモ帳」(テキストエディタ)を右クリック→その他→管理者として実行で開く
  4. メモ帳の「ファイル」→「開く」でファイル名に 2 で確認したパスを入力
  5. SET username=postgresという行を探し、SET username=ユーザー名に変更する
  6. 上書き保存して終了する

→サンプルデータ


基本がわかるSQL入門 ——データベース&設計の基礎から楽しく学ぶ サポートページ